Skip to content

Commit

Permalink
Merge branch 'master' into fixes_issue_22225_p1
Browse files Browse the repository at this point in the history
  • Loading branch information
dalthviz authored Aug 15, 2024
2 parents c2b3490 + e6ec310 commit 685fffb
Show file tree
Hide file tree
Showing 59 changed files with 11,541 additions and 9,831 deletions.
30 changes: 26 additions & 4 deletions .github/workflows/installers-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,9 +265,7 @@ jobs:
python build_installers.py ${args[@]}
PKG_NAME=$(ls $DISTDIR | grep Spyder-)
LCK_NAME=$(ls $DISTDIR | grep conda-)
echo "PKG_NAME=$PKG_NAME" >> $GITHUB_ENV
echo "LCK_NAME=$LCK_NAME" >> $GITHUB_ENV
echo "ARTIFACT_NAME=${PKG_NAME%.*}" >> $GITHUB_ENV
echo "PKG_PATH=$DISTDIR/$PKG_NAME" >> $GITHUB_ENV
Expand Down Expand Up @@ -308,12 +306,36 @@ jobs:
fi
- name: Upload Artifact
if: env.IS_RELEASE == 'false'
uses: actions/upload-artifact@v4
with:
path: ${{ env.DISTDIR }}
name: ${{ env.ARTIFACT_NAME }}

upload-assets:
name: Upload Assets
if: ${{ ! failure() && ! cancelled() }}
runs-on: ubuntu-latest
needs:
- build-installers
defaults:
run:
shell: bash -le {0}

steps:
- name: Download Assets
uses: actions/download-artifact@v4
with:
merge-multiple: 'true'

- name: Zip Lock Files
run: zip -mT spyder-conda-lock *.lock

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
path: spyder-conda-lock.zip
name: spyder-conda-lock

- name: Get Release
if: env.IS_RELEASE == 'true'
uses: bruceadams/[email protected]
Expand All @@ -328,4 +350,4 @@ jobs:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.get_release.outputs.upload_url }}
asset_path: ${{ env.DISTDIR }}/*.*
asset_path: ${{ github.workspace }}/*.*
10 changes: 5 additions & 5 deletions Announcements.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ scientific computing and software development.

# Alpha/beta/rc release

**Subject**: [ANN] Spyder 6.0 beta3 is released!
**Subject**: [ANN] Spyder 6.0 rc1 is released!


Hi all,
Expand All @@ -126,8 +126,8 @@ I'm pleased to announce the second beta of our next major version: Spyder **6.0*

We've been working on this version for more than one year now and it's working
relatively well. There are still several bugs to squash but we encourage all
people who like the bleeding edge to give it a try. This beta version includes
more than 121 commits over our latest beta release (6.0.0b2).
people who like the bleeding edge to give it a try. This release candidate version includes
more than 102 commits over our latest beta release (6.0.0b3).

Spyder 6.0 comes with the following interesting new features and fixes:

Expand Down Expand Up @@ -169,9 +169,9 @@ Spyder 6.0 comes with the following interesting new features and fixes:
For a more complete list of changes, please see our
[changelog](https://github.com/spyder-ide/spyder/blob/master/changelogs/Spyder-6.md)

You can easily install this beta if you use conda by running:
You can easily install this release candidate if you use conda by running:

conda install -c conda-forge/label/spyder_dev -c conda-forge/label/spyder_kernels_rc -c conda-forge spyder=6.0.0b3
conda install -c conda-forge/label/spyder_dev -c conda-forge/label/spyder_kernels_rc -c conda-forge spyder=6.0.0rc1

Or you can use pip with this command:

Expand Down
4 changes: 2 additions & 2 deletions binder/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ dependencies:
# Please *DO NOT* make changes directly just to here - make changes
# to requirements/main.yml, and copy it here.
- aiohttp >=3.9.3
- asyncssh >=2.0.0,<3.0.0
- asyncssh >=2.14.0,<3.0.0
- atomicwrites >=1.2.0
- chardet >=2.0.0
- cloudpickle >=0.5.0
Expand Down Expand Up @@ -50,7 +50,7 @@ dependencies:
- rtree >=0.9.7
- setuptools >=49.6.0
- sphinx >=0.6.6
- spyder-kernels >=3.0.0b7,<3.0.0b8
- spyder-kernels >=3.0.0b8,<3.0.0b9
- superqt >=0.6.2,<1.0.0
- textdistance >=4.2.0
- three-merge >=0.1.1
Expand Down
38 changes: 38 additions & 0 deletions changelogs/Spyder-6.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,44 @@

----

## Version 6.0rc1 (2024-08-08)

### Issues Closed

* [Issue 22317](https://github.com/spyder-ide/spyder/issues/22317) - Spyder 6.0 rc1 release ([PR 22336](https://github.com/spyder-ide/spyder/pull/22336) by [@dalthviz](https://github.com/dalthviz))
* [Issue 22181](https://github.com/spyder-ide/spyder/issues/22181) - Warning message on the first console that is open ([PR 22302](https://github.com/spyder-ide/spyder/pull/22302) by [@dalthviz](https://github.com/dalthviz))
* [Issue 22180](https://github.com/spyder-ide/spyder/issues/22180) - Text being cut in the `About` dialog ([PR 22286](https://github.com/spyder-ide/spyder/pull/22286) by [@dalthviz](https://github.com/dalthviz))
* [Issue 22112](https://github.com/spyder-ide/spyder/issues/22112) - `ModuleNotFoundError: No module named 'win32gui'` on the Windows installer
* [Issue 22033](https://github.com/spyder-ide/spyder/issues/22033) - Closing last unfocused document tab causes IndexError ([PR 22292](https://github.com/spyder-ide/spyder/pull/22292) by [@dalthviz](https://github.com/dalthviz))
* [Issue 21959](https://github.com/spyder-ide/spyder/issues/21959) - Do not translate `Commit` in context menu of Files/Projects ([PR 22320](https://github.com/spyder-ide/spyder/pull/22320) by [@ccordoba12](https://github.com/ccordoba12))
* [Issue 21824](https://github.com/spyder-ide/spyder/issues/21824) - It's not clear what some actions in the new Options menus of Variable Explorer editors do ([PR 22061](https://github.com/spyder-ide/spyder/pull/22061) by [@jitseniesen](https://github.com/jitseniesen))

In this release 7 issues were closed.

### Pull Requests Merged

* [PR 22336](https://github.com/spyder-ide/spyder/pull/22336) - PR: Update core dependencies for 6.0.0 rc1, by [@dalthviz](https://github.com/dalthviz) ([22317](https://github.com/spyder-ide/spyder/issues/22317))
* [PR 22333](https://github.com/spyder-ide/spyder/pull/22333) - PR: Update translations for 6.0.0 (extra strings), by [@dalthviz](https://github.com/dalthviz)
* [PR 22328](https://github.com/spyder-ide/spyder/pull/22328) - PR: Add a widget to show connection logs to `ConnectionDialog` (Remote client), by [@ccordoba12](https://github.com/ccordoba12)
* [PR 22327](https://github.com/spyder-ide/spyder/pull/22327) - PR: Fix typo in shebang line in `user-env.sh`, by [@mrclary](https://github.com/mrclary)
* [PR 22320](https://github.com/spyder-ide/spyder/pull/22320) - PR: Improve text of several strings for translation (Files/Projects), by [@ccordoba12](https://github.com/ccordoba12) ([21959](https://github.com/spyder-ide/spyder/issues/21959))
* [PR 22308](https://github.com/spyder-ide/spyder/pull/22308) - PR: Enable showing calltip widget even with signatures without parameters (Editor/Completion), by [@dalthviz](https://github.com/dalthviz)
* [PR 22304](https://github.com/spyder-ide/spyder/pull/22304) - PR: Disable shortcuts for actions in the `View > Panes` menu when not visible (Layout), by [@ccordoba12](https://github.com/ccordoba12)
* [PR 22302](https://github.com/spyder-ide/spyder/pull/22302) - PR: Filter unnecessary stream messages in the kernel (IPython console), by [@dalthviz](https://github.com/dalthviz) ([22181](https://github.com/spyder-ide/spyder/issues/22181))
* [PR 22300](https://github.com/spyder-ide/spyder/pull/22300) - PR: Update Spyder installer base environment with conda-lock file, by [@mrclary](https://github.com/mrclary)
* [PR 22293](https://github.com/spyder-ide/spyder/pull/22293) - PR: Fix resetting layout options (Layout), by [@ccordoba12](https://github.com/ccordoba12)
* [PR 22292](https://github.com/spyder-ide/spyder/pull/22292) - PR: Update custom button tab index when removing intermediate tabs without changing current selected tab (Widgets), by [@dalthviz](https://github.com/dalthviz) ([22033](https://github.com/spyder-ide/spyder/issues/22033))
* [PR 22291](https://github.com/spyder-ide/spyder/pull/22291) - PR: Revert PR 22269 (Disable signing Mac app), by [@mrclary](https://github.com/mrclary)
* [PR 22290](https://github.com/spyder-ide/spyder/pull/22290) - PR: Always create the local conda channel on CI, even for releases, by [@mrclary](https://github.com/mrclary)
* [PR 22286](https://github.com/spyder-ide/spyder/pull/22286) - PR: Increase about dialog width to prevent cutting text on Windows (Application), by [@dalthviz](https://github.com/dalthviz) ([22180](https://github.com/spyder-ide/spyder/issues/22180))
* [PR 22285](https://github.com/spyder-ide/spyder/pull/22285) - PR: Handle remote connection lost (Remote client), by [@hlouzada](https://github.com/hlouzada)
* [PR 22276](https://github.com/spyder-ide/spyder/pull/22276) - PR: Improve UI of status bar widgets (API/Completions), by [@ccordoba12](https://github.com/ccordoba12)
* [PR 22061](https://github.com/spyder-ide/spyder/pull/22061) - PR: New menu item for view options in array and dataframe editors, by [@jitseniesen](https://github.com/jitseniesen) ([21824](https://github.com/spyder-ide/spyder/issues/21824))

In this release 17 pull requests were closed.

----

## Version 6.0beta3 (2024-07-18)

### Issues Closed
Expand Down
4 changes: 2 additions & 2 deletions external-deps/spyder-kernels/.gitrepo

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions external-deps/spyder-kernels/CHANGELOG.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions installers-conda/build-environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ name: spy-inst
channels:
- conda-forge
dependencies:
- conda >=24.5.0
- conda-build >=24.5.0
- conda-lock >=2.5.7
- conda-standalone >=24.5.0
- constructor >=3.6.0
- conda =24.5.0
- conda-build =24.5.1
- conda-lock =2.5.7
- conda-standalone =24.5.0
- constructor =3.8.1
- gitpython
- mamba
- menuinst >=2.1.0
- menuinst =2.1.0
- ruamel.yaml.jinja2
- setuptools_scm
84 changes: 44 additions & 40 deletions installers-conda/build_installers.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
# Standard library imports
from argparse import ArgumentParser
from datetime import timedelta
from distutils.spawn import find_executable
from functools import partial
import json
from logging import getLogger
Expand All @@ -34,6 +33,7 @@
from pathlib import Path
import platform
import re
import shutil
from subprocess import run
import sys
from textwrap import dedent, indent
Expand Down Expand Up @@ -134,9 +134,15 @@
yaml.indent(mapping=2, sequence=4, offset=2)
indent4 = partial(indent, prefix=" ")

specs = {
"python": "=" + PY_VER,
"spyder": "=" + SPYVER,
base_specs = {
"python": "=3.11.9",
"conda": "=24.5.0",
"menuinst": "=2.1.0",
"mamba": "=1.5.8",
}
rt_specs = {
"python": f"={PY_VER}",
"spyder": f"={SPYVER}",
"cython": "",
"matplotlib": "",
"numpy": "",
Expand All @@ -148,20 +154,20 @@

if SPECS.exists():
logger.info(f"Reading specs from {SPECS}...")
_specs = yaml.load(SPECS.read_text())
specs.update(_specs)
_rt_specs = yaml.load(SPECS.read_text())
rt_specs.update(_rt_specs)
else:
logger.info(f"Did not read specs from {SPECS}")

for spec in args.extra_specs:
k, *v = re.split('([<>=]+)[ ]*', spec)
specs[k] = "".join(v).strip()
rt_specs[k] = "".join(v).strip()

PY_VER = parse(re.split('([<>=]+)[ ]*', specs['python'])[-1])
SPYVER = parse(re.split('([<>=]+)[ ]*', specs['spyder'])[-1])
PY_VER = parse(re.split('([<>=]+)[ ]*', rt_specs['python'])[-1])
SPYVER = parse(re.split('([<>=]+)[ ]*', rt_specs['spyder'])[-1])

LOCK_FILE = DIST / f"conda-{TARGET_PLATFORM}.lock"
TMP_LOCK_FILE = BUILD / f"conda-{TARGET_PLATFORM}.lock"
BASE_LOCK_FILE = BUILD / f"conda-base-{TARGET_PLATFORM}.lock"
RT_LOCK_FILE = BUILD / f"conda-runtime-{TARGET_PLATFORM}.lock"
OUTPUT_FILE = DIST / f"{APP}-{OS}-{ARCH}.{args.install_type}"
INSTALLER_DEFAULT_PATH_STEM = f"{APP.lower()}-{SPYVER.major}"

Expand All @@ -171,7 +177,13 @@
CONSTRUCTOR_FILE = BUILD / "construct.yaml"


def _create_conda_lock():
def _create_conda_lock(env_type='base'):
specs = base_specs
lock_file = BASE_LOCK_FILE
if env_type == "runtime":
specs = rt_specs
lock_file = RT_LOCK_FILE

definitions = {
"channels": [
CONDA_BLD_PATH,
Expand All @@ -183,11 +195,14 @@ def _create_conda_lock():
"platforms": [TARGET_PLATFORM]
}

logger.info("Conda lock configuration:")
if args.no_local:
definitions['channels'].remove(CONDA_BLD_PATH)

logger.info(f"Conda lock configuration ({env_type}):")
if logger.getEffectiveLevel() <= 20:
yaml.dump(definitions, sys.stdout)

env_file = BUILD / "runtime_env.yml"
env_file = BUILD / f"{env_type}_env.yml"
yaml.dump(definitions, env_file)

env = os.environ.copy()
Expand All @@ -197,17 +212,18 @@ def _create_conda_lock():
"conda-lock", "lock",
"--kind", "explicit",
"--file", str(env_file),
"--filename-template", str(BUILD / "conda-{platform}.lock")
"--filename-template", str(BUILD / f"conda-{env_type}-{{platform}}.lock")
# Note conda-lock doesn't provide output file option, only template
]

run(cmd_args, check=True, env=env)

logger.info(f"Contents of {TMP_LOCK_FILE}:")
logger.info(f"Contents of {lock_file}:")
if logger.getEffectiveLevel() <= 20:
print(TMP_LOCK_FILE.read_text(), flush=True)
print(lock_file.read_text(), flush=True)

LOCK_FILE.write_text(TMP_LOCK_FILE.read_text())
# Write to dist directory also
(DIST / lock_file.name).write_text(lock_file.read_text())


def _generate_background_images(installer_type):
Expand Down Expand Up @@ -280,19 +296,7 @@ def _definitions():
"company": "Spyder-IDE",
"reverse_domain_identifier": "org.spyder-ide.Spyder",
"version": str(SPYVER),
"channels": [
"conda-forge/label/spyder_dev",
"conda-forge/label/spyder_kernels_rc",
"conda-forge",
],
"conda_default_channels": ["conda-forge"],
"specs": [
f"python={PY_VER}",
"conda >=23.11.0",
"menuinst >=2.0.2",
"mamba",
],
"exclude": ["pip"],
"environment_file": str(BASE_LOCK_FILE),
"installer_filename": OUTPUT_FILE.name,
"installer_type": args.install_type,
"initialize_by_default": False,
Expand All @@ -301,7 +305,7 @@ def _definitions():
"register_envs": False,
"extra_envs": {
"spyder-runtime": {
"environment_file": str(TMP_LOCK_FILE),
"environment_file": str(RT_LOCK_FILE),
}
},
"channels_remap": [
Expand All @@ -312,9 +316,6 @@ def _definitions():
]
}

if not args.no_local:
definitions["channels"].insert(0, "local")

definitions["license_file"] = str(RESOURCES / "bundle_license.rtf")
if args.install_type == "sh":
definitions["license_file"] = str(SPYREPO / "LICENSE.txt")
Expand Down Expand Up @@ -371,9 +372,9 @@ def _definitions():
definitions["notarization_identity_name"] = args.cert_id

if WINDOWS:
definitions["conda_default_channels"].append("defaults")
definitions.update(
{
"uninstall_name": f"Spyder {SPYVER.major}",
"welcome_image": str(WELCOME_IMG_WIN),
"header_image": str(HEADER_IMG_WIN),
"icon_image": str(SPYREPO / "img_src" / "spyder.ico"),
Expand Down Expand Up @@ -416,7 +417,7 @@ def _constructor():
Create a temporary `construct.yaml` input file and
run `constructor`.
"""
constructor = find_executable("constructor")
constructor = shutil.which("constructor")
if not constructor:
raise RuntimeError("Constructor must be installed and in PATH.")

Expand Down Expand Up @@ -472,8 +473,10 @@ def main():
t0 = time()
try:
DIST.mkdir(exist_ok=True)
_create_conda_lock()
assert TMP_LOCK_FILE.exists()
_create_conda_lock(env_type='base')
assert BASE_LOCK_FILE.exists()
_create_conda_lock(env_type='runtime')
assert RT_LOCK_FILE.exists()
finally:
elapse = timedelta(seconds=int(time() - t0))
logger.info(f"Build time: {elapse}")
Expand Down Expand Up @@ -505,7 +508,8 @@ def main():
_generate_background_images()
sys.exit()
if args.conda_lock:
_create_conda_lock()
_create_conda_lock(env_type='base')
_create_conda_lock(env_type='runtime')
sys.exit()

main()
Loading

0 comments on commit 685fffb

Please sign in to comment.