djangoldp_example | ||
.gitignore | ||
README.md | ||
setup.cfg | ||
setup.py |
Django LDP example
Step by step quickstart
- Installation
git clone git@git.happy-dev.fr:startinblox/djangoldp-packages/djangoldp-example.git /path/to/myawesomepackage
git remote set-url origin the_repository_url
- rename djangoldp_example directory to djangoldp_myawesomepackage
NB:
- replace /path/to/myawesomepackage with the local path of your package.
- replace the_repository_url with the git url of your package (example: git@git.happy-dev.fr:startinblox/djangoldp-packages/djangoldp-example.git).
- replace djangoldp_myawesomepackage with your package name. Please respect the naming convention (singular word, starting by
djangoldp_
)
- Developpement environnement
In order to test and developp your package, you need to put the package src directory at the same level of a working django ldp app. By exemple, you can clone the sib app data server
git clone git@git.happy-dev.fr:startinblox/applications/sib-app-data-server.git server /path/to/app
-
The classical way :
ln -s /path/to/myawesomepackage/djangoldp_myawesomepackage /path/to/app/djangoldp_myawesomepackage
-
The docker way : in the volumes section, add a line in docker-compose.override.yml. Example
volumes:
- ./:/app
- /path/to/myawesomepackage/djangoldp_myawesomepackage:/app/djangoldp_myawesomepackage
Add your package in settings.py of the app. Now, you can test if your package is imported propefully by doing a
python manage.py shell
then
from djangoldp_myawesomepackage.models import ExampleModel
If, no error, it's working.
- Customization
setup.cfg
: please, fill the name, version, url, author_email, descriptiondjangoldp_example/__init__.py
: fill the name, don't touch the version number !- everything under the djangoldp_example is part of your package, you probably would replace "example" by your package name.
- Push on the repository you've created
Notes
CICD
When you're ready to publish your app :
-
Add the
sib-deploy
user as amaintainer
to the project (Settings > Members
) -
Configure
pipeline strategy
toclone
(Settings > CI/CD > Pipelines
) -
Protect the
master
branch allowing onlymaintainers
to push (Settings > Repository > Protected branches
) -
Configure CI/CD variables to authenticate on pypi.org:
Variable | Value | Protection |
---|---|---|
GL_TOKEN |
sib-deploy-token |
protected |
PYPI_PASSWORD |
pypi-password |
protected |
PYPI_USERNAME |
startinblox | protected |
- Replace the "do_not_publish" by "master" in the .gitlab-ci.yml
Factories
If you dont need factory, you can remove the mock_example command, the factories files and the extras_require section in setup.cfg
Provide a factory is a good pratice in order to simplify the mocking of data on a server / in a test pipeline.