gnu-linux-libre
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNU-linux-libre] ION Project


From: d1nch8g
Subject: [GNU-linux-libre] ION Project
Date: Sat, 04 Nov 2023 19:14:11 -0300

Good afternoon!

Firstly, would like to apologize for a possible misunderstanding. English is not my first language. I hope possible lexical difficulties will not affect the transmission of the presented concepts.

For last year i've been working on an arch-based distribution with some features that I'd like to share with the GNU/Linux, FOSS, and development communities. The project is currently in prototype stage; some functionality is relatively crude, but on this premise, at least some ideas might have a good use.

If that would be possible, I would ask you to review the system or some of it's components, since they address different issues, each of which can only be fixed through collaborative efforts.

The main goal of the project is to integrate diverse free software components to better fit with each other. That would simplify the end user's experience, reduce existing network effect and will make the system easier to understand for new users.

1. Decentralized Package Manager

The majority of application stores, package managers or tools that work on top of package managers (AUR-helpers) are eventually linked to specific centralized institution. These include both entirely closed proprietary repositories: 'Apple Store', 'Play Market', 'Steam', and platforms that deliver primarily free software or components: 'Spanstore', 'NPMJS', 'Crates', 'AUR'.

Centralized software hubs frequently incorporate proprietary backend and infrastructure components, resulting in a network effect in which users publish their work in a single place. This causes the following issues:

- Software and component developers delegate too much responsibility to a single point of failure
- Often, centralized nodes introduce extra barriers in the form of the necessity for software package or dependency component moderation
- Owners of software hubs hold far too much control over those who rely on them, especially when the software is mostly proprietary

In contrast, certain systems, such as git, docker, and go, use a decentralized model by default. Without unnecessary intermediate regulatution those systems are far superior in terms of practicality. This enables software and component providers to deliver their packages or libraries directly to users without causing needless annoyance.

Project includes a pacman-based decentralized package manager prototype. It allows software developers to provide packages directly to users without intermediary regulation. Additional command to push packages directly to the package registry can simplify the process of package delivery. Furthermore, embedded registry handles package database files automatically in specific user/organization scope, eliminating the need for manual package database file maintenance and lowering the amount of potential errors.

The final objective is to build a bridge between the package manager and the CI/CD system by simplifying package delivery via API endpoints, alongside adding additional CLI interface for package distribution in decentralized manner. If I knew C, I'd probably just modify Pacman, but if the ideas are useful, there's nothing stopping me from learning it to apply required modifications, or create an entire new solution.

Source code: https://ion.lc/core/tab
Gitea registry PR: https://github.com/go-gitea/gitea/pull/25396

2. Project home is a public Gitea instance

Most of the software products use their own technological solutions for the same purposes, although the functionality often strongly intersects: blogs, Q&A systems, registries for software packages, documentation hosting, GPG key-servers, and so on. People spend a lot of effort solving the same problems, while small companies and startups may not have enough resources to maintain a large number of specialized web services. Additional maintanance takes extra effort, which is often unnecessary, if the end-goal is to solve specific specialized problem.

Integration of a particular solution into existing git-hosting / CI-CD system might be harder from development perspective, but may then be used by a wider audience because integrated functionality, when provided in accesible manner, is more likely to be utilized.

Also, that might reduce the number of centralized services for specific tasks, since functionality can be provided within existing decentralized free solution like Gitea. For example, embedding Q&A system into Gitea might reduce the network effect of StackOverFlow, more users will receive an access to freedom respecting integrated functionality.

Modified gitea allows package maintainers to publish the source code alongside packages in a single place without being tied to a specific instance, as there is a simple straightforward approach to deploy new instances under different domains. As a result, this provides users access to the code base and software updates in a unified manner.

Configurations and deploy instructions are provided in infrastructure repository for single and multi-node setup.

Source configs: https://ion.lc/core/infr
Source modified by Gitea: https://ion.lc/core/gitea

3. A basic set of applications

Programs that are pre-installed with the system are more likely to be used. Users prefer apps that can be quickly installed in a unified way (for example, through the app store or a package manager). On the other side, users tend to avoid applications that take a long time to set up, require build from source or extra effort to find specific dependencies.

Distribution includes vscodium, git, gpg, docker, brave, and a good set of terminal tweaks. This could save educational institutions or enterprises time to set up a workspace for new students or employees; furthermore, it may attract new users to programming - the beauty and convenience of the development environment attracts and disposes to this process.

Today children often get personal computers under the age of 10. Parents should consider buying a GNU/Linux laptop for their child, or installing it on existing hardware, since this system is not limiting educational capabilities, while default set of applications enables more users to create new software solutions.

Source code: https://ion.lc/core/iso

---

I would like to share my work with the community, at least because the concepts presented could enable new developers to write programs for Linux faster and transfer them to each other using a decentralized approach. While maintaining compatibility with pacman, tab would allow users to less use centralized / prorietary backend services like Steam, SnapStore, etc. Also, using services similar to Gitea could greatly simplify the support of package databases for distributions like Arch/Parabola/Hyperbola/Artix/Arco/Manjaro/EndeavourOS, which can also be a helpful.

If possible, I would like to know your opinion on presented concepts and get an advice for further development.

Homepage: https://ion.lc/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]