-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: "Port-Impact" #581
Comments
Let's take
OK, that's the right port, let's get totals:
|
Based on the above,
Over all, it is used by 8355 ports
|
The top 20 ports:
|
The full output is at https://gist.github.com/dlangille/9f95843f5d49d44b670497ee0a0fd81d WARNING: 3.43M |
Issues:
|
This output features active ports only
Output at: https://gist.github.com/dlangille/a22b87bcb44126e118c4304d185fe1c4 |
We can consider the top-20 most watched ports:
|
Things to do:
|
Here is the new approach. This query takes < 20ms to run.
|
What it looks like:
|
Uploaded here: https://people.freebsd.org/~dvl/ports-impact.txt |
If this proves useful, it can be automated to update on a regular basis. |
For what it's worth (not to complicate this issue), it might be useful to treat:
– for as long as version 30 will be required to build Signal net-im/signal-desktop, which has some passionate users. There might be any number of other cases that are not easily measurable in a way that corresponds with reported effects on end users. Signal comes to mind only because I'm aware of things being relatively noisy in and around package infrastructure bug 270565, where (understandably) no more than one version of Electron is built, at this time. |
How do we code that without special casing it? Is there something in the port we can detect? |
I'm no expert, but I can't think of anything detectable. ∑ (watch list counts) are low: |
If the pkg servers keep tallies on how many downloads each package gets, that would be more useful but a 'proper' list needs other data or exceptions as not all ports have permissive distribution by public pkg repos. If any ports have public download counts for their master_sites then that could be turned into a metric but sounds like similar difficulty as automatically checking program versions available from the original source. It would have different but relevant values of both total count and relative count. The reasons why those are separate is some downloads get hosted through 3rd parties, unofficial mirrors/sites, p2p, etc. where download counts are not maintained so each may have relevance. Another freshports metric that could be gathered would be page views per port. Its value could be debatable as I'm sure I've used ports that I never visited a freshpports entry for and sometimes I view a page but I never install it. Watchlist still seems like a better count as it means someone took the time to say 'i care about this port' where my main fear is too low of a logged in freshports userbase. Having an automated way to transfer a list of non-automatic packages from a system to freshports would help make that more complete + up to date but it would further benefit from dependencies getting counted too to try to follow flavors and build option differences. Similarly I've thought there could be value in tracking build options just to get a user count of different port options and the user-bases that form around specific divisions. Obviously trying to gather any of these metrics has difficulties both from users security and privacy being impacted when program installation records are tracked+shared. Originally I was expecting this to be more about the build time and resources instead of userbase. Poudriere build runs log time but that can vary depending on the hardware it runs on, whether compiler caching helped, and for local builders there are issues with how much RAM, what is in RAM vs on disk, what disk speed, etc. It will be great if such metrics also come into play but they will be even more valuable in the ports tree itself so that a builder like poudriere to set how many of which jobs to run in what order and when (preemptively) for downloading, extracting, compiling, packaging, etc. to better utilize resources; considerations I thought about as I thought about writing a competitor/replacement before poudriere existed but never got anywhere for useful code. A 'basic' runtime of the port and summary of its dependencies for build times may be interesting but I don't know how useful it will be when differences get considered, specifically CPU+threads, RAM, and cache; could be attached or laid out similar to the latest version table. |
Moin moin
portmgr had the idea some time ago to try to measure how much impact a given port has.
This could be used to gauge whether a port should be maintained by a group (bus-factor), or give some idea of when to do exp-runs.
A first stab at this could be to count the reverse-dependencies of given port. That would for give a higher importance to
devel/cmake
than to saywww/firefox
. However, as is quite obvious this example shows that this metric is not enough. As it won't give any importance to leaf-ports likewww/firefox
.A suggestion by dvl was to also consider the "watchers" of a given port on freshports -- which could help give some weight to important leaf-ports.
mfg Tobias
The text was updated successfully, but these errors were encountered: