An Open edX CLI tool for moving translation files from openedx-translations.
OEP-58 proposes changes to the way the Open edX Organization organizes and maintains translation files. Atlas is an Open edX CLI tool that uses git's sparse-checkout to download directories with the repository openedx-translations. These directories correspond to repositories within the GitHub openedx organization. They contain translation files downloaded from Transifex that have been translated by the Open edX Translations Working Group.
Atlas is intended for both development and deployment, and is meant to be used after cloning a repository with translation files kept in openedx-translations. For instance, when building a docker image or testing localization strings locally. It should not be necessary to run any application in English.
Atlas itself is a bash script, but it can be installed in a couple of different ways:
First, ensure git
is installed and available in PATH
because atlas
relies on it.
Install as an ``npm`` package
Install from npm:
npm install @edx/openedx-atlas
Then add node_modules/.bin
to your PATH
.
Verify that is installed via atlas --help
.
Install directly from GitHub releases
- Download
atlas
from the latest release, or from the main branch:
curl -L https://github.com/openedx/openedx-atlas/releases/latest/download/atlas -o atlas
- Allow execution
chmod +x atlas
- Either add
atlas
to yourPATH
, or run using./atlas
The help message below is copied from both atlas --help
. It's updated
regularly and useful to understand atlas
at a glance.
Atlas is a CLI tool that has essentially one command: `atlas pull` Configuration file: Atlas defaults to using a configuration file named `atlas.yml` placed in the root directory. Configuration file: pull: repository: <organization-name>/<repository-name> branch: <branch-name> directory: <repo-directory-name>:<local-dir-name> ... filter: <pattern> ... Atlas can also use a configuration file in a different path using the `--config` flag after `atlas`: `atlas pull --config config.yml`. Atlas can also be used without a configuration file by using the flags below after `atlas pull`. Positional arguments DIRECTORY MAPPINGS ... One or more directory map pair separated by a colon (:) e.g. FROM_DIR:TO_DIR. The first directory (FROM_DIR) represents a directory in the git repository. The second directory (TO_DIR) represents a local directory to copy files to. At least one directory pair is required: $ atlas pull frontend-app-learning/messages:learning-app frontend-lib-test/messages:test-lib This syntax is inspired by the `docker --volume from_dir:to_dir` mounting syntax. Options: `-r` or `--repository`: slug of the GitHub repository to pull from. Defaults 'openedx/openedx-translations'. `-b` or `--branch`: Branch to pull from. Defaults to 'main' `-f` or `--filter`: A comma-separated (or space-separated) list of patterns match files and sub-directories. This is mainly useful to filter specific languages to download. The same filter is applied to all DIRECTORY MAPPINGS arguments. `--filter=fr_CA,ar,es_419` will match both directories named 'es_419' and files named 'es_419.json' among others Example: $ cd frontend-app-learning/src/i18n/messages $ atlas pull --filter=fr_CA,ar,es_419 \ translations/frontend-app-learning/src/i18n/messages:frontend-app-learning \ translations/frontend-component-header/src/i18n/messages:frontend-component-header Will result in the following tree: ├── frontend-app-learning │ ├── ar.json │ ├── es_419.json │ └── fr_CA.json └── frontend-component-header ├── ar.json ├── es_419.json └── fr_CA.json Commands: pull pull -h, --help --version
Install
Run
make test
: run all testsmake performance_tests
: run performance tests which pulls from GitHub.com/openedxmake unit_tests
: run fast unit tests without external dependency
There's a couple of patterns that are useful to imitate when using Atlas
depending on the use case. atlas pull
is most commonly implemented in
Makefile
, however it can be also used in Dockerfile
builds or any
other automation tool.
TBD
TBD
This repository uses semantic versioning with the aid of semantic release to automate the process.
To release a new version, use the conventional commits and the release.yml
GitHub action will
automatically create a new release and upload the atlas
executable.
Note: The atlas --version
command only outputs the version if it's downloaded from a GitHub release. Otherwise, it
will output unreleased
.
The code in this repository is licensed under the AGPL 3.0 unless otherwise noted.
Please see LICENSE
for details.
Contributions are very welcome.
Please read How To Contribute for details.
Have a question about this repository, or about Open edX in general? Please refer to this list of resources if you need any assistance.