Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PR: Fix issues with installers discovered after 6.0.0b2 was released #22204

Merged
merged 11 commits into from
Jul 3, 2024

Conversation

mrclary
Copy link
Contributor

@mrclary mrclary commented Jun 25, 2024

Description of Changes

  • Patch recipe conda_build_config.yaml on CI in order to replicate the build string hash on conda-forge.
  • Use recipe_clobber.yaml and recipe_append.yaml mechanisms to patch meta.yaml instead of find/replace.
  • Include label/spyder_dev in the url for Spyder in the conda-lock file, if non-stable distribution
  • Fix an issue where the shortcut was not found after macOS update, preventing post-update launching of Spyder.

Issue(s) Resolved

Fixes #22201

@mrclary mrclary added this to the v6.0beta3 milestone Jun 25, 2024
@mrclary mrclary self-assigned this Jun 25, 2024
@mrclary mrclary force-pushed the conda-lock branch 2 times, most recently from 10d909e to 0d9a88e Compare June 25, 2024 21:03
@mrclary
Copy link
Contributor Author

mrclary commented Jun 27, 2024

So this PR mostly resolves the build string hash mismatch between our CI built and conda-forge built Spyder package. The osx-arm64 builds still do not match, however. The cause appears to be that conda-forge builds the Spyder package on osx-64, with osx-arm64 as target. Our CI builds on osx-arm64. This results in the following hash inputs for conda-forge:

{'recipe': {'build_platform': 'osx-64',
            'channel_targets': 'conda-forge spyder_dev',
            'python': '3.11.* *_cpython',
            'target_platform': 'osx-arm64'}}

and for our CI:

{'recipe': {'channel_targets': 'conda-forge spyder_dev',
            'python': '3.11.* *_cpython',
            'target_platform': 'osx-arm64'}}

I only see the following possible solutions:

  1. Have conda-forge build on osx-arm64 (is this possible?)
  2. Have our CI build on osx-64 with osx-arm64 target. I don't like this because it seems to be a regression. Furthermore, since the installer will have to be built on arm64, the installer workflows would have to be refactored.
  3. Change our release workflow order to PyPi -> conda-forge -> Github release. This is probably the "correct" solution since this would eliminate patching the feedstock, released packages would be guaranteed to have the same package as traditional conda users, and we would not have to patch the conda-lock file (neither the url nor the md5 checksum). We would still build Spyder on our CI for PRs and pre-release checks, but in these cases the conda-lock file may not be important.

Pinging @spyder-ide/core-developers

@mrclary mrclary marked this pull request as ready for review June 27, 2024 17:56
@dalthviz
Copy link
Member

  1. Change our release workflow order to PyPi -> conda-forge -> Github release.

This option makes sense to me 👍

@ccordoba12
Copy link
Member

I also agree with @dalthviz. But we'd still be able to test the installers manually before tagging a stable release, as we do now, right @mrclary?

@mrclary
Copy link
Contributor Author

mrclary commented Jun 28, 2024

I also agree with @dalthviz. But we'd still be able to test the installers manually before tagging a stable release, as we do now, right @mrclary?

We'd still be able to manually test. Here is what I'd propose:

  1. Manually trigger installer workflow (workflow dispatch pre=true).
  2. Manually test installers. Note that the conda-lock file will not be valid since it will not rely on a Spyder conda package from conda-forge.
  3. Create release tag (but not a GH release).
  4. Publish to PyPi.
  5. Publish to conda-forge.
  6. Create Github release (using existing tag). This triggers the installer workflow for release.

I would also change our update manager to only check for updates from GH. Then all user types will be alerted to available updates after all assets are guaranteed to be available.

@ccordoba12
Copy link
Member

Manually test installers. Note that the conda-lock file will not be valid since it will not rely on a Spyder conda package from conda-forge.

Ok, I think that's a good compromise: we should be able to test the installers before a release but not the update process with them.

Copy link
Member

@ccordoba12 ccordoba12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @mrclary!

@ccordoba12 ccordoba12 changed the title PR: Fix issues with installer discovered from 6.0.0b2 PR: Fix issues with installers discovered after 6.0.0b2 was released Jul 3, 2024
@ccordoba12 ccordoba12 merged commit 29bbf6a into spyder-ide:master Jul 3, 2024
9 checks passed
@mrclary
Copy link
Contributor Author

mrclary commented Jul 3, 2024

I'll submit a follow-up PR:

  • Change our installer workflow to use the conda-forge Spyder package on releases only. Nightly, PR, and workflow-dispatch triggers will still build Spyder locally.
  • Discontinue patching the conda-lock file.
  • Change the update manager plugin to only check GH for releases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build string in conda package url for Spyder in the conda-lock file release asset does not match conda-forge
3 participants