symbolix/dev/: be-sales-0.1.5.dev0 metadata and description
Sales Services
| author_email | "R. Dimas Bagas Herlambang" <bagasbgy@gmail.com> |
| classifiers |
|
| description_content_type | text/markdown |
| metadata_version | 2.4 |
| project_urls |
|
| requires_dist |
|
| requires_python | >=3.12.3 |
| File | Tox results | History |
|---|---|---|
be_sales-0.1.5.dev0-py3-none-any.whl
|
|
|
be_sales-0.1.5.dev0.tar.gz
|
|
symbolix-erp-sales
Sales Services
Conda Setup
conda create -n symbolix-erp-sales python=3.12.3
Install/Upgrade Development Kit
You can use dev option to retrieve from repositories:
pip install -e .[dev] --config-settings editable_mode=strict
or install all dependencies manually from local folders:
pip install -e ../symbolix-be-py_kit[all] --config-settings editable_mode=strict
pip install -e ../symbolix-erp-uam --config-settings editable_mode=strict
pip install -e ../symbolix-erp-core_services --config-settings editable_mode=strict
pip install -e ../symbolix-erp-accounting --config-settings editable_mode=strict
pip install -e ../symbolix-erp-inventory --config-settings editable_mode=strict
pip install -e ../symbolix-erp-crm --config-settings editable_mode=strict
pip install -e . --config-settings editable_mode=strict
Running Development Server
be-sales
Git Management
Precommit
To ensure code quality and consistency, run the pre-commit hooks before pushing your changes. This will automatically check and format your code according to the project's standards:
be-precommit
If any issues are found, fix them and re-run the command until all checks pass.
Commit Message
Follow the Conventional Commits specification for your commit messages. This standard helps automate versioning and changelog generation.
A conventional commit message consists of a type, an optional scope, and a concise description:
<type>[optional scope]: <description>
Types include:
feat: A new featurefix: A bug fixdocs: Documentation changesstyle: Code style changes (formatting, missing semi colons, etc.)refactor: Code changes that neither fix a bug nor add a featureperf: Performance improvementstest: Adding or updating testschore: Changes to the build process or auxiliary tools
Examples:
feat(auth): add JWT authentication
fix(database): resolve connection leak
docs(readme): update setup instructions
Refer to the Conventional Commits documentation for more details and examples.
Tagging a Release
Release and dev package creation is managed by CI/CD:
-
Development Package: Pushing to the
developbranch triggers CI to build and publish a dev package. Manually bump the version usingbump2version [major|minor|patch|build]before pushing. -
Release Package: Creating or pushing a tag in GitLab will trigger CI to build and publish a release package. Normally, tags are created manually using:
bump2version --tag release git push && git push --tags
Make sure to push both commits and tags to ensure the release process is triggered.
Migrations
alembic revision --autogenerate -m "sales: [migration message]"
alembic upgrade head
alembic downgrade -1
Unit Test
coverage run -m pytest --disable-warnings --junitxml=xunit-report.xml
coverage report
coverage xml
docker run \
--rm \
--network=symbolix \
-v "$PWD:/usr/src" \
-e SONAR_HOST_URL="http://sonarqube:9000" \
sonarsource/sonar-scanner-cli
Build and Run in Binary Mode
pyinstaller \
--distpath bin/dist \
--workpath bin/build \
--clean api.spec
./bin/dist/api
These variables configure the package registry URL and authentication credentials required for publishing.
Next, build and push the package to the registry using:
be-publish
Build Docker Image
To build a Docker image for the application, use:
export $(grep BE_CI_AUTH_TOKEN .env | xargs)
docker build \
--rm --no-cache \
--build-arg AUTH_TOKEN="$BE_CI_AUTH_TOKEN" \
-f .docker/Dockerfile \
-t symbolix-sales:latest .
The same approach can be applied for worker services:
docker build \
--rm --no-cache \
--build-arg AUTH_TOKEN="$BE_CI_AUTH_TOKEN" \
-f .docker/worker.Dockerfile \
-t symbolix-sales-worker:latest .
Run Standalone Docker Image
To run the application in a Docker container:
docker run --name symbolix-sales-1 \
-p 55506:8000 \
--network=symbolix \
--env-file .env.local \
--restart=always \
--detach \
symbolix-sales:latest
The same approach can be applied for worker services:
docker run --name symbolix-sales-worker \
--network=symbolix \
--env-file .env.local \
--restart=always \
--detach \
symbolix-sales-worker:latest