Commit graph

624 commits

Author SHA1 Message Date
Lars Eggert 220be21998
chore: Use codespell to fix typos in code. (#4797)
* chore: Use codespell to fix typos in code.

Second part of replacement of #4651

@rjsparks, I probably need to revert some things here, and I also
still need to add that new migration - how do I do that?

* Revert migrations

* Migrate "Whitelisted" to "Allowlisted"

* TEST_COVERAGE_MASTER_FILE -> TEST_COVERAGE_MAIN_FILE

* Fix permissions

* Add suggestions from @jennifer-richards
2022-12-07 15:10:35 -06:00
Lars Eggert d59c64943d
fix: Fix spurious author extraction errors (#4799)
* Handle single-word author names

* Some i18n names, e.g., "शिला के.सी." have a dot at the end that is
also part of the ASCII, e.g., "Shilaa Kesii." That trailing dot breaks
extract_authors(). Avoid this issue by stripping the dot from the
ASCII.

* Honorifics need to be part of the extracted ASCII name (e.g., "Lady Garcia")

* feat: stop supporting pre-tzaware migration database dumps. (#4782)

* feat: stop supporting pre-tzaware migration database dumps.

* chore: remove unnecessary env variable

* chore: Use `codespell` to fix typos in comments. (#4794)

First part of replacement of #4651

* feat: Only show IPR search form when not showing search results  (#4793)

* feat: Only show IPR search form when not showing search results

Put it into a collapsible that is only expanded by default when not
showing search results.

Fixes #4569

* Don't use example target name

* fix: Don't show reorder UI fixtures unless user can reorder (#4785)

Fixes #4773

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>

* chore: Update deps and fix resulting HTML validation issues (#4790)

* ci: add missing build matrix config for test-playwright-legacy step

* Single-letter last names exist (e.g., "Carolina de la O")

* Align regex with others

* Fix extraction of very long author names

* Need to be more general

* Add comment

* Also handle i18n names with trailing semicolons

* Name suffixes need to be part of the extracted author names

* Handle i18n names with embedded commas

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
Co-authored-by: Nicolas Giard <github@ngpixel.com>
2022-12-02 15:41:21 -06:00
Lars Eggert 6eabd4a3a1
chore: Use codespell to fix typos in comments. (#4794)
First part of replacement of #4651
2022-11-28 10:36:36 -06:00
Jennifer Richards 8101b4f057
chore: remove unused imports 2022-10-18 12:50:07 -03:00
Jennifer Richards 2d875d534d
chore: migrate fields whose defaults changed to date_today 2022-10-18 12:46:14 -03:00
Jennifer Richards 3220bf3c40
chore: replace last few datetime.date.today() calls with date_today() 2022-10-18 12:45:47 -03:00
Jennifer Richards da70acfdff
Merge branch 'feat/tzaware' into jennifer/yet-more-tz-fixes
# Conflicts:
#	ietf/ietfauth/utils.py
#	ietf/meeting/tests_views.py
#	ietf/stats/tests.py
2022-10-17 16:39:45 -03:00
Jennifer Richards 7b1b7f5273
Merge branch 'feat/tzaware' into dev/tzaware-main-merge 2022-10-11 14:57:34 -03:00
Jennifer Richards 6cc2fb94a3
fix: update DraftYangChecker for xym 0.6 changes (#4546)
* fix: update DraftYangChecker for xym 0.6 changes

* chore: update xym requirements to >=0.6
2022-10-06 18:03:18 -05:00
Jennifer Richards 31d55f1d37
fix: remove unused imports 2022-09-28 17:45:11 -03:00
Jennifer Richards a653582cf7
fix: timezone fixes from last few comparisons with tzaware-obe 2022-09-28 13:21:50 -03:00
Jennifer Richards cbb639cd58
Merge branch 'feat/tzaware' into dev/jennifer/main-merge 2022-09-20 10:19:31 -03:00
Robert Sparks 7bc6f2b6b2
fix: return same bibxml for versioned and versionless references (#4470)
* fix: return same bibxml for versioned and versionless references

Fixes #4384.

Refactors bibxml production to remove repeated logic.

Abandons the half-implemented idea that returning information
from the Submission object might be better than the Document or
DocHistory objects.

* fix: test for None with `is not` and simplify choice from multiple qs objects

Addresses review comments.
2022-09-19 10:38:57 -05:00
Jennifer Richards ebebdbed3e
refactor: replace datetime.now and datetime.today with timezone.now (#4211)
* refactor: replace datetime.now with timezone.now

* refactor: migrate model fields to use timezone.now as default

* refactor: replace datetime.today with timezone.now

datetime.datetime.today() is equivalent to datetime.datetime.now(); both
return a naive datetime with the current local time.

* refactor: rephrase datetime.now(tz) as timezone.now().astimezone(tz)

This is effectively the same, but is less likely to encourage accidental
use of naive datetimes.

* refactor: revert datetime.today() change to old migrations

* refactor: change a missed datetime.now to timezone.now

* chore: renumber timezone_now migration

* chore: renumber migrations
2022-08-25 13:45:16 -03:00
Jennifer Richards 727feabfff
chore: create stale submission cleanup task and other deployment tweaks (#4358)
* chore: disable beat container for dev

* chore: use init option with celery container

* chore: create cancel_stale_submissions task via migration

* chore: revert accidental change included in last commit

* chore: terminate celery docker-init.sh on failed command
2022-08-24 12:29:48 -05:00
Jennifer Richards 3705bedfcd
feat: Celery support and asynchronous draft submission API (#4037)
* ci: add Dockerfile and action to build celery worker image

* ci: build celery worker on push to jennifer/celery branch

* ci: also build celery worker for main branch

* ci: Add comment to celery Dockerfile

* chore: first stab at a celery/rabbitmq docker-compose

* feat: add celery configuration and test task / endpoint

* chore: run mq/celery containers for dev work

* chore: point to ghcr.io image for celery worker

* refactor: move XML parsing duties into XMLDraft

Move some PlaintextDraft methods into the Draft base class and
implement for the XMLDraft class. Use xml2rfc code from ietf.submit
as a model for the parsing.

This leaves some mismatch between the PlaintextDraft and the Draft
class spec for the get_author_list() method to be resolved.

* feat: add api_upload endpoint and beginnings of async processing

This adds an api_upload() that behaves analogously to the api_submit()
endpoint. Celery tasks to handle asynchronous processing are added but
are not yet functional enough to be useful.

* perf: index Submission table on submission_date

This substantially speeds up submission rate threshold checks.

* feat: remove existing files when accepting a new submission

After checking that a submission is not in progress, remove any files
in staging that have the same name/rev with any extension. This should
guard against stale files confusing the submission process if the
usual cleanup fails or is skipped for some reason.

* refactor: make clear that deduce_group() uses only the draft name

* refactor: extract only draft name/revision in clean() method

Minimizing the amount of validation done when accepting a file. The
data extraction will be moved to asynchronous processing.

* refactor: minimize checks and data extraction in api_upload() view

* ci: fix dockerfiles to match sandbox testing

* ci: tweak celery container docker-compose settings

* refactor: clean up Draft parsing API and usage

  * remove get_draftname() from Draft api; set filename during init
  * further XMLDraft work
    - remember xml_version after parsing
    - extract filename/revision during init
    - comment out long broken get_abstract() method
  * adjust form clean() method to use changed API

* feat: flesh out async submission processing

First basically working pass!

* feat: add state name for submission being validated asynchronously

* feat: cancel submissions that async processing can't handle

* refactor: simplify/consolidate async tasks and improve error handling

* feat: add api_submission_status endpoint

* refactor: return JSON from submission api endpoints

* refactor: reuse cancel_submission method

* refactor: clean up error reporting a bit

* feat: guard against cancellation of a submission while validating

Not bulletproof but should prevent

* feat: indicate that a submission is still being validated

* fix: do not delete submission files after creating them

* chore: remove debug statement

* test: add tests of the api_upload and api_submission_status endpoints

* test: add tests and stubs for async side of submission handling

* fix: gracefully handle (ignore) invalid IDs in async submit task

* test: test process_uploaded_submission method

* fix: fix failures of new tests

* refactor: fix type checker complaints

* test: test submission_status view of submission in "validating" state

* fix: fix up migrations

* fix: use the streamlined SubmissionBaseUploadForm for api_upload

* feat: show submission history event timestamp as mouse-over text

* fix: remove 'manual' as next state for 'validating' submission state

* refactor: share SubmissionBaseUploadForm code with Deprecated version

* fix: validate text submission title, update a couple comments

* chore: disable requirements updating when celery dev container starts

* feat: log traceback on unexpected error during submission processing

* feat: allow secretariat to cancel "validating" submission

* feat: indicate time since submission on the status page

* perf: check submission rate thresholds earlier when possible

No sense parsing details of a draft that is going to be dropped regardless
of those details!

* fix: create Submission before saving to reduce race condition window

* fix: call deduce_group() with filename

* refactor: remove code lint

* refactor: change the api_upload URL to api/submission

* docs: update submission API documentation

* test: add tests of api_submission's text draft consistency checks

* refactor: rename api_upload to api_submission to agree with new URL

* test: test API documentation and submission thresholds

* fix: fix a couple api_submission view renames missed in templates

* chore: use base image + add arm64 support

* ci: try to fix workflow_dispatch for celery worker

* ci: another attempt to fix workflow_dispatch

* ci: build celery image for submit-async branch

* ci: fix typo

* ci: publish celery worker to ghcr.io/painless-security

* ci: install python requirements in celery image

* ci: fix up requirements install on celery image

* chore: remove XML_LIBRARY references that crept back in

* feat: accept 'replaces' field in api_submission

* docs: update api_submission documentation

* fix: remove unused import

* test: test "replaces" validation for submission API

* test: test that "replaces" is set by api_submission

* feat: trap TERM to gracefully stop celery container

* chore: tweak celery/mq settings

* docs: update installation instructions

* ci: adjust paths that trigger celery worker image  build

* ci: fix branches/repo names left over from dev

* ci: run manage.py check when initializing celery container

Driver here is applying the patches. Starting the celery workers
also invokes the check task, but this should cause a clearer failure
if something fails.

* docs: revise INSTALL instructions

* ci: pass filename to pip update in celery container

* docs: update INSTALL to include freezing pip versions

Will be used to coordinate package versions with the celery
container in production.

* docs: add explanation of frozen-requirements.txt

* ci: build image for sandbox deployment

* ci: add additional build trigger path

* docs: tweak INSTALL

* fix: change INSTALL process to stop datatracker before running migrations

* chore: use ietf.settings for manage.py check in celery container

* chore: set uid/gid for celery worker

* chore: create user/group in celery container if needed

* chore: tweak docker compose/init so celery container works in dev

* ci: build mq docker image

* fix: move rabbitmq.pid to writeable location

* fix: clear password when CELERY_PASSWORD is empty

Setting to an empty password is really not a good plan!

* chore: add shutdown debugging option to celery image

* chore: add django-celery-beat package

* chore: run "celery beat" in datatracker-celery image

* chore: fix docker image name

* feat: add task to cancel stale submissions

* test: test the cancel_stale_submissions task

* chore: make f-string with no interpolation a plain string

Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2022-08-22 13:29:31 -05:00
Robert Sparks 9c236ea2a2
chore: remove unneeded logging and code marked unreachable that has not been reached. (#4305)
* chore: remove unneeded logging and code marked unreachable that has not been reached.

* fix: remove noop save override
2022-08-04 11:25:31 -05:00
Robert Sparks 2934ae27ba
fix: dont serialize Submission.first_two_pages through /api/v1. (#4145) 2022-07-06 14:45:27 -05:00
Robert Sparks 10396d6f01
chore: remove more tools.ietf.org server only related things. (#4103)
* chore: remove more tools.ietf.org server only related things.

* chore: remove use of tools.ietf.org floorplans\n\nThe data will move into the FloorPlan models instead.
2022-06-22 14:11:46 -05:00
Jennifer Richards c0c8771370
Merge branch 'main' into main-merge
# Conflicts:
#	.devcontainer/docker-compose.extend.yml
#	.github/workflows/build-test-base.yml
#	.github/workflows/build.yml
#	README.md
#	docker/app.Dockerfile
#	docker/configs/settings_local.py
#	docker/docker-compose.extend.yml
#	docker/scripts/app-init.sh
#	ietf/release/tests.py
#	ietf/release/urls.py
#	ietf/templates/500.html
#	ietf/templates/api/index.html
#	ietf/templates/base.html
#	ietf/templates/base/menu.html
#	ietf/templates/group/group_about_status_edit.html
#	ietf/templates/meeting/agenda_filter.html
#	ietf/templates/release/about.html
#	ietf/utils/tests.py
#	package-lock.json
2022-03-25 11:15:05 -03:00
Robert Sparks 902e37d24d
fix: improve looking into submission request for remote ip. (#3720) 2022-03-22 13:04:50 -05:00
Robert Sparks 3d529bad20
fix: improve validation of submission version. Add submission name validation tests.
Co-authored-by: russhousley <housley@vigilsec.com>
2022-03-22 14:51:25 -03:00
Robert Sparks 841f289b5d
fix: repair incorrect merge (#3728) 2022-03-22 13:51:02 -03:00
Lars Eggert eb5423d084
ci: Also check generated HTML with the "vnu" validator (#3682)
* ci: Also check generated HTML with the "vnu" validator

Because HTML Tidy apparently misses a bunch of errors.

* thead -> tbody

* More fixes

* More fixes

* Start checker in test runner
2022-03-21 12:50:23 -05:00
Robert Sparks 9f4634f531
fix: use approver's identity instead of System (#3701) (#3705)
Fixes issue #3545
Conditionally tests if the approver is AnonymousUser, in which case
System is still used

Co-authored-by: Peter Yee <github@houseofyee.com>
2022-03-20 09:00:09 -05:00
Peter Yee 4dc0247976
fix: use approver's identity instead of System (#3701)
Fixes issue #3545
Conditionally tests if the approver is AnonymousUser, in which case
System is still used
2022-03-20 07:54:15 -05:00
Russ Housley 71b1f13a79
fix: improfe draft name syntax checks (#3703)
* fix: Include blocked charters in AD dashboard that are ub external review

* fix: Improve draft name syntax checks. Fixes #3677
2022-03-20 06:59:29 -05:00
Robert Sparks 9df659b06e
fix: better draft name validation. Fixes #3539. (#3671) 2022-03-18 18:01:25 -05:00
Jennifer Richards 686a9150b3 Merge remote-tracking branch 'origin/main' into personal/jennifer/7.45.1.dev0.bootstrap-merge
# Conflicts:
#	ietf/templates/meeting/session_buttons_include.html
2022-03-04 15:14:52 -04:00
Robert Sparks 95cb3f041e Merged in [19965] from rjsparks@nostrum.com:
Remove unused imports.
 - Legacy-Id: 19966
Note: SVN reference [19965] has been migrated to Git commit 70cd714fac087b5b5257708541d8ae4de8c5a6a6
2022-02-22 23:12:21 +00:00
Robert Sparks ec71083d1d Only keep the first and most recent yang validator SubmissionCheck for any given submission. Fixes #3542. Commit ready for merge.
- Legacy-Id: 19952
2022-02-18 22:46:40 +00:00
Jennifer Richards 6c260a5b7e Merge 7.45.1.dev0 into Bootstrap 5 update branch. Made a first pass at reconciling differences.
- Legacy-Id: 19945
2022-02-17 20:09:49 +00:00
Lars Eggert ed30521e14 Many more HTML fixes.
- Legacy-Id: 19908
2022-02-03 07:49:34 +00:00
Lars Eggert cc723ce449 More fixes.
- Legacy-Id: 19899
2022-01-31 19:17:50 +00:00
Lars Eggert 335a39d4fc More fixes.
- Legacy-Id: 19884
2022-01-28 13:00:47 +00:00
Lars Eggert cf629a42ad And more fixes.
- Legacy-Id: 19877
2022-01-25 10:14:25 +00:00
Lars Eggert edf3242665 More fixes.
- Legacy-Id: 19836
2022-01-12 18:37:18 +00:00
Jennifer Richards cf62b46093 Find references from submitted XML instead of rendering to text and parsing. Fixes #3342. Commit ready for merge.
- Legacy-Id: 19825
2022-01-07 17:53:23 +00:00
Lars Eggert 6fa5fa073e More fixes.
- Legacy-Id: 19812
2022-01-06 12:26:10 +00:00
Lars Eggert 5132661b06 More test fixes
- Legacy-Id: 19803
2022-01-05 11:25:25 +00:00
Robert Sparks 865dc62676 Change strategy to only creating a single file per doc/rev, and not creating the 'draft-'-less or version-less variants. Corrected calculation of date in the management command.
- Legacy-Id: 19789
2021-12-16 22:33:47 +00:00
Robert Sparks f6035850d8 update bibxml-ids generation on draft submission.
- Legacy-Id: 19783
2021-12-14 21:53:10 +00:00
Robert Sparks b7eec8ae26 Build and maintain a full set of bibxml-ids documents.
- Legacy-Id: 19782
2021-12-14 20:56:26 +00:00
Lars Eggert f974fd3c04 Fix more things
- Legacy-Id: 19762
2021-12-09 06:41:00 +00:00
Lars Eggert 726b29bf74 fontawesome -> bootstrap-icons
- Legacy-Id: 19608
2021-11-10 09:28:38 +00:00
Robert Sparks 5c28a85cf1 Merged in [19555] from jennifer@painless-security.com:
Use temporary directories instead of 'real' filesystem for tests. Fixes #3414.
 - Legacy-Id: 19561
Note: SVN reference [19555] has been migrated to Git commit 81d9234d54
2021-11-08 18:16:56 +00:00
Jennifer Richards 81d9234d54 Use temporary directories instead of "real" filesystem for tests. Fixes #3414. Commit ready for merge.
- Legacy-Id: 19555
2021-11-05 19:45:57 +00:00
Lars Eggert b058ba28ec Remove the ability to submit Postscript I-Ds.
Commit ready for merge. Fixes #3448.
 - Legacy-Id: 19486
2021-10-28 16:24:29 +00:00
Lars Eggert 962253f994 Remove the Note Well from the datatracker and point to the IETF web site.
One less thing to keep in sync if the Note Well changes.

Commit ready for merge.
 - Legacy-Id: 19484
2021-10-28 13:08:10 +00:00
Robert Sparks b99eecc1ae Bring the factory-boy and Faker dependencies forward through some minor breaking changes. Stop using the deprecated fr_QC locale in Faker. Commit ready for merge.
- Legacy-Id: 19270
2021-08-03 22:22:35 +00:00