You are browsing as a guest. Sign up (or log in) to start making projects!

zap

  • 25 Devlogs
  • 40 Total hours

ZAP or Zippy asset packager is package manager written in python, feito com muito amor/odio.

Ship #2

So, I built a package manager in Python. The biggest challenge I experienced was organizing my code, debugging, and building complex features. I’m proud that it works, and I’m proud of all the time I spent coding it.

My project documentation is on GitHub, which is the best place I have to write and maintain it. Zap can install, remove, and download packages without installing them, as well as update packages and perform other features.

Try out my project, and if you want to add your projects to the Zap repository, contact me on Slack or GitHub.

Thanks for Reading!

  • 14 devlogs
  • 24h
Try project → See source code →
Open comments for this post

3h 51m 21s logged

Devlog #25

Making small changes to the code in the past days to launch the version 0.7.0-beta.

0
0
90
Open comments for this post

42m 52s logged

Devlog #24

Today, I made some small changes to the project. The next thing I’m going to add is a system to check whether the local index is outdated and update it if necessary.

0
0
24
Open comments for this post

56m 51s logged

Devlog #23

Today, I correct a error in the launcher system code and I tried to create a 3 packages to show who it works but they don’t work.

0
0
20
Open comments for this post

3h 27m 21s logged

Devlog #22

Today, yesterday I added a function that checks if all packages / dependencies are in the list to be downloaded, also adding the author variable to the database, and some minor changes.
Thanks for reading! 😊

0
0
20
Open comments for this post

1h 31m 36s logged

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.

0
0
9
Open comments for this post

36m 14s logged

Devlog #19

Today, with the help of ChatGPT, I created a system to check if a dependency’s version is compatible with the program. For example, if a dependency is specified as dependency@>=1.0.0, the system will analyze the required version and check whether the available version is compatible.

0
0
19
Open comments for this post

1h 52m 25s logged

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!

0
0
43
Open comments for this post

1h 29m 39s logged

Devlog #17

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!

0
0
56
Open comments for this post

2h 55m 7s logged

Devlog #16

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.

0
0
11
Open comments for this post

2h 46m 14s logged

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.

0
0
4
Open comments for this post

45m 1s logged

Devlog #14
Today I separated repo-tools from the Zap parser and started developing it in its own branch.

0
0
8
Ship #1

Hello everyone!
My project is a package manager built entirely in Python.
I challenged myself to create something simple for everyone—both for the people creating the repository and for those who will use it. I am really proud of myself for dedicating so much effort to this project.

⚠️ Project Status & Requirements
Please note that this project is currently in Beta and some commands might not be fully functional or ready yet.

System Requirements:

Python 3.0 or higher is required.

To run the project in script mode, you must install the following dependencies: requests, colorama, and tqdm.

Current Limitations:

The tools inside repo-tools (used for creating repositories) are currently disabled while they undergo updates.

In the meantime, if you want to create a repository, you can use the example index provided in the GitHub README and simply replace the package and file names with your own.

If you have any questions or run into issues, please feel free to open an issue or ask here on GitHub. I am more than happy to help!

  • 11 devlogs
  • 16h
  • 9.85x multiplier
  • 156 Stardust
Try project → See source code →
Open comments for this post

1h 21m 56s logged

Devlog #11 - Now I added upgrades to the zap website but I down publish yet. Sorry for my robotic English.

0
0
5
Open comments for this post

2h 7m 35s logged

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.

0
0
7
Open comments for this post

1h 14m 41s logged

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.

0
0
3
Open comments for this post

1h 9m 15s logged

Devlog - 08
Starting to create an installation script and configure my VS Code for another computer.

0
0
2
Open comments for this post

1h 17m 13s logged

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.

0
0
3
Open comments for this post

1h 30m 3s logged

Devlog - 06. Today I added a function to check if a package is compatible with the operating system where the program is running.

0
0
4
Open comments for this post

1h 38m 52s logged

Devlog - 05
Beginning of the creation of the repo-tools that will be used to create and edit an index.

0
0
2
Open comments for this post

32m 26s logged

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.

0
0
20
Open comments for this post

2h 39m 46s logged

Devlog - 02

Today I finished the logging system and started updating the README.

What’s new:

  • Complete activity logging
  • README improvements and setup guide

Next step: polishing the project documentation and create a better structure for the packages.

0
0
6

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…