pub
meta-package-manager
Our great sponsors
pub | meta-package-manager | |
---|---|---|
21 | 13 | |
1,028 | 439 | |
1.4% | - | |
9.2 | 9.5 | |
3 days ago | 3 days ago | |
Dart | Python | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pub
-
Writing a Package Manager
Agreed. Version resolution is the interesting problem.
Most package managers use a SAT solver to resolve dependencies. The Dart team has a detailed write up on their SAT-based approach which is worth a read [1]. For contrast, Russ Cox presents an algorithm that doesn't use a SAT solver (intended for Go) [2].
[1] https://github.com/dart-lang/pub/blob/master/doc/solver.md
[2] https://research.swtch.com/vgo-mvs
- Modern SAT solvers: fast, neat and underused (2018)
-
Private pub.dev - is it possible?
Official documentation.
-
Self hosting package repository
As I understand Custom package repositories it's possible to host one's own package repository. The Repository Specification is public, but dart.dev only references cloud based paid services like Cloudsmith and OnePub.
- PubGrub: A next-generation version solving algorithm
-
I am building a pub server. When does the client send the name and version of the package and how can I access it?
As u/Which-Adeptness6908 already pointed out, the repository specification is small, and that's all you need to implement a server: https://github.com/dart-lang/pub/blob/master/doc/repository-spec-v2.md
- So you want to write a package manager
-
Tencent WeChat is now a GitHub secret scanning partner
https://docs.github.com/en/code-security/secret-scanning/sec...
A bit sad, they don't publish the list of regexes, etc.
--------------
I added a similar thing to the package manager for Dart / Flutter, because we saw users accidentally publishing secrets. That code is public, it relies on regexes and entropy estimation:
https://github.com/dart-lang/pub/blob/eb8ee21a089ebe0f2c2dd8...
It was heavily inspired by the researchers in:
-
Another choice of Flutter Version Manager: fvm in shell
Heres are some issues I've faced when trying with the dart-version cli: - The installation - dart pub global activate needs to have flutter/dart global installed already. - Global activated fvm cli got invalid after flutter upgrade, see issue - The cli does not work with customized fork of flutter. - You should run fvm flutter , not flutter , this changes CI/CD workflow
-
Dart on CLI: Foundations
This will add the args dependency in your pubspec file. We used the Darts package manager pub to add this dependency.
meta-package-manager
-
Writing a Package Manager
Something like Meta Package Manager? https://github.com/kdeldycke/meta-package-manager
-
Looking for a tool that updates all system language-specific packages (npm, pip, cargo, gem etc)
I use https://github.com/kdeldycke/meta-package-manager
-
TIL: You Can Stop Updating Copyright Attribution Years (2021)
The result: https://github.com/kdeldycke/meta-package-manager/commit/3ab...
- In Praise of Alpine and APK
- mpm – Meta Package Manager – wraps package managers with a unifying CLI
-
Recent Apple Updates Leading to WiFi Issues
Source: https://github.com/kdeldycke/meta-package-manager/
With regular snapshots you can at least eliminate new installed software as the root cause of an issue. Doesn't solve the issue with preferences though.
-
Show HN: Meta Package Manager, a CLI that solves Xkcd #1654
and let it figure out which package manager to use to install your package.
The project is open-source: https://github.com/kdeldycke/meta-package-manager#readme
This CLI has some other capabilities, like listing the duplicate packages on your system:
$ mpm list --duplicates
-
What are some of your favorite CLI/TUI apps?
Potentially somewhat answering my own question (but not completely; i am still interested in your answer) you might be interested in https://github.com/kdeldycke/meta-package-manager is it along the same lines?
- Meta Package Manager – One CLI for all package managers
- GitHub - kdeldycke/meta-package-manager: 📦 one CLI for all package managers
What are some alternatives?
unpub - Self-hosted private Dart Pub server for Enterprise
apt-offline - Offline APT Package Manager
pub-dev - The pub.dev website
pacapt - An ArchLinux's pacman-like shell wrapper for many package managers. 56KB and run anywhere.
shhgit - Ah shhgit! Find secrets in your code. Secrets detection for your GitHub, GitLab and Bitbucket repositories.
pacaptr - Pacman-like syntax wrapper for many package managers.
fvm - Flutter Version Manager - POSIX-compliant bash script to manage multiple active flutter versions
macupdater - Auto-update macOS using package managers like mas, homebrew, npm and gem all in one go.
courier - Private dart package manager
MacOS-Menu-Bar-Picker - Costum menu bar entry for MacOS - build with rumps and py2app.
fvm - Flutter Version Management: A simple CLI to manage Flutter SDK versions.
flatpak-external-data-checker - A tool for checking if the external data used in Flatpak manifests is still up to date