Skip to content

Commit

Permalink
Merge pull request #93 from hudson-and-thames/release/0.8.1
Browse files Browse the repository at this point in the history
Release/0.8.1
  • Loading branch information
Michael Struwig authored Jul 25, 2023
2 parents 04984f5 + 71ef75b commit 436521e
Show file tree
Hide file tree
Showing 7 changed files with 86 additions and 36 deletions.
8 changes: 5 additions & 3 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
[bumpversion]
current_version = 0.8.0
commit = True
tag = True
current_version = 0.8.1
commit = False
tag = False
tag_name = {new_version}

[bumpversion:file:setup.cfg]

[bumpversion:file:docs/source/conf.py]

[bumpversion:file:obfuscate.sh]
61 changes: 34 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,37 +14,44 @@
ArbitrageLab is a python library that enables traders who want to exploit mean-reverting portfolios
by providing a complete set of algorithms from the best academic journals.

## Documentation, Example Notebooks and Lecture Videos
For every technique present in the library we not only provide extensive documentation, with both theoretical explanations
and detailed descriptions of available functions, but also supplement the modules with ever-growing array of lecture videos and slides
on the implemented methods.

We want you to be able to use the tools right away. To achieve that, every module comes with a number of example notebooks
which include detailed examples of the usage of the algorithms. Our goal is to show you the whole pipeline, starting from
importing the libraries and ending with strategy performance metrics so you can get the added value from the get-go.

## Licensing options
This project is licensed under an all rights reserved [licence](https://github.com/hudson-and-thames/mlfinlab/blob/master/LICENSE.txt).
## Development

* Business
* Enterprise
### Creating a release

## Community
With the purchase of the library, our clients get access to the Hudson & Thames Slack community, where our engineers and other quants
are always ready to answer your questions.
- Create `release/<version>` branch
- Bump versions throughout source files (we use `bump2version` to do automate this process, TODO: Add instructions)
- Update customer install instructions in documentation source files
- Update release information in changelog in documentation source files
- Open PR from `release` branch into `develop`
- Merge PR once approved
- Obfuscate `develop` using PyArmor (instructions are located elsewhere in this README)
- Test you can install the wheel from a fresh environment
- Merge `develop` into `master`
- Upload the obfuscated wheel to the Hudson & Thames Clients organization
- Tag the commit with the version number
- Write a blog post announcing the release
- Send a newsletter email
- Post on social media

Alternatively, you can email us at: research@hudsonthames.org.
### Bumping version numbers using `bump2version`

<div align="center">
<a>
<img src="https://hudsonthames.org/wp-content/uploads/2021/11/header_github_ht.jpg" width="100%"
style="margin-left: auto; margin-right: auto; display:block;">
</a>
</div>
We use `bump2version` to automatically bump versions throughout source files.

Configuration lives in the `.bumpversion.cfg` file. To run `bump2version`, first install it via `pip`:

``` sh
pip install --upgrade bump2version
```

And then bump the version:

``` sh
bump2version <version-bump-type>
```

## Who is Hudson & Thames?
Hudson and Thames Quantitative Research is a company with the goal of bridging the gap between the advanced research developed in
quantitative finance and its practical application. We have created three premium python libraries so you can effortlessly access the
latest techniques and focus on what matters most: **creating your own winning strategy**.
where `<version-bump-type>` tells you which version to be bumped. The acceptable
values are `major`, `minor` or `patch`, conforming to the semantic versioning
pattern: `major.minor.patch`. For example, `3.2.7` has a major version of 3, a
minor version of 2 and a patch version of 7.

### What was only possible with the help of huge R&D teams is now at your disposal, anywhere, anytime.
1 change: 1 addition & 0 deletions docs/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Changelog
* :feature:`50` Add a distutils command for marbles
* :bug:`58` Fixed test failure on OSX
* :release:`0.8.1 <2022-07-25>`
* :support:`91` Allow user to specify network interface for MAC address

* :release:`0.8.0 <2022-06-28>`
Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
author = 'Hudson & Thames Quantitative Research'

# The full version, including alpha/beta/rc tags
release = '0.8.0'
release = '0.8.1'


# -- General configuration ---------------------------------------------------
Expand Down
6 changes: 3 additions & 3 deletions docs/source/getting_started/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Recommended Setup on Windows

.. code-block::
pip install https://1fed2947109cfffdd6aaf615ea84a82be897c4b9@raw.githubusercontent.com/hudson-and-thames-clients/arbitragelab/master/arbitragelab-0.8.0-py38-none-any.whl
pip install https://1fed2947109cfffdd6aaf615ea84a82be897c4b9@raw.githubusercontent.com/hudson-and-thames-clients/arbitragelab/master/arbitragelab-0.8.1-py38-none-any.whl
#. Make sure your API key is available in your environment under the ``ARBLAB_API_KEY`` environment variable by opening the Command Prompt as an administrator, and running the following command:
Expand Down Expand Up @@ -81,7 +81,7 @@ Recommended Setup on Linux / MacOS

.. code-block::
pip install https://1fed2947109cfffdd6aaf615ea84a82be897c4b9@raw.githubusercontent.com/hudson-and-thames-clients/arbitragelab/master/arbitragelab-0.8.0-py38-none-any.whl
pip install https://1fed2947109cfffdd6aaf615ea84a82be897c4b9@raw.githubusercontent.com/hudson-and-thames-clients/arbitragelab/master/arbitragelab-0.8.1-py38-none-any.whl
#. Make sure your API key is available in your environment under the ``ARBLAB_API_KEY`` environment variable.

Expand Down Expand Up @@ -128,7 +128,7 @@ Google Colab

.. code-block::
pip install https://1fed2947109cfffdd6aaf615ea84a82be897c4b9@raw.githubusercontent.com/hudson-and-thames-clients/arbitragelab/master/arbitragelab-0.8.0-py38-none-any.whl
pip install https://1fed2947109cfffdd6aaf615ea84a82be897c4b9@raw.githubusercontent.com/hudson-and-thames-clients/arbitragelab/master/arbitragelab-0.8.1-py38-none-any.whl
#. Insert the following in the first cell of your notebook in order to register your API key
Expand Down
40 changes: 40 additions & 0 deletions obfuscate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!
# This script builds, unpacks, obfuscates, and then rebuilds the python wheel
# package

# Set the version
# TODO: Do this automatically in the future by reading from setup.cfg (or
# similar)
VERSION=0.8.1

# Start clean
rm -rf dist/

# Build the wheel
python setup.py bdist_wheel

# Unpack the wheel
python -m wheel unpack dist/arbitragelab-$VERSION-py3-none-any.whl --dest dist/

# Generate a PyArmor license
pyarmor-7 licenses c1_version # --expired 2024-02-01 c1_version <-- use this to make license expire

# Obfuscate using PyArmor
pyarmor-7 obfuscate \
--with-license licenses/c1_version/license.lic \
--platform windows.x86_64 \
--platform linux.x86_64 \
--platform darwin.x86_64 \
--platform darwin.aarch64 \
--platform linux.x86 \
--obf-code=0 \
--recursive \
--output dist/arbitragelab-$VERSION/arbitragelab arbitragelab/__init__.py

# Repack wheel
python -m wheel pack dist/arbitragelab-$VERSION --dest dist

# Clean-up
rm -rf dist/arbitragelab-$VERSION
rm -rf build
rm -rf licenses
4 changes: 2 additions & 2 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = arbitragelab
version = 0.8.0
version = 0.8.1
author = Hudson and Thames Quantitative Research
author_email = research@hudsonthames.org
licence = All Rights Reserved
Expand Down Expand Up @@ -50,7 +50,7 @@ install_requires =
cvxpy==1.3.1
cython==0.29.28
dash==2.10.2
getmac>=0.8.0, <1.0.0
getmac>=0.8.1, <1.0.0
jupyter-dash>=0.2.0, <1.0.0
keras==2.12.0
lxml>=4.9.1
Expand Down

0 comments on commit 436521e

Please sign in to comment.