Hello o/ I would like to develop a package manager in c# to expand my knowledge
about the language and more understand how package managers put together entire
system. so here are my questions: 1. where should I start? 2. do I invent my own
pkg format or do I use pre built packages like deb or rpm? I think the later one
will be more easier 3. how do I setup my dev environment I am on Ubuntu and has
installed VS Code and dotnet sdk sorry it these questions feel too naive but I
really think I can do this! Thanks in advance!
Building a package manager is kind of a large project, so I’d recommend trying to build some smaller applications in C# first. That will help you set up your development environment and get a better grasp on the language and ecosystem.
Once you’ve got an okay understanding of the language, I think a package manager would be a great project to learn with (especially if it’s something you’re interested in)!
Whether you build your own package format or use one from another manager is up to you. If you want to learn how a specific package manager works, consider integrating with their package format. If you want to design a full system, consider designing your own (and maybe take inspiration from some existing solutions). I wouldn’t say that using an existing format would be strictly easier, as those formats are specially designed and can often be very complicated.
This is a tricky question for any application. I’d highly recommend spending a little bit of time to determine roughly what steps will need to be done for each stage of package management (i.e., creating a package, publishing a package, installing a package). Since you’re just doing this to learn, it’s okay if it’s not perfect or if there are portions that are missed, it’s just important to get some thoughts out. When you actually start writing code, you’ll probably want to focus on the more fundamental aspects that block the other stages (implement package creation before implementing installation)