* hi didier * Add files * Include build deps and third-party binaries in conda env files * Add the changelogs from GH * Api keys + cleaning up spelling + found some old refs * spelling * Merge branch 'feature/documentation3p0' of https://github.com/OpenBB-finance/OpenBBTerminal into feature/documentation3p0 * updates to faq sections * spelling * fixing FA so it runs * adding guides - need pics * Add gcc and maturin to build dependencies * telegram/discord docs markdown format conversion * Remove gcc from conda env files * Update install from source guide for terminal * fix: added new reference styles * adding examples to discord - remove play button * updating bot docs * Update SDK installation docs * Bump datetime package in lock file because current version was yanked * Update requirements txts * Remove rust tools from main conda env * Pin poetry to 1.4.0 because of a regression in 1.4.1 * Bump version of lightgbm to 3.3.5 * Address formatting and minor content comments * Advise all users to clean up conda artifacts with scripts * Add placeholder for pywry related docs * Update requirements.txt * Downgrade statsforecast to prevent pulling jupyter-dash * Add catboost to conda dependencies for windows install to work * Add charset-normalizer to conda deps because of a buggy windows build * Add xgboost to conda deps because of a buggy windows build * working!! * 3.8 and 3.9 xgboost * spelling * Point sdk install from source to terminal source install * image showing on docs Co-authored-by: jose-donato <jose-donato@users.noreply.github.com> * feat: added imageurl for examples * updates Stocks SDK intro * bot pics update * Bump python version on macOS CI builds * updating rest of bot docs * Move charset-normalizer to the pip section of environment yamls * Update mac CI workflows to use the correct cache * Move poetry to pip section of the conda yamls * Fix typo in file path * Fix direct_url.json files not being deleted on the CI * Fool reviewpad * Actually fool reviewpad * adding code for generating index and bot updates * linting * add commands for GTK on linux * Update deps after conflicts and CRLF line endings made it into develop * test bump down for matplotlib * codesign more dylibs * intel workflow * Add signing stuff that failed to intel * M1 file now * Remove duplicate lines from codesigning section of build instructions * Downgrade matplotlib to 3.7.0 to mitigate windows error * Downgrade python to 3.9 in attempt to fix scipy not packaging correctly * Downgrade python 3.9 to resolve conflicts found by conda * Remove duplicate xgboost references * Downgrade scikit-learn to avoid DistanceMetric32 not being found * Remove site-packages from bundle following python 3.10 -> 3.9 * Downgrade scikit-learn to avoid DistanceMetric32 not being found * Fix english in source installation * Revert advised python to 3.9 * Update SDK installation docs * Fix typo * Update lock file hash * Consolidate all installation instructions in the terminal section * Add --no-cache-dir to pip calls * Fool reviewpad * Remove reference of the conda cleanup from the pypi install * Fetch the environment yaml directly from the repo without downloading it * Add rosetta, cpp build tools and libomp as top level requirements * Update installation links in repo readme * adds brew install libomp to FAQ section * fix typo from my updatet * Capitalization of Section Headers * puts PyPi toolkit install in quotes, necessary for a non-bash shell. * grammar fixes * update docker windows instructions --------- Co-authored-by: James Maslek <jmaslek11@gmail.com> Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com> Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: teh_coderer <me@tehcoderer.com> Co-authored-by: jose-donato <zmcdonato@gmail.com> Co-authored-by: jose-donato <jose-donato@users.noreply.github.com>
Building Installers
This guide serves to assist developers construct OpenBB Terminal installers on MacOs and Windows.
Overview
Building an installer takes source code as input and produces deployable software as an output. For MacOS the output is a DMG while for windows it is an EXE. This process utilizes two major modules: Pyinstaller & Create-dmg. Windows additionally recruits the service of NSIS. There are two ways to build an installer: locally or through Github.
Local
In this section we detail the steps necessary to construct an installer locally on a windows machine and mac machine. These steps can be performed on either one of these operating systems so long as they have the OpenBBTerminal repository codebase. This process assumes you already have a working conda environment. Building locally usually takes anywhere from 10-20 minutes.
MacOS Steps
-
brew install create-dmgThis installs create-dmg and it’s dependencies onto your system through brew.
-
poetry install -E installerThis install pyinstaller and it’s dependencies onto your environment.
-
build/pyinstaller/build4mac.shThis runs a shell script that auto-builds the DMG and stores it on the root of your repository.
-
(Optional)
/Full/Path/To/OpenBB\ Terminal/.OpenBB/OpenBBTerminal /Full/Path/To/OpenBBTerminal/OpenBBTerminal/scripts/*.openbb -tThis runs integration tests on your newly created installer.
Windows Steps
-
poetry install -E installerThis install pyinstaller and it’s dependencies onto your environment.
-
pyinstaller build/pyinstaller/terminal.specThis runs a shell script that auto-builds the DMG and stores it on the root of your repository.
-
cp -r .\dist\OpenBBTerminal\ .\build\nsis\app\This copies over the contents of the newly dist folder into the app folder so that NSIS can utilize them.
-
Compile NSIS Scripts
Open NSIS, click on the "Compile NSI scripts", and then drag the
setup.nsifile in build\nsis to the window. This creates the EXE installer. -
(Optional)
Full\Path\To\OpenBBTerminal.exe Full\Path\To\OpenBBTerminal\OpenBBTerminal\scripts -tThis runs integration tests on your newly created installer.
Github
In order to utilize the automated build workflow on the OpenBBTerminal repo, the branch in which you would like to build an installer from must already be a branch on the repo. You can also utilize the automated build workflow on a PR that is from a branch on the repo. You cannot run an automated build on a forked branch or even a PR from a forked branch.
If you are using this method to create an installer, there is a limitation where only one build automation can occur at a time per workflow. For example if there is already an installer being created on the the ‘Intel MacOS Build’ workflow, any subsequent requests for building will be queued. Additionally, the ‘Windows10 Build’ workflow runs relatively slowly because of the size of the EC2 instance it is currently on. As such, if you are interested in a quick build, then I would suggest building locally. Furthermore, building an installer this way also automatically runs integration tests on the installer.
If you run into a circumstance where a requested build is queued for a long period of time, this might mean that the EC2 instance is not connected to github. If something like this arises, please create an issue.
Steps
-
Navigate to
Actions -
Navigate to your desired build system workflow
-
Choose your desired branch & click Run Workflow
-
Download your installer artifact
Each build system produces a single installer which can be subsequently downloaded.
-
Investigate the success/failure of your Build
You can click on the build to delve into the steps it takes to construct an installer. This is where you can investigate the success of integration tests, identify if/where the build failed, etc.
Note: Intel Mac installers are signed and notarized. During this step you can identify if notarization has succeeded or failed and if all of the binaries have been signed in correctly.