This repository contains the edX Credentials Service, which supports course and program certificates. This service is a replacement for the certificates
app in edx-platform
.
Credentials can be run as part of devstack.
Where to run make commands
Due to the nature of developing in containers, some commands must be ran inside the container, and some locally. Currently most commands can be ran either inside the container or inside a local virtual environement, once developer requirements have been installed (make requirements)
The exception to this, is commands that run inside their own containers, which currently is only the testing suites
make acceptance_tests_suite make quality_and_translations_tests_suite make unit_tests_suite
make accept requires certain local OS-level packages to be installed (firefox / xbfb), so it's best to run it with the acceptance_tests_suite command noted above.
Frontend Development
When developing frontend code in Credentials, some of the code must be transpiled and bundled for it to be usable. This includes the React components found in credentials/static/components
and the SASS code found at credentials/static/sass
. In order to view your changes, you must run one of the make static commands. make static builds and collects your static assets once, while make static.watch will continue to watch for changes in your code and rebuild/recollect whenever you save. When using make static.watch it only triggers after save, so if you have existing changes, you make need to run make static once first, or make a small change to an existing file and save it so it triggers a rebuild.
To see changes locally, from your devstack repo run
make credentials-shell make static make static.watch
Testing
In order for developers to have a consistent experience between CI and local testing, we are using a locally built container image that mimics the ones that Github Actions uses.
NOTE: The first time you run any of the test suites below, it will build the image which will take a few minutes. Following test runs will be quicker.
To run acceptance tests locally ("acceptance_tests" in CI)
make acceptance_tests_suite
To run python and javascript tests locally ("unit_tests" in CI)
make unit_tests_suite
To run quality and translation tests locally ("quality_and_translations_tests" in CI)
make quality_and_translations_tests_suite
isort and formatting (black) quality issues can be fixed automatically by running either
make isort # or make format
Documentation
Documentation is hosted on Read the Docs. The source is hosted in this repo's docs directory. To contribute, please open a PR against this repo.
License
The code in this repository is licensed under version 3 of the AGPL unless otherwise noted. Please see the LICENSE file for details.
How To Contribute
Contributions are welcome. Please read How To Contribute for details. Even though it was written with edx-platform
in mind, these guidelines should be followed for Open edX code in general.
Reporting Security Issues
Please do not report security issues in public. Please email security@edx.org.
Get Help
If you're having trouble, we have discussion forums where you can connect with others in the community.
Our real-time conversations are on Slack.