Commit Graph

107 Commits

Author SHA1 Message Date
Muhammad Umar Khan
e9e4a3d041 feat!: upgrade pymongo (#35179) 2024-07-26 15:34:17 +05:00
Muhammad Umar Khan
5198496703 Revert "feat!: upgrade pymongo (#34675)" (#35178)
This reverts commit cbd4904e1b.
2024-07-25 18:42:03 +05:00
Muhammad Umar Khan
cbd4904e1b feat!: upgrade pymongo (#34675) 2024-07-25 16:03:06 +05:00
Tim McCormack
f0507b7fc0 fix: Delete translations more conservatively (#35169)
This was deleting `conf/locale/en/LC_MESSAGES/.gitignore` which was
introduced in https://github.com/openedx/edx-platform/pull/34628 such that
`make pull_translations` (which depends on `clean_translations`) was
leaving the git working directory dirty.

Deleting just the mo/po files will avoid this.

Relates to https://github.com/edx/edx-arch-experiments/issues/732
2024-07-24 20:50:07 +00:00
Feanil Patel
1d2569be14 build: Correct the make targets for building the docs. 2024-06-11 13:19:28 -04:00
Feanil Patel
f0b3aac5a2 build: Build assets requirements before development.
The development.txt file requires assets.txt so build assets first so we
don't get conflicts when running make upgrade.
2024-06-03 16:29:26 -04:00
Kyle D. McCormick
7e96b32f6a feat!: expose per-release edx-sandbox dependency pins
See requirements/edx-sandbox/README.rst for more info

BREAKING CHANGE: edx-sandbox/py38.txt will not longer
be updated. Please install from either edx-sandbox/base.txt or
edx-sandbox/releases/*.txt instead.
2024-04-18 15:35:45 -04:00
Kyle D. McCormick
de50f97d90 build: replace wget->curl, so make upgrade works in tutor
tutor's containers don't have wget installed, and curl -L works
just as well and is installed into basically everything
2024-04-18 15:35:45 -04:00
Kyle McCormick
4d969b73b5 build: avoid using glob in make clean_translations
Co-authored-by: Omar Al-Ithawi <i@omardo.com>
2024-03-27 08:30:40 -04:00
Kyle D. McCormick
3dc5d9b984 build: clean_translations without .git
We reimplement `make translations` so that it does not depend on the
presence of the `.git` directory. This fixes the Tutor build error:

     > [production 18/34] RUN make clean_translations:
    git clean -fdX conf/locale
    fatal: not a git repository (or any of the parent directories): .git
    make: *** [Makefile:57: clean_translations] Error 128

Why is the .git directory missing during the Tutor translations build?
Because if it were present, it would tie the translations' layer cache
up with git state, which would lead to the Docker layer being rebuilt
any time there was any change to git state.
2024-03-27 08:30:40 -04:00
Omar Al-Ithawi
6dab71e2cb chore: clean_translations refactored into separate makefile target (#34428)
This will allow external tools like Tutor to easily clean existing
translations without having to use the full pull_translations
makefile target.
2024-03-26 19:56:14 +00:00
Omar Al-Ithawi
49c1d7c9f9 fix: avoid removing Open_edX.egg-info/ with git clean (#34380)
git clean when used with glob pattern (*/) removes non-translations
files.

using `$ rm` to fix the issue.
2024-03-15 13:31:29 +00:00
Omar Al-Ithawi
a10fce3379 feat!: remove Transifex calls for FC-0012 - OEP-58 (#34355) 2024-03-14 13:38:28 +00:00
Muhammad Farhan Khan
7808913916 chore: Moved structures.py from tubular repository (#34328)
* chore: Moved structures.py from tubular repository
2024-03-12 09:46:34 -04:00
Omar Al-Ithawi
83f448778a feat!: atlas pull for studio-frontend translations (#34261)
This pull request pulls translations via atlas for `studio-frontend` and refactor `load_sfe_i18n_messages` to load new translations into `conf/plugins-locale/studio-frontend` instead of relying on deprecated node.js package bundled translations.
2024-03-06 15:50:59 +00:00
Omar Al-Ithawi
8599978ebc feat: fix pull_translations for production deployment
Makefile paver usage replaced with manage.py.
This avoids running the production-unsuitable
`pavelib.prereqs.install_prereqs` step during deployments.
2024-02-28 20:08:06 +03:00
Muhammad Farhan Khan
65ea55c8aa Move user retirement scripts code from the tubular repo (#34063)
* refactor: Migragte user retirement scripts code from the tubular repo
2024-02-22 11:09:00 -05:00
Omar Al-Ithawi
25b3794e90 chore: pull_translations: use less Makefile commands and move it to Python
`mkdir` should be in Python
2024-02-19 20:02:18 +03:00
Muhammad Soban Javed
e40a01c7cc feat!: upgrade Django version to 4.2 (LTS)
This reverts commit 23659d5ba8.
2024-02-02 17:08:54 +05:00
Omar Al-Ithawi
867eeff993 feat: atlas pull plugins translation 2024-01-27 12:05:05 +03:00
Muhammad Soban Javed
6f32d0e6f1 Revert "chore!: upgrade Django version to 4.2 (LTS)" (#34095) 2024-01-23 19:07:53 +05:00
Muhammad Soban Javed
fc8e40fb10 chore!: upgrade Django version to 4.2 (LTS) (#33969)
* chore!: upgrade Django version to 4.2 (LTS)

* feat: Upgrade Python dependency Django

chore!: upgrade Django version to 4.2

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`

* chore: Update common.py

* chore: Update common.py

---------

Co-authored-by: Muhammad Soban Javed <iamsobanjaved@gmai.com>
Co-authored-by: iamsobanjaved <iamsobanjaved@users.noreply.github.com>
Co-authored-by: Awais Qureshi <awais.qureshi@arbisoft.com>
2024-01-23 16:53:34 +05:00
Omar Al-Ithawi
a5251cc705 feat: atlas pull for XBlock translations 2024-01-12 12:49:46 +03:00
Shadi Naif
a6b180c6f3 feat: FC-0012 - add atlas pull behind a flag
(atlas pull) will be performed only if OPENEDX_ATLAS_PULL environment variable is set

Refs: FC-0012 OEP-58
2024-01-04 18:48:31 +03:00
Andy Shultz
8526601466 fix: fix upgrade-package usage string 2023-11-16 10:01:15 -05:00
Shadi Naif
ffe3bf8271 feat: add (--no-segment) option to extract_translations (#33368)
The flag is added if and only if (IS_OPENEDX_TRANSLATIONS_WORKFLOW) is set to "yes"

Refs: FC-0012 OEP-58
2023-11-15 12:28:07 -05:00
Tim McCormack
3fdb435be2 build: Fix common-constraints override to prevent doubled comment (#33271)
Sometimes this make target doubles or even triples the comment. I think
this is due to a temporary failure in the wget call, which is then ignored
and an additional comment is added onto the top. If this happens multiple
times in a row, you get multiple additions.

Removing the `|| touch` should fix this, and surface any errors that are
happening.
2023-09-18 16:32:18 +00:00
Tim McCormack
25b18e83cd build: Add missing Celery task decorators, and add CI check for it (#33154) 2023-09-15 20:03:04 +00:00
Awais Qureshi
e94af3c2d3 feat: upgrading django-simple-history without migrations. (#32880)
* feat: upgrading django-history without migrations.

* feat: upgrading django-history==3.1.1.
2023-08-07 18:09:19 +05:00
Usama Sadiq
34f9fc4ae9 fix: include new assets.txt file in make upgrade (#32860)
* fix: include new assets.txt file in make upgrade
* test: update click version to resolve upgrade job failure
* chore: Updating Python Requirements (#32861)
2023-07-27 16:03:07 +05:00
salmannawaz
e4a1039144 Docker multi-arch images push for linux/amd64, linux/arm64 (#32686)
* fix: push docker multi-arch images

---------

Co-authored-by: Salman Nawaz <salman.nawaz@A006-01081.local>
2023-07-27 14:45:07 +05:00
Feanil Patel
74887d7b46 build: Update make upgrade order.
Now that doc.txt depends on base.txt, update the order in which we run
`make upgrade` to generate the docs requirmeents file.
2023-07-17 17:22:21 -04:00
Diana Huang
e28bbe9446 feat: Add migrate Make command. (#32705)
To make edx-platform more consistent with other IDAs and to
help deprecate more of paver, we are adding the ability to
run `make migrate` in a local environment as a replacement
for `paver update_db`.

https://github.com/openedx/devstack/issues/1085
2023-07-12 12:47:23 -04:00
Feanil Patel
8c43868b52 docs: Rename swagger.yaml to lms-openapi.yaml
* Swagger was renamed to OpenAPI at some point so use the new name for
  clarity.

* Prefix with `lms` to make it clear that these are the APIs from the
  LMS and may not all be available in the CMS.
2023-06-29 15:37:10 -04:00
Feanil Patel
26262131ae docs: Remove the api docs sphinx project.
* This project was not being published anywhere.
* The previous commit that adds openapi generation capabilities to the
  `docs/guides` replaces what this was doing.
2023-06-29 15:37:10 -04:00
Kshitij Sobti
cb46eeafbe fix: Switch from echo to prinf for more consistent behaviour
In different environments echo seems to handle escape characters differently.
When generating the common constraints file, on some systems it outputs the
"\n" character as-is. This change switches echo to printf, which is supposed to
be more consistent.
2023-04-28 09:16:09 +05:30
Tim McCormack
b1f8b9339a build: Add upgrade-package Make target and workflow (#32131)
This adds a Make target that should simplify the common task of
upgrading a single dependency. Sometimes people manually edit the pin
files, which we would like to avoid; hopefully this will make it
easier for them to do the right thing.

The GitHub workflow should also make it easier for people on Mac to
recompile requirements in a Linux environment, reducing the number of
times spurious dependency changes show up in the pin files (due to
OS-dependent requirements.)

Also, separate upgrade/downgrade instructions and simplify the latter.
(Min constraints are rare and we usually move beyond them quickly.)
2023-04-27 13:44:47 +00:00
Tim McCormack
b852344fcf build: Deduplicate mismatched pip.txt files that caused build failure (#32081)
There was a `requirements/pip.txt` with old versions, and a newer
`requirements/edx/pip.txt` managed via a `pip.in` file. The old one was
used in most places, but came out of sync with pip-tools.txt, which was
managed properly. Eventually this caused a `pip check` failure due to the
mismatch.

This should resolve at least part of https://github.com/edx/edx-arch-experiments/issues/267

This PR moves pip.in and pip-tools.in and their corresponding pin files
up to the `requirements/` dir, since they should be shared between the edx
and sandbox environments. This also has the effect of upgrading pip to
match the version in the file we've been uselessly upgrading.

Other improvements:

- Remove `-q` option from pip and pip-sync calls, as it was hiding some
  debugging information that would have resolved this sooner.
- Depend on `pre-requirements` from `compile-requirements`, rather than
  from `upgrade`. (The base target is the one that actually needs it.)
  This also lets us remove the explicit `pip install pip-tools` line.
- Install the recompiled pip and pip-tools files right away, not after the
  loop. When we upgrade pip-tools, we want to use the upgraded version,
  not the previous version. This requires moving the pip-tools.txt
  recompilation outside of the loop and into its own explicit line.
- Don't upgrade pip if we're not running `make upgrade` (respect the
  compile options).
- Remove apparently-unneeded `--no-emit-trusted-host --no-emit-index-url`
  options (we don't pass trusted-host or index-url options).
2023-04-17 17:21:48 +00:00
Usama Sadiq
73917a9b46 fix: remove local setuptools override (#31649) 2023-01-25 11:42:26 +05:00
Usama Sadiq
13d4b892f5 fix: remove setuptools constraint (#31647)
* fix: skip global setuptools constraint
2023-01-24 15:43:54 +05:00
Tim McCormack
b8a34f0c57 build: Set Django version for tests more safely; drop support for non-GHA (#31387)
We have a need to lock the version of Django for production and tests, but
also to test on newer versions of Django so that we can get the repo ready
for long-term-support releases.

We've been doing that by extracting the `django==x.y.z` from the
pip-compiled files and moving it to a django.txt that is then co-installed
but can be overridden during tests. The problem is that this can result
in broken packages.

The approach here is to have `make test-requirements` continue to
ensure a consistent set of packages, and then install a different
Django on top of that in the CI script -- and call `pip check` to make
sure that combination isn't broken.

Adding Django 4.0 to the unit-tests.yml matrix will now correctly
result in this error and a failing job:
`django-splash 1.2.1 has requirement Django<4.0, but you have django 4.0.8.`

The other half of this is to change other CI runners to remove their
ability to control the Django version, since it's complicated to make
this work, and we probably only need it in unit-tests.yml. Convert them
to just use `make test-requirements`.

Also:

- Simplify handling of `pip --src` by setting `PIP_SRC` (rather than our
  own `PIP_SRC_DIR`, which pip ignores because `--src-dir` isn't an option
  that it knows). This is needed to allow `make test-requirements` to do
  the pip calls. An alternative would be to set a pip-options env var for
  the make target to use, but `PIP_SRC` already exists.
- Remove outdated modifications to common_constraints
- Add comment explaining why pylint tests need dev-requirements
2022-12-12 21:45:15 +00:00
Muhammad Umar Khan
9c279444df build: add import linter check (#31062)
* build: add import linter check
2022-12-07 12:07:09 +05:00
alangsto
b1c9482371 fix: update docker build command now that image targets have changed (#31404) 2022-12-06 09:38:44 -05:00
Feanil Patel
7b7022ba54 feat: Add a target for ubuntu requirements.
I found this useful because then I can run some basic dev commands
locally instead of needing a full container environment just to run
pylint or other basic dev tasks.

Co-authored-by: Kyle McCormick <kdmc@pm.me>
2022-11-28 14:39:59 -05:00
Usama Sadiq
605a0a66e7 Install pip and pip tools (#31206)
* fix: install pip & pip-tools in make upgrade
* chore: Updating Python Requirements (#31205)

Co-authored-by: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com>
2022-11-03 16:28:32 +05:00
Tim McCormack
2edbdcf7f4 build: Clear out stale dependencies when installing requirements (#31080)
We've been seeing some cross-version caching issues in the
edx-platform-runner unit tests, which apparently run on a "dirty"
environment—the virtualenv does not get cleared out between runs,
which probably improves performance but allows installed dependencies
to "leak" between runs. This results in errors between master and older
open-releases but could also prevent us from noticing missing deps.

By using pip-sync in the new CI Make targets (as we already do for
the regular `make requirements` target) we can ensure that any stale
dependencies from runs by other branches (or older versions of the
code) are removed.

Calling `make local-requirements` at the end of each `*-requirements`
target rather than making it a prerequisite is necessary for using sync,
since otherwise the local reqs would be wiped out.

The `requirements` target is also deduplicated into the newer
`dev-requirements` (aliased to it, with both installing private deps now.)

Adding a prerequisite of `pre-requirements` allows us to simplify some
workflow calls slightly. This ends up being the bulk of the commit by
line count. The pip lockfile also wasn't being used in the Makefile, so
I added that to pre-requirements as well.

Also fix leading whitespace issue in Makefile.
2022-10-03 20:26:40 +00:00
UsamaSadiq
897cb3617f refactor!: delete common/lib and related usages 2022-09-22 14:16:34 +05:00
Rebecca Graber
fc3da9185b feat: increase logging level for i18n_tool in pull_translations (#30037) 2022-03-10 14:18:56 -05:00
Kyle McCormick
29ed3d911a build: expose working openedx/lms and openedx/cms docker images (#29549)
This commits prepares edx-platform's experimental Dockerfile
for optional use in devstack. Presently, the image built by this
Dockerfile isn't used anywhere.

Notable changes:
* Drop the openedx/edx-platform image name in favor of
  openedx/lms and openedx/cms.
* Drop the newrelic stages and tags.
* Create openedx/lms-dev and openedx/cms-dev image
  variants which use Django devserver, install dev
  requirements, and specify devstack Django settings.
* Add config files at (lms,cms)/envs/devstack-experimental.yml,
  extracted from the existing edxapp docker image.
* Adds three new scripts, each of which replaces an Ansible
  or Paver-supported function with a pure bash + Django
  management command implementation.
2022-01-10 11:20:10 -05:00
Ned Batchelder
84b5d8dd28 build: keep Makefile comments from appearing while running make (#29669)
These comments are meant for the Makefile maintainers to read, not the
user running make.  We can prefix them with @ to keep make from echoing
them while running.
2021-12-22 15:52:22 -05:00