zap
- 25 Devlogs
- 40 Total hours
ZAP or Zippy asset packager is package manager written in python, feito com muito amor/odio.
ZAP or Zippy asset packager is package manager written in python, feito com muito amor/odio.
Devlog #21
Updating the README so I can release version 0.7 tomorrow!
Devlog #20
Today, with the help of ChatGPT, I created the dependency system.
The ZAP can now resolve package dependencies and find the correct versions required by each package. It can also handle multiple versions of the same dependency and create launchers with the required dependencies added to the PATH.
This means different packages can use different versions of the same dependency without conflicts.
Devlog #18
Today, I added a new parameter to the database for dependencies, and I started working on the dependency system.
I don’t know if I mentioned it in the previous devlog, but I also created the confirmation button.
Thanks for reading! And if you want to launch your project on Zap, please contact me.
Thanks for reading!
Hello! Today I finally started working on the scary part of a package manager: dependencies ⛈️⛈️.
Warning
Today I only worked on the system that grabs the dependencies.
The way dependencies will work is through the .cmd launchers stored in:
C:/Users/Your_User/AppData/Local/Zap/sl
Each package will have its own launcher, and that launcher will be responsible for setting up the environment required by that package.
For example, imagine your program uses lib_a version 1.0, while another program uses lib_a version 2.0. Instead of putting everything in the same place and causing conflicts, each .cmd launcher will temporarily add the required dependencies to the PATH.
This means that both versions can coexist without interfering with each other.
Dependencies can also have their own dependencies. When one package depends on another package, its launcher can create its own environment with the dependencies it requires. This creates a kind of lightweight sandbox for each package.
The goal is to keep dependencies isolated while keeping the system simple and transparent.
This is definitely one of the more complicated parts of the package manager, but I’m finally starting to figure out the architecture.
Warning
This changes are not avaiable yet!
Today, I changed the way you configure Zap.
The example below shows how to hide the logo.
Before:
zap config hl
Now:
zap config set show_logo true
Previously, you couldn’t view the configuration from the program. Now, zap config list shows the current configuration.
Warning
The configuration is currently only used to enable, disable, or change the logo and debug settings.
I’m also finally using Python’s virtual environment to work on the project.
These changes will be included in the next release. For now, they are available in the dev branch.
And thank you to everyone who has checked out the project and given feedback. If anyone wants to publish their projects and make them available in the Zap repository, please leave a comment or try to contact me.
Devlog #15
Today, I re-write the Readme, launch a release (v0.6.5-beta), I created a official repository and add a test package named hello.
Devlog #14
Today I separated repo-tools from the Zap parser and started developing it in its own branch.
Devlog #13 Adding the info commmad.
adding a gitignore and deleting the repo-tools to start from zero.
Devlog #11 - Now I added upgrades to the zap website but I down publish yet. Sorry for my robotic English.
Devlog #10
Today I added the repo-remove command, which removes a repository URL from the index file. I also made some small improvements to the project’s directory structure.
Devlog - 09 Today I added a base_url parameter to the index configuration, allowing the domain to be changed more easily without having to manually update all links. I also fixed issues in the Makefile that were causing broken executables with no output. Finally, I merged my work from the GitHub dev branch into the GitHub main branch.
Devlog - 08
Starting to create an installation script and configure my VS Code for another computer.
Devlog - 07
Today, I added an upgrade feature to update ZAP to the latest version. The code is untested because I have to return my school laptop and move everything over to my dad’s computer. I don’t know when I will be back to active development.
Devlog - 06. Today I added a function to check if a package is compatible with the operating system where the program is running.
Devlog - 05
Beginning of the creation of the repo-tools that will be used to create and edit an index.
Devlog - 04
Today I added a SHA-256 integrity verification system. The package manager now generates and compares file hashes to validate downloaded files and prevent corrupted or modified packages from being installed.
Devlog - 03
Today I created and finished the update command.
Devlog - 02
Today I finished the logging system and started updating the README.
What’s new:
Next step: polishing the project documentation and create a better structure for the packages.
Now I am implementing the log system.