2021-09-16 16:24:37 +02:00
|
|
|
= DNF Counting
|
|
|
|
|
|
|
|
We use DNF Counting to get statistics about the number of Fedora
|
|
|
|
installations.
|
|
|
|
|
|
|
|
== Contact Information
|
|
|
|
|
|
|
|
Owner::
|
|
|
|
Fedora Infrastructure Team
|
|
|
|
Contact::
|
|
|
|
#fedora-admin, #fedora-noc
|
|
|
|
Servers::
|
|
|
|
log01, proxy0*
|
|
|
|
Purpose::
|
|
|
|
Give interested parties information about the number of Fedora
|
|
|
|
installations.
|
|
|
|
Repositories::
|
|
|
|
* https://pagure.io/mirrors-countme
|
|
|
|
* https://pagure.io/fedora-infra/ansible/blob/main/f/roles/web-data-analysis
|
|
|
|
|
|
|
|
== How it works
|
|
|
|
|
|
|
|
Scripts sync http log files from proxies, combine the log data,
|
|
|
|
summarize per Fedora version and spin, and produce graphs.
|
2021-09-16 16:25:56 +02:00
|
|
|
|
|
|
|
== `mirrors-countme`
|
|
|
|
|
|
|
|
The `mirrors-countme` project creates statistics from the already
|
|
|
|
combined log data.
|
|
|
|
|
|
|
|
=== Deploying Upstream Changes
|
|
|
|
|
|
|
|
Prerequisites: A change (bug fix or feature) is available in the `main`
|
|
|
|
branch of `mirrors-countme`.
|
|
|
|
|
|
|
|
. Publish an upstream release
|
|
|
|
+
|
|
|
|
From a clone of the upstream repository:
|
|
|
|
+
|
|
|
|
.. In `countme/version.py`, bump `__version__` (e.g. to `0.0.7`) and
|
|
|
|
commit the change, e.g.:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
git commit -s -m "Bump version to 0.0.7" -- countme/version.py
|
|
|
|
....
|
|
|
|
.. Tag the previous change with a GPG-signed tag:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
git tag -s 0.0.7
|
|
|
|
....
|
|
|
|
.. Push both the change and the tag:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
git push origin main 0.0.7
|
|
|
|
....
|
|
|
|
.. Create a source tarball (this will be created as e.g.
|
|
|
|
`dist/mirrors-countme-0.0.7.tar.gz`):
|
|
|
|
+
|
|
|
|
....
|
|
|
|
python setup.py sdist
|
|
|
|
....
|
|
|
|
.. https://pagure.io/mirrors-countme/upload[Upload this tarball] to the
|
|
|
|
`mirrors-countme` releases folder
|
|
|
|
. Update and Build the `python-mirrors-countme` Fedora Package
|
|
|
|
+
|
|
|
|
From a clone of the Fedora package repository, in the `rawhide` branch:
|
|
|
|
+
|
|
|
|
.. Bump the version in `python-mirrors-countme.spec`. No other changes
|
|
|
|
are necessary, the packages uses automatic release fields and changelog.
|
|
|
|
+
|
|
|
|
.. Download the source tarball, either manually or one of:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
spectool -g python-mirrors-countme.spec
|
|
|
|
....
|
|
|
|
+
|
|
|
|
....
|
|
|
|
rpmspectool get python-mirrors-countme.spec
|
|
|
|
....
|
|
|
|
.. Upload the source tarball to the lookaside cache:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
fedpkg new-sources mirrors-countme-0.0.7.tar.gz
|
|
|
|
....
|
|
|
|
.. Commit the changes to the repository, e.g.:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
git commit -s -m "Version 0.0.7" -- python-mirrors-countme.spec
|
|
|
|
....
|
|
|
|
.. Push the changes and build:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
git push && fedpkg build
|
|
|
|
....
|
|
|
|
.. For any other active Fedora and EPEL branch, fast forward them to the
|
|
|
|
state of the `rawhide` branch, push and build, e.g.:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
git checkout epel8 \
|
|
|
|
&& git merge --ff-only rawhide \
|
|
|
|
&& git push \
|
|
|
|
&& fedpkg build
|
|
|
|
....
|
|
|
|
. Submit Fedora/EPEL Package Updates
|
|
|
|
+
|
|
|
|
Either submit the update via the
|
|
|
|
https://bodhi.fedoraproject.org/updates/new[Bodhi web interface], or
|
|
|
|
from the command line in the respective checked out Fedora or EPEL
|
|
|
|
branch, e.g.:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
fedpkg update --type bugfix --notes 'Put in some notes!'
|
|
|
|
....
|
|
|
|
. Tag with Infra-Tags in Koji
|
|
|
|
.. Tag the build into the respective infra candidate tag in Koji, e.g.:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
koji tag-build epel8-infra-candidate
|
|
|
|
....
|
|
|
|
.. Check that the build was picked up and signed (this should take no
|
|
|
|
more than a few minutes), e.g.:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
koji buildinfo python-mirrors-countme-0.0.7-1.el8
|
|
|
|
....
|
|
|
|
+
|
|
|
|
The build must be tagged with the corresponding `*-infra-stg` tag.
|
|
|
|
.. Tag the build into the respective infra production tag in Koji, e.g.:
|
|
|
|
+
|
|
|
|
....
|
|
|
|
koji tag-build epel8-infra
|
|
|
|
....
|
|
|
|
|
|
|
|
When the respective infra tag repository is updated, the new version
|
|
|
|
should be ready to be installed/updated in our infrastructure.
|