pub
unpub
Our great sponsors
pub | unpub | |
---|---|---|
21 | 7 | |
1,028 | 417 | |
1.4% | 3.8% | |
9.2 | 0.0 | |
3 days ago | 28 days ago | |
Dart | Dart | |
BSD 3-clause "New" or "Revised" License | MIT License |
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.
unpub
-
Private pub.dev - is it possible?
You can use unpub which is open source.
-
Self hosting package repository
Googling around reveals unpub, but that project is failing to build.
-
Would you use Pub.dev enhanced plus plus?
Have you tried unpub ? github pub.dev
-
I am building a pub server. When does the client send the name and version of the package and how can I access it?
There are multiple servers/mirrors already shared on pub.dev, without any particular order or selection, I've found these with a simple search (NOTE: I'm not really familiar with the particular details of these, not endorsing, just pointing out examples): https://pub.dev/packages/unpub https://pub.dev/packages/repo_pub_server https://pub.dev/packages/pub_mirror
-
How to create a custom artifactory for flutter/dart ?
You can try something like unpub. https://pub.dev/packages/unpub This also lists some alternatives
- Access to private repositories, best practice
What are some alternatives?
pub-dev - The pub.dev website
mobx.dart - MobX for the Dart language. Hassle-free, reactive state-management for your Dart and Flutter apps.
shhgit - Ah shhgit! Find secrets in your code. Secrets detection for your GitHub, GitLab and Bitbucket repositories.
Flutter-Neumorphic - A complete, ready to use, Neumorphic ui kit for Flutter, 🕶️ dark mode compatible
fvm - Flutter Version Manager - POSIX-compliant bash script to manage multiple active flutter versions
courier - Private dart package manager
version_tracker - Xamarin.Essentials VersionTracking for Flutter
fvm - Flutter Version Management: A simple CLI to manage Flutter SDK versions.
roo - A package and environment manager for R
Hello-World - My first repository on GitHub!