Zac Bowling
Zac Bowling
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
love the idea about a plugin model. Some of that can work with global installed tools but some things would be cool to hook inside magic. One idea i've been talking about with pixi devs is an initalizer plugin, almost like how npm create works, so that plugins (packages also in conda) can help with project scaffold generation.
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
magic self-update is coming after this preview πŸ™‚ I have to teach magic about our distribution platform so it can check for updates and download specific versions.
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
Oh, that’s a valid use case. Let me look into that
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
Great questions! Wasn’t expect such advanced questions already. Let me work on getting documentation together on that. Magic uses its own global config (in the modular directory depending on OS and if XDG is being used in your distro) but the location isn’t in the final location it’s going to be in later versions.
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
I’m not sure what exactly you mean with β€œplaceholders” (the repo format for the current CLI is a bit unique). Right now, though, as you were saying it is difficult to sort of determine the current build of max/mojo that you’re using sometimes so that you can communicate that to somebody else so they can use the same code at that same version. We had a somewhat of an open secret command to install versions of mojo/max/nightlies at a specific version but the input was hard to figure out (we actually write to a file in the toolchain install folder with the version you can pass in but not obvious πŸ˜…). With nightlies we originally assumed most folks would use it to work on things like the mojo open source stdlib to test changes or to try latest new features or bug fixes, but we didn’t design it well for the use case of people who want share their code in a way that others could reproduce well with those nightlies. We want to help with that and that’s what magic is really great at. As MAX and mojo mature and people build more complex things with it, we’re trying to make sure folks can keep their code working consistently with all the dependencies that code uses (including MAX). Now you can keep a record with your code of what your code built with your manifest + lock file. But I hear you. 😁 Best I can say is that our ci/cd setup is pretty complex πŸ˜… duplicated hosting is the least concern or complexity though for nightlies.
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
For modular CLI is a little harder problem and little brittle with nightlies. You can do it but a bit more complicated and not easy for us to build tooling to support well. Magic helps solve all that and a dozen other long tail issues that have been a problem πŸ™‚
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
Absolutely! This is one of the things we were looking to solve. The magic.lock provides that info on what was used when it resolved versions which you are building together. You you can check that in with the code if you want and others can check out the same exact versions of all the deps (sorta the same rules as cargo.lock files there if you are familiar). Then you can be granular to a specific build in your mojoproject.toml/pyproject.toml/pixi.toml file with the specific version the code depends on or give a range of versions that are supported in some cases.
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
you can add additional conda channels in your project that you want to source dependencies from like nvidia, jupyter, pytorch, or bioconda including custom ones (or even include pypi dependencies from python). Not announcing any tools by us for creating sharable packages yet πŸ™‚
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
but one of the goals is reproducible and consistent environments where projects can specific their exact dependencies including the exact version of max/mojo your code depends on
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
maybe πŸ™‚ can't give timelines on any releases after this preview
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
yep πŸ™‚ but the only version in the conda repo right now is 24.4
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
fyi there is also magic clean cache if you want to blow about the global cache used to store packages. if you use that though then the next time you invoke a project, it will redownload all the packages into the environment.
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
yeah, that warning is the libstdc++ in the venv from conda is really new, so the built in lldb/llvm in mojo doesn't recognize new debug symbols stored in the library produced with the latest and greatest gcc so mojo likes to be a little too vocal when it sees something it never seen before πŸ˜†
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
known issue πŸ™‚ it's all good
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
can just rm -rf πŸ™‚ if you want to kill the envs and not the code in the project, there is ~/.magic in the folder and you can just rm -rf that.
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
yeah πŸ™‚
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
you might be two levels nested in a magic shell
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
:party_parrot: me too!
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
Ah yeah, this is similar to poetry merging both project management and virtual environments into a single tool
96 replies
MModular
Created by Jack Clayton on 7/26/2024 in #community-showcase
Magic CLI alpha community feedback and questions
init just creates a project file with some defaults
96 replies