Skip to content

Instantly share code, notes, and snippets.

@kevr
Created December 9, 2021 19:43
Show Gist options
  • Save kevr/8bbd5583a18aac4774d8a077c0aa7410 to your computer and use it in GitHub Desktop.
Save kevr/8bbd5583a18aac4774d8a077c0aa7410 to your computer and use it in GitHub Desktop.

Changelog

All notable feature additions, bug fixes and changes to this project will be documented in this file.

Branch HEAD Status Coverage
pu e728de9a pipeline coverage

bug fixes

Commit Message
2e3f69ab Fix git service's update hook
ad3016ef /account/{name}/edit Account Type selection
db2718fc util/fix-coverage sys.stderr typo
ab8a44ce only show comments partial if they exist
3ea515d7 use cert chain for nginx
6afcaf66 Fix aurweb.template warnings
06ec6388 fix flake8 violation
0bbb3cc4 rpc - include other fields with errors
f7818e26 test_rpc.setup() should be a pytest.fixture
4de18d81 voted/notified query efficiency
aee1390e registration sends WelcomeNotification
43808082 add production config overrides
4abbf9a9 use @localhost for dev email addresses
5e95cfbc get_pkgbase -> get_pkg_or_base
59d04d6e comment.html template rendering
6644c429 AnonymousUser.has_credential also takes kwargs
7bfc2bf9 Improve sqlite testing speed
08068e0a use configured letter case for SSH fingerprints
5c179dc4 use consistent ordering on dashboard and request page
9af76a73 include MergeBaseName in merge request type
f392b360 add missing translation filter for request type
1956be0f prefill login fields with entered data
1bce53bb mark user and passwd as required fields
a54a09f6 fix padding on email inputs
889c5b1e pkgbase actions template
e5299b5e pkgbase/package tests
4e7d2295 add package-related missing backref cascades
63498f5e use popupdate when [un]voting
5bbc94f2 add /pkgbase/{name}/flag (get)
4525a11d change a deep copy instead of original
748faca8 translate some untranslated strings
71b3f781 maintainers are allowed to unflag their packages
2d46811c display VCS note when flagging a VCS package
8040ef5a use pkgbase in package actions
27a65633 use CRED_PKGBASE_SET_KEYWORDS credential properly
c572a97d EXPECTATION_FAILED -> BAD_REQUEST
7f72d78d correct HTML tags and indentation
db67e83b use elif statements where appropriate
267f2cb2 remove trailing slashes from fastapi-driven links
d22580fa add aurweb-image service
b4092fe7 pass request type's name to Request*Notification
beed64e0 persist package request form inputs
4cb0994f correct unauthorized request creation redirect
fd58e4df unify tuple return style
c8f3ea2e fix various pkgbase-wise auth redirects
30ab45f4 add backref cascade to Package{Keyword,License}
5ae9d09e remove unused "Merge into" input from /packages
a06f4ec1 centralize logging initialization
c4163547 swap package cgit -> cgit-aurweb
db730ad8 fix cgit clone-prefix
d4210c53 update poetry dependencies
9b5eeb76 ignore asyncio.base_events deprecation warnings
c6c04f49 add missing version for docker-compose.override.yml
bc9bb045 PackageRequest's PackageBase relationship should not required
94d49486 increase recursion limit during tests
da55aa64 use more credentials in archdev-navbar.html
7e7a1ead unify homepage cache expiry time to five minutes
65be8b8e support "Account Type:" input for account edit
d7ac95a7 limit cookie migration to whitelisted keys
03428871 rework cookies - do not re-emit generically
1f2347c6 fix User.login signature typing
1656f582 restore mariadb service
7ee32a4e set GIT_DATA_DIR=git_data on aur-dev
a3a5ec67 enable options.disable_http_login on aur-dev
9fd07c36 fix account page title
348128fa fix /account/{username} page title
46c39399 fix /account/{username} links
7f4c011d sanitize PP/O parameters for package search
01e27fa3 sanitize /requests params
b3b31394 simplify json generation complexity
0af6a2c3 fix COMMIT_HASH variable check
c28f1695 support by maintainer search with no keywords
9fef8b06 fix search arg check
2cc44e8f perform regex match against callback name
b7475a5b fix performance of suggest[-pkgbase]
cef69b63 prune dangling images and build cache
f26cd1e9 add docker dep to deploy target
451eec0c remove info-specific fields from search results
a8287921 add mysql-connector dep
dc397f6b utilize PROMETHEUS_MULTIPROC_DIR in our own /metrics
cdb85425 share FASTAPI_BACKEND with the server
9aa8decf use metrics in cases where PROMETHEUS_MULTIPROC_DIR is defined
16e6fa2c fix prometheus parsing of HTTPStatus
e4a5b7fa use 3s intervals for all healthchecks
020409ef prevent CSRF forging login requests
85ebc72e only elevated users are allowed to suspend accounts
464540c9 use https for aurblup's default mirror instead of ftp
338a4483 override aurblup's db-path option in config.dev
10fcf939 use correct official pkg base url
f3f662c6 improve package meta archive
0155f4ea remove caching
0c57c53d fix AUR_CONFIG generation for mkpkglists test
daef9808 fix broken official package query
6e344ce9 default keys to result[1]
8788f990 restore isort order
0da11f06 check for prometheus info.response
5f5fa44d fix licenses check
20f5519b hide keywords when there are none or they can't be edited
2dc6cfec reorganize licenses display
2016b80e hide conflicts when there are none
bd59adc8 use NumVotes for votes field in package details
12400147 initialize engine and session in util/adduser.py
9424341b fix cgit css config
7f6d9966 initialize engine and session in util/adduser.py
b0b05df1 pin markdown to 3.3.4
0abdf8d4 close connection used for initdb
fa26c807 modify db configuration for new tests
912b7e0c fix database user/password for git-entrypoint
abe8c063 improve type=info performance
dbe5cb4a only include comment-edit.js where needed
7739b217 fix comment edit image sources
7f981b9e utilize auto_{orphan,deletion}_age
0b5d0880 catch ProgrammingError instead of OperationalError in conftest
19191fa8 update nginx config in aurweb.spawn
604901fe fix nginx .gz match against cgit snapshots
e8f4c9cf remove aurweb logger definition
41e0eaae force bind ports to localhost only
34747359 expose git service's 2222 through 0.0.0.0
3b686c47 default detailed loglevel to DEBUG
1aab9604 use corrent u2f ssh key prefixes
e558e979 check ssh key prefixes against configured valid-keytypes
d658627e don't redirect to login on authed /login
47feb72f fix SessionID (and ResetKey) generation
7b0d664b reorg ./data mounts
199622c5 refresh records when fetching updated packages
0726a086 remove sqlite scripts
84beacd4 supply AUR_CONFIG_IMMUTABLE for docker-compose
3a65e33a prepare conf/config for setup
f4ef02fa fix Package's PackageBase backref cascade
4b0cb072 use synchronization locks for setup_database
bc1cf8b1 markdown.util.etree -> xml.etree.ElementTree
67a6b836 remove update and build steps from poetry
4426c639 remove test logger definition
436d7420 use CRED_TU_LIST_VOTES for "Trusted User" navigation item
44f23666 remove TODO comments and noop tests from test_notify
fd8d23a3 fix new Logout nav item css
9bfe2b07 render Logged-in as page on authenticated /login
001e8631 fix ordering of related records
a6ac5f0d fix ordering of related records
ecbab854 access AccountType ID directly
125b244f use account type vars instead of strings
a10f8663 reorganize credential checkin into dedicated file
429d8059 remove login and redirect parameters from auth_required
0b302162 remove unnecessary arguments to auth_required
a0e1a164 support UsersID and User columns in the Session model
42701514 Use HTTPStatus instead of raw number
e1bf6dd5 restore stripped whitespace in archdev-navbar
81f8c232 log out IntegrityError from failed SID generation
75ad2fb5 cleanup auth_required decorator
b0b5e4c9 use secrets module to generate random strings
bfa916c7 fix PGP Key Fingerprint display for account/show.html
d0fc56d5 redirect when the request user can't edit target user
973dbf04 use creds to determine account links to display
2ea4559b use correct Status field in account/show.html
224a0de7 add logged in date field to account/show.html
cf978e23 use S argument to decide Suspended
27f8603d fix ordering of fields in partials/account_form.html
57df6db6 populate backref cascade properly
51b4709e include backref cascade definition
0447afa2 add missing backref cascade
a9a0adae fix package_link check
de7e3ab6 restore aurweb logger; null out root logger
31d82fb1 correct Closed link display
452f5d16 remove unneeded newline
1b203f0d show unlinked pkgname when PackageBase has been deleted
7831503c use logging.prod.conf for sharness
061e828f use logging.prod.conf for sharness
c3d962a0 add some comments
32660881 set notifications up in test config
e728de9a rework handling of requests

changes

Commit Message
f849e8b6 allow User.notified to accept a Package OR PackageBase
0d8216e8 decouple rendercomment logic from main
8bc1fab7 automate request login requirement
dc11a88e depend on auth_required redirect for pkgbase actions
a756691d user_developer_or_trusted_user always True
2e6f8cb9 @auth_required login kwarg defaulted to True
7b7e571e run test_initdb.py ahead of time in docker
0c372166 add various exclusions
51320ab2 unify all model relationship behavior
56eefabc sanitize cascade backref strings
bfdc85d7 use simplified models package
28c4e969 simplify model imports across code-base
7c4fb539 rework /rpc (get)
66629750 handle 'version' and 'type' arguments in constructor
4ae3fbd5 depend on provided poetry.lock for dep resolution
81417ea8 merge production git repo bind mount
8dcdc7ff decouple account comment templates
446a0823 refactor database ORM model definitions
3517862e use [email protected] as fastapi source
b8d7619d add mkpkglists options to config.dev
abbecf51 remove header comments
e8e9edbb simplify package details database queries
07aac768 remove sqlite support
fa43f6bc add parallel tests and improve aurweb.db
a0251183 get python-poetry from arch instead of poetry
fb92fb50 use sys.getrecursionlimit() + 1000 as default
ccf50cbd rework test_rpc's TestClient usage into a fixture
94972841 decouple error logic from process_account_form
303585cd decouple update logic from account edit
f897411d let conftest bypass create database errors
d4d9f50b use ./data instead of ./cache
e891d7c8 allow run-pytests to collect coverage
39fd3b89 set -v for sh tests
47d83244 add 'fast-single-thread' tag to the test stage
b98159d5 use step-ca for CA + cert generation
5b350bc3 use aurweb-config to update AUR_CONFIG
343a306b setup AUR_CONFIG in Dockerfile
dbeebd3b setup live database in mariadb-init-entrypoint.sh
3efb9a57 converted to use aurweb.db ORM
29989b7f converted to use aurweb.db ORM
29c2d0de converted to use aurweb.db ORM
8d5683d3 converted to use aurweb.db ORM
d097799b converted to use aurweb.db ORM
b72bd38f converted to use aurweb.db ORM
d8e3ca1a converted to use aurweb.db ORM
2d0e09cd converted to use aurweb.db ORM
69eb17cb remove the GET /logout route; replaced with POST
abfd41f3 centralize HTTPException
aa717a4e no longer care about ResetKey collisions
8501bba0 rework session timing

docker

Commit Message
2a3df086 add [c]git, nginx, fastapi, php-fpm, ca
e624e25c Add colored output to tests
565b928a mount codebase volumes
495dd2d8 add missing git link to pytest-sqlite
df161ef3 add .env configurable FASTAPI_BACKEND
61c47340 add ./templates volume mount
d95e4ec4 create missing 'aurweb' DB if needed
9ee7be4a remove web/locale from volume mounts
07c4be0a add .dockerignore
0a3aa40f Fix git sshd
acc100eb Fix installation, remove pip, simplify sshd
3c6b2203 bugfix: /usr/local/bin instead of /aurweb/app/bin
af96be7d move nginx config to its own file
3bacfe6c increase nginx and php-fpm logging
a120af5a remove asset forward to index.php
6c7bb04b Improve mariadb init
f4406ccf Centralize repo dependencies
3f60f504 add scripts/setup-sqlite.sh
427a30ef Remove deprecated links
e0ee881b fix mariadb-entrypoint user host
a6ca345a Fix git clone url in fastapi/php-fpm
bace345d support both '%' and 'localhost' in mariadb
ae0f69a5 remove intervals and timeouts
35851d55 add service 'memcached'
a0be0185 Reorder dependency installation for cache purposes
3f034ac1 Fix incorrect ENV PATH specification
fa07f940 Fix FastAPI db initialization
e93b0a9b expose fastapi (18000) and php-fpm (19000)

documentation

Commit Message
4e4f5855 fix AUR_CONFIG in TESTING
e62d4727 add missing gendummydata.py dependencies in TESTING
db75a552 simplify database setup instructions in TESTING
bc7bf986 bind ./aurweb in cron service by default

fastapi

Commit Message
3a74f76f use internal typeahead and remove jquery
91e769f6 add redis integration

features

Commit Message
b59601a8 add paginate==0.5.6
6298b122 add templates/partials/widgets/pager.html
5cf70620 add /packages (get) search
7e589863 add util/adduser.py database tooling script
fbd91f34 add /pkgbase/{name}/voters (get)
ad9997c4 build aurweb:latest via docker-compose build
3b1809e2 allow custom certificates for fastapi/nginx
7961fa93 add templates.render_raw_template
fc28aad2 add pkgbase comments (new, edit)
40cd1b90 add /pkgbase/{name}/comments/{id}/delete (post)
bb45ae7a add /pkgbase/{name}/comments/{id}/undelete (post)
0895dd07 add /pkgbase/{name}/comments/{id}/pin (post)
2efd2549 add /pkgbase/{name}/comments/{id}/unpin (post)
4d191b51 add /pkgbase/{name}/comaintainers (get, post)
c164abe2 add Requests navigation item
99482f99 added /requests (get) route
1cf94209 allow reporters to cancel their own requests (1/2)
ad836939 add /pkgbase/{name}/request (get)
1c031638 add /pkgbase/{name}/request (post)
f6141ff1 add /requests/{id}/close (get, post)
b5f8e69b use SQLAlchemy's scoped_session
33b18907 add CRED_PKGBASE_MERGE
75c49e4f support {named} fmt in auth_required redirect
8eadb425 add /pkgbase/{name}/[un]flag (post)
0dfff2bc add /pkgbase/{name}/[un]notify (post)
0a02df36 add /pkgbase/{name}/[un]vote (post)
16d516c2 add /pkgbase/{name}/disown (get, post)
c8d01cc5 add aurweb.util.apply_all(iterable, fn)
ed68fa2b add aurweb.db.delete_all(iterable)
0ddc969b add package_delete helper
d38abd78 add /pkgbase/{name}/delete (get, post)
305d0779 add /pkgbase/{name}/adopt (post)
27fbda5e add get_(errors
6d59a979 include all models in aurweb.models package
927f5e85 add gunicorn support & production default
c588a4e8 add /packages (post)
37232f71 add git-cliff configuration
4e3cc1df only use mariadb socket for connections
37f0c352 add /pkgbase/{name}/flag-comment (get)
1cb1ce0d allow production docker setup to use dedicated mariadb
4f505ca6 support for host-mounted mariadb socket
990f4d18 add 'suggest-pkgbase' type
2b984014 add /pkgbase/{name}/merge (get)
65240c83 enforce ratelimiting
0b1c3ea5 expose cgit-{php,fastapi} on {13000,13001}
fb85cb60 add /packages (post) action: 'unflag'
e9fc27a3 make git data directory host-configurable
b277d94e add /packages (post) action: 'notify'
d5520c9e add /packages (post) action: 'unnotify'
f1ad1b9a add /packages (post) action: 'adopt'
13b344d2 add /packages (post) action: 'disown'
60bffa4f add /packages (post) action: 'delete'
5fb75b96 add /pkgbase/{name}/merge (post)
0d734eb0 add configurable commit hash display
651c1cd8 Add logic for deploying aur-dev with docker-compose
1c0543c0 fixup and utilize AURWEB_(SSHD
b49b6293 set FASTAPI_WORKERS=5 on aur-dev
8239dcdd configure fastapi's commit_hash based on $COMMIT_HASH
adb6252f add /account/{username}/comments
691b7b90 add comment actions to /account/{username}/comments
9464de10 add /pkgbase/{name}/comments/{id}/edit (get)
6d376fed add ETag header with md5 hash content
9d6dbaf0 add suggest type handler
af2f3694 add search type handler
05e6cfca add msearch type handler
12b4269b support jsonp callbacks
61f3cb93 support the If-None-Match request header
cc45290e add prometheus-fastapi-instrumentator
f21765bf add prometheus /metrics
1be4ac2f use PROMETHEUS_MULTIPROC_DIR
4b8963b7 add cron service (aurblup + mkpkglists)
f6061400 Add packages dump file with more metadata
d62af4ce added metadata archives
0403b89f add packagesmeta[ext]file option to conf/config.dev
068b067e log cron executions
107367f9 use mkpkglists --extended flag
4f7aeafa host gzip archive downloads
4b2be7ff add poetry caching
363afff3 add /pkgbase/{name}/keywords (post)
50a9690c add Provides field in package details
a33e9bd5 add Replaces field to package details
7aa95915 add id="conflicts" to package details conflicts
686c0322 add id="licenses" to package details licenses
cea9104e add pytest-xdist
40b21203 add filelock
82ca4ad9 check php configuration in aurweb.spawn
47d0df76 support gunicorn in aurweb.spawn
233d25b1 add test_spawn, an aurweb.spawn test
ba3ef742 allow user-customizable ssh host keys
a1e547c0 allow configurable SSH_CMDLINE in git service
759f18ea add aurweb-config console script
0e938209 add unset action and simplify
f3efc18b force test db configuration
9fb1fbe3 add email testing utilities
155aa47a add posix_ipc
806a19b9 render a 500 html response when unique SID generation fails
40922973 set default logging.conf to DEBUG
51144bfa add InvariantError

makefile

Commit Message
e800cefe run pytest units

packagebase

Commit Message
ec38d2f5 automatically cast Popularity to float
d57dfd4d test Popularity conversion

packagecomment

Commit Message
c05fafea default RenderedComment to str()

packagedependency

Commit Message
b4e46450 fix primary key relationships

packagerelation

Commit Message
13b4dbf5 fix primary key relationships

packagerequest

Commit Message
eb8ea53a add status_display()

rpc

Commit Message
b52059d4 add deprecation warning for v1-v4 usage

rss

Commit Message
568e0d2f Add atom self link
78dbbd3d Set proper content type header
1d0c6ffe Make sure image title matches channel title
eb11943f Always provide a GUID
d5d33300 Decrease cache time and increase item count
18ec8e3c Add ability to specify isPermaLink="false" for GUID
e7db894e Add ability to specify isPermaLink="false" for GUID

refactor

Commit Message
0fd31b8d New mariadb_init service

requesttype

Commit Message
5bd3a7bb add name_display() and record constants

sso

Commit Message
4bf82283 Explain the rationale behind prompt=login
d12ea08f Add an SSO option in the login page
0e08b151 Port IP ban checking
e3231569 Port account suspension

tuvoteinfo

Commit Message
8c345a04 generalize Quorum

user

Commit Message
cec07c76 use aurweb.config options.salt_rounds
af51b5c4 add several utility methods

add

Commit Message
a3cb8196 added aur_request_ml setting to config.dev
d3be3074 comment pytest.fixture

alembic

Commit Message
82f6d2ce fix ef39fcd6e1cd downgrade
66189c44 restore logging, fix pytest conflicts

aurweb

Commit Message
c1e29e90 Globalize a Translator instance, add more utility

auth

Commit Message
741cbfaa add several AnonymousUser method stubs

bugfix

Commit Message
822905be relax next verification
4f09e939 gendummydata.py was producing invalid usernames
7ae95ac9 removed extra space in " My Account" nav link
a26e7033 use empty string if backup_email is None
28300ee8 populate context on invalid password (account edit)
dbbafc15 PackageKeyword should have two PKs
4442ba67 return null if config key doesn't exist
04d1c81d fix extra dependency annotations

ci

Commit Message
db02227c add gitlab ci
23f6dd16 add cache to gitlab ci
48b58b1c remove Travis CI

cleanup

Commit Message
6ddf888b remove int(...) casts on HTTPStatus usage
cee7512e simplify PackageDependency.is_package()
f8ba2c53 simplify aurweb.routers.accounts.accounts_post

config

Commit Message
d8556b0d add options.salt_rounds

fastapi

Commit Message
32abdbaf Jinja contextfilter renamed to pass_context

gendummydata

Commit Message
201a04ff employ a salted hash for users
eb563050 lower record counts

housekeep

Commit Message
4103ab49 rework aurweb.db session API
a348cdaa cleanup unneeded jinja set statement
008a8824 simplify package_base_comaintainers_post
191198ca simplify aurweb.spawn.stop()
c7feecd4 remove configuration regexes in the nginx service
2fee6205 rewrite test_rpc with fixtures
604df50b rewrite test_package_comment with fixtures
012dd24f rewrite test_tu_vote with fixtures
adafa6eb rewrite test_package_request with fixtures
735c5f57 rewrite test_package_blacklist
d6cb3b9f rewrite test_auth with fixtures
91f65911 rewrite test_accepted_term with fixtures
b20ec992 rewrite test_ssh_pub_key with fixtures
a082de52 rewrite test_package_keyword with fixtures
655b98d1 rewrite test_package_license with fixtures
ff3931e4 rewrite test_package_notification with fixtures
14d80d75 rewrite test_package_comaintainer with fixtures
31a093ba rewrite test_package_relation with fixtures
ca255950 rewrite test_sesion with fixtures
ae728179 rewrite test_routes with fixtures
93bc91cc rewrite test_tu_voteinfo with fixtures
171b347d rewrite test_package_base with fixtures
df530d8a rewrite test_package_source with fixtures
150c9447 rewrite test_package_group with fixtures
05bd6e90 rewrite test_package_vote with fixtures
140f9b1f rewrite test_package_dependency with fixtures
5b14ad40 rewrite test_user with fixtures
eb396813 rewrite test_package with fixtures
de0f9190 rewrite test_ban with fixtures
7ef3e343 rewrite test_accounts_routes with fixtures
fccd8b63 rewrite test_auth_routes with fixtures

isort

Commit Message
8f47b8d7 add initial config

rendercomment

Commit Message
4959f62c move Repository init to init

sharness

Commit Message
53391bec do not use spaces in trash directory

spawn

Commit Message
83d228d9 expand AUR_CONFIG to the full path

templates

Commit Message
2d3d03e0 Translate pkgbase.html and partials

Notes

See a general project status overview at https://gitlab.archlinux.org/archlinux/aurweb/-/wikis/Home.

To contribute with testing of the modern aurweb FastAPI port development, visit https://gitlab.archlinux.org/archlinux/aurweb/-/wikis/Testing-Guide.

To file a bug, create an issue using the Bug template by following the link: https://gitlab.archlinux.org/archlinux/aurweb/-/issues/new?issuable_template=Bug.

To provide feedback, create an issue using the Feedback template by following the link: https://gitlab.archlinux.org/archlinux/aurweb/-/issues/new?issuable_template=Feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment