Skip to content

Conversation

@isc-jlechtne
Copy link
Collaborator

@isc-jlechtne isc-jlechtne commented Nov 11, 2025

resolves #961

@isc-jlechtne
Copy link
Collaborator Author

Test coverage notes:

Modules required for testing:

  1. Module with 0 dependencies
    • Module A
  2. Module with 2 direct dependencies (they themselves don't have deps)
    • Module C
  3. Module with dependency that has transient dependencies
    • Module D
  4. Module with 1 dep (with transient), 1 dep (without transient)
    • Module F

Module A (0 deps)
- 0 dependencies
Module B (0 deps)
- 0 dependencies
Module C (2 deps w/o transient)
- 2 dependencies: A & B
Module D (1 dep w/ 2 transient)
- 1 dependency: C
Module E (1 dep w/o transient)
- 1 dependency: A
Module F (1 dep w/ 1 transient, 1 dep w/o transient)
- 2 dependencies: E & B

Edge cases:

  1. All repository types (for simplicity, can make all other tests be filesystem in the integration tests files)
    • Module G
  2. Module with multiple versions (both can specify version and defaults to latest version)
    • Module H
  3. zpm "ci" on a module with no lock file && creating a lock file for a module that didn't already have one
    • Module I
  4. Try install on a lock file that lists dependencies out of order
    • Module J
  5. 2 modules in lock file with the same dependency module
    • Module K

Module G. Includes dependencies for (to be created as well):
- Module remote
- Module oras
- Module http
- Module filesystem
- Module perforce
Module H
- v2: One dependency: Module E (transient A)
- v3: Adds dependency Module B
Module I
- Base equivalent to Module F, just deleted the lock file
Module J (1 dep w/ 2 transient)
- Equivalent to Module D
- Different lock file
- Module D's lock file: A->B->C
- Module J's lock file: A->C->B (C should fail with B not installed)
Module K
- 2 dependencies: C & E (both with A)

@isc-jlechtne isc-jlechtne marked this pull request as ready for review November 11, 2025 21:04
@isc-jlechtne isc-jlechtne changed the title Lock file Package Manager should support creation of a lock file Nov 11, 2025
Copy link
Collaborator

@isc-kiyer isc-kiyer left a comment

Choose a reason for hiding this comment

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

@isc-jlechtne my first round of comments is up! Will review the tests once the comments are addressed.

Copy link
Collaborator

@isc-eneil isc-eneil left a comment

Choose a reason for hiding this comment

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

@isc-jlechtne Left another round of comments!

A couple of suggestions that won't stop me from upvoting because they're about code readability rather than functioning:
- For maintainability and since they are not meaningful, I would not number these test method names
- For readability, I'd name the module parameters meaningfully as well

Copy link
Collaborator

@isc-kiyer isc-kiyer left a comment

Choose a reason for hiding this comment

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

@isc-jlechtne looks good overall! Few comments

@isc-kiyer isc-kiyer merged commit a6aadec into main Dec 15, 2025
14 checks passed
@isc-jlechtne isc-jlechtne deleted the lock-file branch December 16, 2025 16:35
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.

Package Manager should support creating a lock file

7 participants