这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@DerThorsten
Copy link
Contributor

@DerThorsten DerThorsten commented Jun 7, 2024

Description

While emscripten-wasm32 has been added as a subdirectory, it is missing as a platform.
As a consequence packages from emscripten-forge cannot be installed with conda (mamba-org/mamba#3291).

We are only facing this issue recently since we changed to rattler-build. Before that we use boa to build the packages for emscripten-forge. Boa wrongly used "linux" as platform for emscripten-wasm32 packages instead of "emscripten", therefore we did not see this issue before switching to rattler-build.

Thanks @trungleduc for helping in finding the solution to the problem.

Checklist - did you ...

  • Add a file to the news directory (using the template) for the next release's release notes?
  • Add / update necessary tests?
  • Add / update outdated documentation?

@DerThorsten DerThorsten requested a review from a team as a code owner June 7, 2024 09:29
@conda-bot
Copy link
Contributor

We require contributors to sign our Contributor License Agreement and we don't have one on file for @DerThorsten.

In order for us to review and merge your code, please e-sign the Contributor License Agreement PDF. We then need to manually verify your signature, merge the PR (conda/infrastructure#955), and ping the bot to refresh the PR.

@travishathaway
Copy link
Contributor

@conda-bot check

@conda-bot conda-bot added the cla-signed [bot] added once the contributor has signed the CLA label Jun 7, 2024
@codspeed-hq
Copy link

codspeed-hq bot commented Jun 7, 2024

CodSpeed Performance Report

Merging #13962 will not alter performance

Comparing DerThorsten:emscripten_platform (89aab35) with main (2f3fda3)

Summary

✅ 21 untouched benchmarks

@jezdez jezdez changed the title add emscripten as platform Add emscripten as platform Jun 10, 2024
@jezdez jezdez changed the title Add emscripten as platform Add emscripten as a platform Jun 10, 2024
Copy link
Member

@jezdez jezdez left a comment

Choose a reason for hiding this comment

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

A few things that need to be done:

  • the Arch enum also needs a wasm32 addition
  • the Platform enum also needs a wasi platform
  • we need to add a news file that mentions that this is a bugfix for #13095

Additionally, I worry that this wasn't caught earlier, could we add some tests?

@DerThorsten
Copy link
Contributor Author

DerThorsten commented Jun 10, 2024

A few things that need to be done:

  • the Arch enum also needs a wasm32 addition

Probably

  • the Platform enum also needs a wasi platform

Probably, but unrelated to this PR, but I can also add it

I can do that

Additionally, I worry that this wasn't caught earlier, could we add some tests?

I don't know enough about the testing in conda, but one could just install a package from the emscripten-forge channel

@DerThorsten DerThorsten requested review from jezdez and wolfv June 20, 2024 07:53
@travishathaway
Copy link
Contributor

@DerThorsten,

I believe we want to avoid any integration tests especially those reaching to outside services. I'm guessing the appropriate type of test would be some form of unit test.

@jezdez,

I was looking around the test code today and couldn't really find any good places to stick these tests. We could for example create a new tests/models/test_enums.py file and put some very straightforward tests there (e.g. just make sure all the enums we want to have defined are defined). Is that the type of test you had in mind? Or were you thinking of doing something a little more complex?

@dbast
Copy link
Member

dbast commented Jun 21, 2024

two questions:

  • Do the other Arch and Platform enums have tests?
  • What is the value of enum unit tests here?

the thing that really matters is: will the env creation commands listed here really work after merging this PR or are we still missing something? Only integration tests or a manual test can ensure this now (and for future changes). If we don't want tests that rely on outside services, then the PR is complete? or we write an complicated test that monkey patches the enums with artificial random arch/platform and mocks a channel+platform to prove that extending the arch + platform + subdir is enough for any additions (this would be imho unfair to request from the PR author as this goes beyond fixing PR #13095)

@dbast
Copy link
Member

dbast commented Jun 21, 2024

a canary build of the PR would be nice to install conda locally and run some of the commands here https://emscripten-forge.readthedocs.io/en/latest/src/usage.html

@DerThorsten
Copy link
Contributor Author

a canary build of the PR would be nice to install conda locally and run some of the commands here https://emscripten-forge.readthedocs.io/en/latest/src/usage.html

FYI the docs moved to https://emscripten-forge.org/

@DerThorsten
Copy link
Contributor Author

If we don't want tests that rely on outside services, then the PR is complete?

So from my side, I believe its complete.

@LiamBindle
Copy link

Thanks for your work on this @DerThorsten! Looking forward to this

@DerThorsten
Copy link
Contributor Author

@jezdez whats the way to move forward here?

jezdez and others added 2 commits July 15, 2024 22:27
Co-authored-by: jaimergp <jaimergp@users.noreply.github.com>
Co-authored-by: jaimergp <jaimergp@users.noreply.github.com>
@jezdez
Copy link
Member

jezdez commented Jul 15, 2024

pre-commit.ci autofix

jezdez
jezdez previously approved these changes Jul 15, 2024
@jezdez jezdez enabled auto-merge (squash) July 15, 2024 21:44
@jezdez
Copy link
Member

jezdez commented Jul 16, 2024

@kenodegard Do you have an idea why we're not seeing the error output from subprocess_call_with_clean_env in the failing test?

@kenodegard
Copy link
Contributor

@jezdez when an error or non-zero exit occurs the stdout & stderr are formatted and logged to INFO, unfortunately the default logging in conda is WARNING so the messages are silenced

@beeankha beeankha added this to the 24.7.x milestone Jul 16, 2024
@kenodegard
Copy link
Contributor

kenodegard commented Jul 16, 2024

Hm the test failure is complaining about emscripten not being a valid platform

edit: struggling to replicate the failure locally

@kenodegard kenodegard force-pushed the emscripten_platform branch from 68e023c to 964cd95 Compare July 16, 2024 17:46
@jaimergp
Copy link
Contributor

I think the pkgs cache (which is shared across CI runs) got polluted with the test files, and now the vanilla conda (outside this PR) cannot process its own PackageCacheRecord. Let's see if clearing it up helps.

@jaimergp
Copy link
Contributor

I manually cleared integration-1 caches triggered by refs/pull/13962/merge from https://github.com/conda/conda/actions/caches, and added a temporary pkgs_dirs workaround so they don't get cached again. Hopefully that's enough.

@jezdez jezdez merged commit 0154a70 into conda:main Jul 16, 2024
@wolfv
Copy link
Contributor

wolfv commented Jul 16, 2024

yay! 🎉

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

cla-signed [bot] added once the contributor has signed the CLA locked [bot] locked due to inactivity

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.