Skip to content

Create a preliminary internal v2 lockfile schema but enforce v1 - #412

Merged
maresb merged 9 commits into
conda:mainfrom
maresb:fix-411
May 24, 2023
Merged

Create a preliminary internal v2 lockfile schema but enforce v1#412
maresb merged 9 commits into
conda:mainfrom
maresb:fix-411

Conversation

@maresb

@maresb maresb commented May 21, 2023

Copy link
Copy Markdown
Contributor

As described in #411, the merge of #389 broke parsing of lockfiles for the conda-lock install command due to a schema change.

In this PR I create explicit v1 and v2 schema, the v2 being preliminary. The only difference between the two is that v2 omits the optional from packages. There is no loss of information thanks to the invariant optional = category != "main". Thus it's easy to convert between v1 and v2, and the corresponding functions are added here.

The combination of #389 and this PR should be a pure refactor, as input and output are done exclusively with the v1 schema.

This sets us up to make the schema modifiable, as there are some changes I'd like to make. (RFC coming soon...)

Before I consider this to be closing for #411, I want to add tests for conda-lock install. I merged #411 because the tests were green, despite the breakage, so I'd like to avoid this happening in the future.

@maresb
maresb requested a review from a team as a code owner May 21, 2023 19:12
@netlify

netlify Bot commented May 21, 2023

Copy link
Copy Markdown

Deploy Preview for conda-lock ready!

Name Link
🔨 Latest commit 7a9a707
🔍 Latest deploy log https://app.netlify.com/sites/conda-lock/deploys/646a6d13b63c6d000839efd4
😎 Deploy Preview https://deploy-preview-412--conda-lock.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@maresb

maresb commented May 21, 2023

Copy link
Copy Markdown
Contributor Author

@srilman, I'd appreciate a review on this if you get the chance. Also, I'm going to try to rebase #390 on this soon.

@maresb

maresb commented May 21, 2023

Copy link
Copy Markdown
Contributor Author

I'm trying to update my #410 which rebases #390 so that the previous logic is reproduced. It it much trickier than I hoped. It's more of a logic puzzle than I can solve for tonight.

My goal would be to adjust #390 so that categories is not a set but a list. And that list should have the property that its first (or last) element should be the category selected previously.

This way, lockfile conversion would work as follows:

  • v1 → v2, categories = [category]
  • v2 → v1, category = categories[0]

@maresb

maresb commented May 24, 2023

Copy link
Copy Markdown
Contributor Author

I don't like having a broken main, so I'm going to merge this. We can revert as needed.

@maresb
maresb merged commit 1b5e0ab into conda:main May 24, 2023
@maresb
maresb deleted the fix-411 branch May 24, 2023 15:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant