diff options
-rw-r--r-- | .pre-commit-config.yaml | 2 | ||||
-rw-r--r-- | build/pypi/openbb_platform/PUBLISH.md | 46 | ||||
-rw-r--r-- | openbb_platform/core/openbb_core/app/model/preferences.py | 1 |
3 files changed, 34 insertions, 15 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1cec6d94c1c..1d183a31daa 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: - id: check-merge-conflict - id: detect-private-key - repo: https://github.com/psf/black - rev: 23.1.0 + rev: 24.1.0 hooks: - id: black - repo: https://github.com/charliermarsh/ruff-pre-commit diff --git a/build/pypi/openbb_platform/PUBLISH.md b/build/pypi/openbb_platform/PUBLISH.md index e844cd1b0fc..1f07fe84adc 100644 --- a/build/pypi/openbb_platform/PUBLISH.md +++ b/build/pypi/openbb_platform/PUBLISH.md @@ -1,20 +1,37 @@ # Publishing to PyPI -Publishing checklist: +## Pre-release procedure -> Note: you need to have the appropriate credentials and permissions to publish to PyPI +> [!WARNING] +> The `release` branch is solely for the purpose of publishing the package(s)! Any last minute changes should be made in appropriate PRs and merged to the `develop` branch. Once the `release` branch is created, the `develop` branch should be frozen for further commits. -1. Ensure all unit tests pass: `pytest openbb_platform -m "not integration"` -2. Ensure all integration tests pass: `pytest openbb_platform -m integration` -3. Run `python -c "import openbb; openbb.build()"` to build the static assets. Make sure that only required extensions are installed. +> A `release` branch for a particular package should only cater to the changes for that package directory. For e.g. the `release/openbb-core-2.0.0` branch should only contain changes for the `openbb-core` package i.e. in the `openbb_platform/core` directory. - > **Note** Run `python -c "import openbb"` after building the static to check that no additional static is being built. +1. Open a PR with the changes to be published in the format `release/<version>` (for e.g. `release/4.0.0` ). For a particular package use the format `release/<package>-<version>` (for e.g. `release/openbb-core-1.0.1`). +2. Ensure all the CI workflows pass. +3. Ensure all unit tests pass: `pytest openbb_platform -m "not integration"` +4. Ensure all integration tests pass: `pytest openbb_platform -m integration` +5. Run `python -c "import openbb; openbb.build()"` to build the static assets. Make sure that only required extensions are installed. -4. Run the following commands for publishing the packages to PyPI: + > **Note**: Run `python -c "import openbb"` after building the static to check that no additional static is being built. + +6. Finally, check if everything works: + + 1. Install the packages locally using `python openbb_platform/dev_install.py` command and test them in a new environment. + 2. Check if all the `pyproject.toml` files are correct, including the `openbb_platform` one. + 3. Double check if there is any new extension or provider that needs to be added to [integration tests GitHub Action workflow](/.github/workflows/platform-api-integration-test.yml). + +## Release procedure + +> Ensure you have the appropriate credentials and permissions to publish to PyPI. + +1. Run the following commands for publishing the packages to PyPI: Consider using the `--dry-run` flag to check if everything is correct before publishing. Also, it might be a good idea to run the script in batches to ensure that the packages are published correctly and the dependencies pick the correct versions. + > For a single package release, the following steps are optional since the package can be bumped manually. + 1. For the core package run: `python build/pypi/openbb_platform/publish.py --core` 2. For the extension and provider packages run: `python build/pypi/openbb_platform/publish.py --extensions` 3. For the `openbb` package - **which requires manual publishing** - do the following @@ -29,11 +46,14 @@ Publishing checklist: > > Also, sometimes there might be some delay in the PyPI API, so it might be necessary to wait a few minutes before publishing the next package. -5. Update poetry files: `python build/pypi/openbb_platform/poetry_update.py` -6. Open a PR so that changes are reflected on the main branch +2. Update poetry files: `python build/pypi/openbb_platform/poetry_update.py` +3. Merge the `release/<package>-<version>` branch to the `main` branch. +4. Check the `Deploy to GitHub Pages` GitHub action is completed successfully. Go to the [docs](https://docs.openbb.co) website to see the changes. -Finally, check if everything works: +## Post-release procedure -1. Install and test the package from Pypi on a clean environment. -2. Check if all the `pyproject.toml` files are correct, including the `openbb_platform` one. -3. Double check if there is any new extension or provider that needs to be added to [integration tests GitHub Action workflow](/.github/workflows/platform-api-integration-test.yml). +1. Install the packages on Google Colaboratory via PyPi and test to check if everything is working as expected. +2. Install the packages in a new environment locally via PyPi and test to check if everything is working as expected. +3. Open a new PR with the `release/<package>-<version>` branch pointing to the `develop` branch. +4. Merge the `release/<package>-<version>` branch to the `develop` branch. +5. If any bugs are encountered, create a new branch - `hotfix` for `main` and `bugfix` for `develop` and merge them accordingly. diff --git a/openbb_platform/core/openbb_core/app/model/preferences.py b/openbb_platform/core/openbb_core/app/model/preferences.py index b793f35de10..57987020b17 100644 --- a/openbb_platform/core/openbb_core/app/model/preferences.py +++ b/openbb_platform/core/openbb_core/app/model/preferences.py @@ -13,7 +13,6 @@ class Preferences(BaseModel): export_directory: str = str(Path.home() / "OpenBBUserData" / "exports") user_styles_directory: str = str(Path.home() / "OpenBBUserData" / "styles" / "user") cache_directory: str = str(Path.home() / "OpenBBUserData" / "cache") - charting_extension: Literal["openbb_charting"] = "openbb_charting" chart_style: Literal["dark", "light"] = "dark" plot_enable_pywry: bool = True plot_pywry_width: PositiveInt = 1400 |