We haven't quite dropped Py3.8 support yet, so we can't use these workflows if
they're compiling with 3.11:
* upgrade-one-python-dependency (upgrading a single, targeted dep)
* compile-python-requirements (recompiling all deps without upgrading)
So, we "downgrade" those workflows to use 3.8, for now. We should revert this
commit when we drop 3.8 support.
Note: The upgrade-python-requirements.yml workflow is still using 3.8, so this
commit will update the other workflows to match that one.
See https://github.com/openedx/edx-platform/issues/34702
This necessarily involves switching from calling
`StaticContent.is_versioned_asset_path` to determine whether to handle the
request to having a hardcoded urlpattern. I've made the choice to hardcode
the other two patterns similarly rather than using imported constants. The
mapping of URL patterns to database records should be explicit (even though
we don't expect those constants to change out from under us.)
I've renamed the middleware rather than choosing a new name for the
implementation because there are other references in tests and other code.
This was the smaller change.
A note on HTTP methods: The middleware currently completely ignores the
request's HTTP method, so I wanted to confirm that only GETs were being
used in practice. This query reveals that 99.8% of requests that this
middleware handles are GET, with just a smattering of PROPFIND and OPTIONS
and a tiny number of HEAD and POST:
```
from Transaction select count(*) facet request.method
where name = 'WebTransaction/Function/openedx.core.djangoapps.contentserver.middleware:StaticContentServer'
since 4 weeks ago
```
* feat: temporarily prevent renovate from updating this package
Minor (and therefore presumed-safe by renovate) version updates caused
an exception on some deprecated code. Marking this package as not-safe
for renovate until that code is removed, which will happen quite soon.
see external (2U) ticket REV-4067 for details. cc @julianajlk
FIXES: APER-3502
* feat: adding a comment
attempting to add a comment explaining the ignored dependency
Co-authored-by: Kyle McCormick <kyle@axim.org>
---------
Co-authored-by: Kyle McCormick <kyle@axim.org>
Remove the trailing slashes from the .gitignore entries for static asset
build artifacts. With these slashes, only directory contents are
ignored. Without these slashes, the artifact is ignored whether it is a
directory *or* an actual file (particularly, in our case: a symlink).
This allows us to build edx-platform static assets into a separate
directory, and then symlink to them from edx-platform.
Also: We remove the duplicate cms/static/css/ gitignore entry.
The git-ignored target directory for LMS Sass compilation is:
lms/static/css
Unfortunately, that directory contains git-controlled directory of
vendored-in static assets:
lms/static/css/vendor
This is a problem for a couple reasons:
1. In Tutor, we would like to make lms/static/css a symlink to an
external location for the sake of build efficiency. This is
impossible to do without clobbering lms/static/css/vendor and
dirtying the git state.
2. More generally, when optimizing (or just understanding) a build
system, it adds complexity when git-controlled source directories are
mixed up inside git-ignored target directories.
The solution is to simply merge these vendored-in assets to another
existing git-controlled vendor directory:
common/static/css/vendor
LMS already reads assets from this folder, so no further changes need to
be made. common/static/css is fully git-controlled, so we avoid the
complexity described above.
When a shard of unit-tests.yml fails, we want the `success` job to be
maked "Failed" (not "Skipped"). That's because "Failed" blocks the PR
from merging, whereas "Skipped" does not. This change ensures that
`success` always runs to completion rather than being cancelled as soon
as a unit test shard fails or is cancelled.
From https://github.com/marketplace/actions/alls-green#options:
> Important: For this to work properly, it is a must to have the job always run,
> otherwise GitHub will make it skipped when any of the dependencies fail. In
> some contexts, skipped is interpreted as success which may lead to undersired,
> unobvious and even dangerous (as in security breach "dangerous") side-effects.
Closes https://github.com/openedx/edx-platform/issues/34789