1. 08 Oct, 2021 7 commits
  2. 07 Oct, 2021 10 commits
  3. 05 Oct, 2021 4 commits
  4. 04 Oct, 2021 3 commits
  5. 03 Oct, 2021 9 commits
    • Kevin Morris's avatar
      fix(FastAPI): Improve sqlite testing speed · 7bfc2bf9
      Kevin Morris authored
      This commit adds a new Arch dependency: `libeatmydata`, which
      provides the `eatmydata` executable that stubs out fsync() operations.
      We use `eatmydata` to run our sharness and pytests in Docker now.
      
      With `autocommit=True`, required by SQLAlchemy to keep the
      session up to date with external DB modifications, many fsync
      calls are used in the SQLite backend; especially because we're wiping
      and creating records in every DB-bound test.
      
      **Before:**
      
      - mysql: 1m42s (elapsed during pytest run)
      - sqlite: 3m06s (elapsed during pytest run)
      
      **After:**
      
      - mysql: 1m40s (elapsed during pytest run)
      - sqlite: 1m50s (elapsed during pytest run)
      
      Shout out to @klausenbusk, who suggested this as a possible fix,
      and it was. Thanks, Kristian!
      
      Closes #120
      
      
      
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      7bfc2bf9
    • Kevin Morris's avatar
      feat(FastAPI): use SQLAlchemy's scoped_session · b5f8e69b
      Kevin Morris authored
      Closes #113
      
      
      
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      b5f8e69b
    • Kevin Morris's avatar
      feat(FastAPI): add /requests/{id}/close (get, post) · f6141ff1
      Kevin Morris authored
      Changes from PHP:
      
      - If a user submits a POST request with an invalid reason,
        they are returned back to the closure form with a BAD_REQUEST status.
      - Now, users which created a PackageRequest have the ability to close
        their own.
      - Form action has been changed to `/requests/{id}/close`.
      
      Closes #20
      
      
      
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      f6141ff1
    • Kevin Morris's avatar
      feat(FastAPI): add /pkgbase/{name}/request (post) · 1c031638
      Kevin Morris authored
      
      
      This change implements the FastAPI version of the
      /pkgbase/{name}/request form's action.
      
      Changes from PHP:
      
      - Additional errors are now displayed for the **merge_into** field,
        which are only displayed when the Merge type is selected.
          - If the **merge_into** field is empty, a new error is displayed:
            'The "Merge into" field must not be empty.'
          - If the **merge_into** field is given the name of a package base
            which does not exist, a new error is displayed:
            "The package base you want to merge into does not exist."
          - If the **merge_into** field is given the name of the package
            base that a request is being created for, a new error is
            displayed: "You cannot merge a package base into itself."
      - When an error is encountered, users are now brought back to
        the request form which they submitted and an error is displayed
        at the top of the page.
      - If an invalid type is provided, users are returned to a BAD_REQUEST
        status rendering of the request form.
      
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      1c031638
    • Kevin Morris's avatar
      feat(FastAPI): add /pkgbase/{name}/request (get) · ad836939
      Kevin Morris authored
      
      
      This change brings in the package base request form
      for new submissions.
      
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      ad836939
    • Kevin Morris's avatar
      feat(FastAPI): allow reporters to cancel their own requests (1/2) · 1cf94209
      Kevin Morris authored
      This change required a slight modification of how we handle
      the Requests page. It is now available to all users.
      
      This commit provides 1/2 of the implementation which actually
      satisfies this feature. 2/2 will contain the actual implementation
      of closures of requests, which will also allow users who created
      the request to decide to close it.
      
      Issue: #20
      
      
      
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      1cf94209
    • Kevin Morris's avatar
      feat(FastAPI): added /requests (get) route · 99482f99
      Kevin Morris authored
      Introduces `aurweb.defaults` and `aurweb.filters`.
      
      `aurweb.filters` is a location developers can put their additional
      Jinja2 filters and/or functions. We should slowly move all of our
      filters over here, where it makes sense.
      
      `aurweb.defaults` is a new module which hosts some default constants
      and utility functions, starting with offsets (O) and per page values
      (PP).
      
      As far as the new GET /requests is concerned, we match up here to
      PHP's implementation, with some minor improvements:
      
      Improvements:
      
      * PP on this page is now configurable: 50 (default), 100, or 250.
          * Example: `https://localhost:8444/requests?PP=250`
      
      Modifications:
      
      * The pagination is a bit different, but serves the exact same purpose.
      * "Last" no longer goes to an empty page.
          * Closes: #14
      
      
      
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      99482f99
    • Kevin Morris's avatar
      feat(FastAPI): add Requests navigation item · c164abe2
      Kevin Morris authored
      
      
      Along with this, created a new test suite at test/test_html.py,
      which has the responsibility of testing various HTML things
      that are not suitable for another test suite.
      
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      c164abe2
    • Kevin Morris's avatar
      feat(FastAPI): add /pkgbase/{name}/comaintainers (get, post) · 4d191b51
      Kevin Morris authored
      Changes from PHP:
      
      - Form action now points to `/pkgbase/{name}/comaintainers`.
      - When an error occurs, users are sent back to
        `/pkgbase/{name}/comaintainers` with an error at the top of the page.
        (PHP used to send people to /pkgbase/, which ended up at a blank
        search page).
      
      Closes: #51
      
      
      
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      4d191b51
  6. 02 Oct, 2021 7 commits