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

Feature: Package Version Management for kpm #246

Closed
zong-zhe opened this issue Jan 23, 2024 · 12 comments · Fixed by #292
Closed

Feature: Package Version Management for kpm #246

zong-zhe opened this issue Jan 23, 2024 · 12 comments · Fixed by #292
Labels
feature request Feature request. good first issue Good for newcomers help wanted Extra attention is needed

Comments

@zong-zhe
Copy link
Contributor

zong-zhe commented Jan 23, 2024

Feature Request

Is your feature request related to a problem?

Yes, currently KCL package manager lacks an efficient way to manage different versions of the same package. This makes it difficult for users to install specific versions, upgrade, or downgrade packages.

Describe the feature you'd like

I would like to propose a version management feature for our package manager. This feature should allow users to easily view, install, upgrade, and downgrade different versions of packages. It should also handle dependencies version conflicts between different versions of the same package to ensure that all dependencies are met when installing, upgrading, or downgrading a package.

Pretest

To apply for this mentorship, finish the pre-tests.

Don't worry that you may not be able to complete all the pretests, you can choose any pretests you can do, and we will consider the final choice according to all your work. You can also try some other non-pretest work, after all, that will help you understand the whole project

Appendix

  • kpm download the dependencies here :

    func (c *KpmClient) downloadDeps(deps pkg.Dependencies, lockDeps pkg.Dependencies) (*pkg.Dependencies, error) {

  • When kpm downloads dependencies, it recursively adds all the dependencies of the dependencies to the current project. Here:

    for _, d := range newDeps.Deps {

  • The Pre-Test [LFX PreTest] kcl mod graph to show the dependency graph of KCL package dependencies #263 can follow this approach

    func (c *KpmClient) downloadDeps(deps pkg.Dependencies, lockDeps pkg.Dependencies) (*pkg.Dependencies, error) {
    , and calculate the dependent graph during the download process.

  • This issue can follow this approach

    func (c *KpmClient) downloadDeps(deps pkg.Dependencies, lockDeps pkg.Dependencies) (*pkg.Dependencies, error) {
    , when download different versions of the same package, design a selection strategy, select the appropriate version to download, and report an error if the appropriate version is not found.

  • When you design a selection strategy, you can refer to golang mvs.

@zong-zhe zong-zhe added help wanted Extra attention is needed feature request Feature request. labels Jan 23, 2024
@Peefy Peefy added the good first issue Good for newcomers label Jan 23, 2024
@octonawish-akcodes
Copy link
Contributor

I am interested in this under lfx

@zong-zhe
Copy link
Contributor Author

zong-zhe commented Jan 23, 2024

Hi @octonawish-akcodes 😄

Your enthusiasm to participate in the project is quite ahead of time. We appreciate your passion. 👍

However, the selection for the LFX project is still in progress, and we still have some preparations to make. You can refer to the specific timeline here: LFX Project Timeline. We will continue to update some detailed information about the KCL package manager in this issue. You can keep an eye on it. We will contact you after the project starts.

@AkashKumar7902
Copy link
Contributor

Hey, I am too interested in working in this project.

@zong-zhe
Copy link
Contributor Author

Hi @AkashKumar7902 😄

The selection for the LFX project is still in progress, and we still have some preparations to make. You can refer to the specific timeline here: LFX Project Timeline. We will continue to update some detailed information about the KCL package manager in this issue. You can keep an eye on it.

We warmly welcome your contribution to the KCL project. If you are interested in our project, you can also choose some other issues to work on:

KCL: The KCL Compiler - https://github.com/kcl-lang/kcl/issues
kpm: The KCL Package Management Tool - https://github.com/kcl-lang/kpm/issues

If you have any questions welcome, you can directly raise the issue or initiate a new discussion to discuss with us.
https://github.com/orgs/kcl-lang/discussions 👋

@amands98
Copy link

Hello, I'm also interested in working on this issue. We could create something like a KVM (KCL Version Manager) or add a subcommand to the kpm for updating, changing, or downgrading package versions.

@gauriimaheshwarii
Copy link

Hi, I would like to work on this issue. I do have some ideas for it, and I'll share them on the discussions page.

@kanha-gupta
Copy link

Hi @Peefy @zong-zhe, I am applying for it. If a proposal is required, please let me know :)

@Peefy
Copy link
Contributor

Peefy commented Feb 5, 2024

Hello, proposal and PRs are welcome.

@zong-zhe
Copy link
Contributor Author

zong-zhe commented Feb 5, 2024

Hi @octonawish-akcodes @AkashKumar7902 @amands98 @gauriimaheshwarii @kanha-gupta 😃
Welcome ! I have added some details in this issue to help everyone understand.

@partik03
Copy link

partik03 commented Feb 8, 2024

Hi @zong-zhe I would like to work on this one during the upcoming LFX term and I will apply for the same in a day or so and currently working on the pretest assigned for this issue.

@AkashKumar7902
Copy link
Contributor

Hey @Peefy @zong-zhe
I have submitted the PR for pretest #264. I am super excited to apply. 😀

@zong-zhe
Copy link
Contributor Author

zong-zhe commented Feb 20, 2024

Hi @octonawish-akcodes @AkashKumar7902 @amands98 @gauriimaheshwarii @kanha-gupta 😃

I added a new PreTest #269 ,There is no dependency between these pretests, you can choose the PreTest you like to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Feature request. good first issue Good for newcomers help wanted Extra attention is needed
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

8 participants