diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d1b0da60..2bb840f5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,19 +1,28 @@ # Contributing -Patches should be sent to the [aur-dev@lists.archlinux.org][1] mailing list. +Patches should be sent to the [aur-dev@lists.archlinux.org][1] mailing list +or included in a merge request on the [aurweb repository][2]. Before sending patches, you are recommended to run `flake8` and `isort`. You can add a git hook to do this by installing `python-pre-commit` and running `pre-commit install`. -[1] https://lists.archlinux.org/listinfo/aur-dev +[1]: https://lists.archlinux.org/listinfo/aur-dev +[2]: https://gitlab.archlinunx.org/archlinux/aurweb ### Coding Guidelines -1. All source modified or added within a patchset **must** maintain equivalent - or increased coverage by providing tests that use the functionality. +DISCLAIMER: We realise the code doesn't necessarily follow all the rules. +This is an attempt to establish a standard coding style for future +development. -2. Please keep your source within an 80 column width. +1. All source modified or added within a patchset **must** maintain equivalent + or increased coverage by providing tests that use the functionality +2. Please keep your source within an 80 column width +3. Use four space indentation +4. Use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) +5. DRY: Don't Repeat Yourself +6. All code should be tested for good _and_ bad cases Test patches that increase coverage in the codebase are always welcome. diff --git a/aurweb/config.py b/aurweb/config.py index c2b8be79..ad8ea100 100644 --- a/aurweb/config.py +++ b/aurweb/config.py @@ -6,7 +6,7 @@ from typing import Any # Publicly visible version of aurweb. This is used to display # aurweb versioning in the footer and must be maintained. # Todo: Make this dynamic/automated. -AURWEB_VERSION = "v6.0.19" +AURWEB_VERSION = "v6.0.20" _parser = None diff --git a/aurweb/routers/trusted_user.py b/aurweb/routers/trusted_user.py index 2d6ea92c..53bcecb7 100644 --- a/aurweb/routers/trusted_user.py +++ b/aurweb/routers/trusted_user.py @@ -220,7 +220,6 @@ async def trusted_user_proposal_post(request: Request, proposal: int, with db.begin(): vote = db.create(models.TUVote, User=request.user, VoteInfo=voteinfo) - voteinfo.ActiveTUs += 1 context["error"] = "You've already voted for this proposal." return render_proposal(request, context, proposal, voteinfo, voters, vote) diff --git a/doc/CodingGuidelines b/doc/CodingGuidelines deleted file mode 100644 index 46537bb2..00000000 --- a/doc/CodingGuidelines +++ /dev/null @@ -1,54 +0,0 @@ -Coding Guidelines -================= - -DISCLAIMER: We realise the code doesn't necessarily follow all the rules. -This is an attempt to establish a standard coding style for future -development. - -Coding style ------------- - -Column width: 79 columns or less within reason. - -Indentation: tabs (standard eight column width) -Please don't add any mode lines. Adjust your editor to display tabs to your -preferred width. Generally code should work with the standard eight column -tabs. - -No short open tags. '' -Try embedding as little XHTML in the PHP as possible. -Consider creating templates for XHTML. - -All markup should conform to XHTML 1.0 Strict requirements. -You can use http://validator.w3.org to check the markup. - -Prevent PHP Notices by using isset() or empty() in conditionals that -reference $_GET, $_POST, or $_REQUEST variables. - -MySQL queries should generally go into functions. - -Submitting patches ------------------- - -!!! PLEASE TEST YOUR PATCHES BEFORE SUBMITTING !!! -Submit uncompressed git-formatted patches to aur-dev@archlinux.org. - -You will need to register on the mailing list before submitting: -https://mailman.archlinux.org/mailman/listinfo/aur-dev - -Base your patches on the master branch as forward development is done there. -When writing patches please keep unnecessary changes to a minimum. - -Try to keep your commits small and focused. -Smaller patches are much easier to review and have a better chance of being -pushed more quickly into the main repo. Smaller commits also makes reviewing -the commit history and tracking down specific changes much easier. - -Try to make your commit messages brief but descriptive. - -Glossary --------- -git-formatted patch: - A patch that is produced via `git format-patch` and is sent via - `git send-email` or as an inline attachment of an email. diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 00000000..89dbb739 --- /dev/null +++ b/docker/README.md @@ -0,0 +1,65 @@ +# Aurweb and Docker + +The `INSTALL` document details a manual Aurweb setup, but Docker images are also +provided here to avoid the complications of database configuration (and so +forth). + +### Setup + +Naturally, both `docker` and `docker-compose` must be installed, and your Docker +service must be started: + +```sh +systemctl start docker.service +``` + +The main image - `aurweb` - must be built manually: + +```sh +docker compose build +``` + +### Starting and Stopping the Services + +With the above steps complete, you can bring up an initial cluster: + +```sh +docker compose up +``` + +Subsequent runs will be done with `start` instead of `up`. The cluster can be +stopped with `docker compose stop`. + +### Testing + +With a running cluster, execute the following in a new terminal: + +```sh +docker compose run test +``` + +### Generating Dummy Data + +Before you can make meaningful queries to the cluster, it needs some data. +Luckily such data can be generated. First, `docker ps` to discover the ID of the +container running the FastAPI. Then: + +```sh +docker exec -it /bin/bash +./scheme/gendummydata.py dummy.sql +mysql aurweb < dummy.sql +``` + +The generation script may prompt you to install other Arch packages before it +can proceed. + +### Querying the RPC + +The Fast (Python) API runs on Port 8444, while the legacy PHP version runs +on 8443. You can query one like so: + +```sh +curl -k "https://localhost:8444/rpc/?v=5&type=search&arg=python" +``` + +`-k` bypasses local certificate issues that `curl` will otherwise complain about. diff --git a/pyproject.toml b/pyproject.toml index b5da9913..88f182be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ # [tool.poetry] name = "aurweb" -version = "v6.0.19" +version = "v6.0.20" license = "GPL-2.0-only" description = "Source code for the Arch User Repository's website" homepage = "https://aur.archlinux.org" diff --git a/test/test_trusted_user_routes.py b/test/test_trusted_user_routes.py index e2bf6497..a5c4c5e8 100644 --- a/test/test_trusted_user_routes.py +++ b/test/test_trusted_user_routes.py @@ -650,7 +650,6 @@ def test_tu_proposal_vote(client, proposal): # Store the current related values. yes = voteinfo.Yes - active_tus = voteinfo.ActiveTUs cookies = {"AURSID": tu_user.login(Request(), "testPassword")} with client as request: @@ -661,7 +660,6 @@ def test_tu_proposal_vote(client, proposal): # Check that the proposal record got updated. assert voteinfo.Yes == yes + 1 - assert voteinfo.ActiveTUs == active_tus + 1 # Check that the new TUVote exists. vote = db.query(TUVote, TUVote.VoteInfo == voteinfo,