Skip to content
This repository has been archived by the owner on Sep 1, 2023. It is now read-only.

Commit

Permalink
Merge pull request #51 from rhyolight/build_extensions
Browse files Browse the repository at this point in the history
Merges in master with 0.1 README
  • Loading branch information
David Ragazzi committed Jan 13, 2015
2 parents 43be75a + 0f279e1 commit 53de635
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 257 deletions.
177 changes: 6 additions & 171 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,190 +1,25 @@
# Changelog

## 0.0.38

* Removing leftover '-dev' from version numbers.
* remove -dirvtable as it can lead to MEMleaks
* review SWIG flags
* Revert "swig optimization flags - threads"
* Revert "enable swig optimization -builtin"
* enable swig optimization -builtin
* swig optimization flags - threads

## 0.0.37

* added AWS keys for linux wheel upload to S3 on release

## 0.0.36
## 0.1.0

* Fixed bad path to wheel s3 upload script
* Cleaned up README and CHANGELOG for 0.1 release.

## 0.0.35
## 0.0.38

* SWIG optimizations.
* Script to deploy linux wheel to S3 on release.

## 0.0.34

* Publishing select artifacts to pypi on release.
* Adding empty __init__.py to swarming resource dir so it get's included in linux wheels.

## 0.0.33

* Changed dev version pattern to match what python wants.
* Cleaned up setup and manifest for proper sdists.

## 0.0.32

* Faking extensions to get platform-specific wheels.

## 0.0.31

* Manual wheel filename change for linux upload to pypi.

## 0.0.30

* Creating platform dependent linux wheel file for pypi upload.

## 0.0.29

* Updated OS X wheel filename for pypi.

## 0.0.28

* Only release on tags.

## 0.0.27

* Adding back test runs.

## 0.0.26

* Split release logic into osx/linux scripts
* Adds core capnp files to bindings.
* Remove HtmTest and call it from nupic.core binaries
* Added core capnp files to bindings.
* GCE now encodes altitude using a 3D coordinate system.

## 0.0.25

* Removing OS X release and using Linux GCC release only.

## 0.0.24

* Trying pip install w/o sudo

## 0.0.23

* Manually upgrading setuptools before pip upgrade before release

* anomaly mode (pure, likelihood, weighted) can be specified on OPF for swarming.

## 0.0.22

* Manually upgrading pip on OS X.

## 0.0.21

* Trying release w/o pip, setuptools update

## 0.0.20

* Debugging pip

## 0.0.19


## 0.0.18

* Expanded one pip call into 3 for twine/wheel dependencies. Fixed a bug in wheel filename usage.

## 0.0.17

* Installing pip==1.5.6 for twine explicitly

## 0.0.16

* Triggering a build for next release version

## 0.0.15

* Upgrading to pip==1.5.1 explicitly for wheels dependency before release

## 0.0.14

* Reverting to 0.0.14-dev... sorry.
* Botched 0.0.14 release, moving manually to 0.0.15-dev
* Continuing work on 0.0.14-dev.
* Release 0.0.13.
* Continuing work on 0.0.13-dev.
* Release 0.0.13.
* Using a different pip upgrade method.

## 0.0.13

* Upgrade pip before release with wheels. Only change platform name in wheel file if on OSX because platform-specific binaries for Linux are unsupported.

## 0.0.13

* Using a different pip upgrade method.
* Continuing work on 0.0.13-dev.
* Release 0.0.13.
* Upgrade pip before release with wheels. Only change platform name in wheel file if on OSX because platform-specific binaries for Linux are unsupported.

## 0.0.13

* Upgrade pip before release with wheels. Only change platform name in wheel file if on OSX because platform-specific binaries for Linux are unsupported.

## 0.0.12

* Installing python wheel manually.

## 0.0.11

* Fixed bug in release condition.

## 0.0.10

* Trying a custom deployment configuration for better control of pypi deployment files.

## 0.0.9

* Fixed missing `__version__` number problem.
* Distributing `*.i` files from `nupic.bindings` in binary packages.

## 0.0.8

* Updated pypi development status to "Stable", otherwise pypi rejects it.

## 0.0.7

* Updates test entry points to pure python. README instructions for running tests were updated.
* Missing configuration files are no longer ignored. A runtime exception is raised immediately when an expected configuration file is not found.

## 0.0.6

* Updated pypi encrypted password because of authenitcation failure.
* Only installing wheel on iterative builds, because Travis-CI automatically installs it if "bdist_wheel" is specified in deploy provider directive.

## 0.0.5

* Installing doxygen before doc-build for pypi.

## 0.0.4

* Temporarily removing pycapnp dependency to help current release situation.

## 0.0.3

* Updated deployment logic to account for both deployment scenarios (iterative and release).

## 0.0.2

* Configured pypi deployment on all branches with tags.

## 0.0.1

* Added pypi deployment configuration for binary releases.
* Parsing python requirements in setuptools so they are included within published packages (working toward releases).
* Setting up python wheels packaging and upload to S3 for future distribution.
* Implement logic for reusing segments, to enforce a fixed-size connectivity (nupic.core).
* Added CHANGELOG.md to track changes for versions.
* Added version.txt file to root, read by setuptools to establish version.
* Implemented logic for reusing segments, to enforce a fixed-size connectivity (nupic.core).
109 changes: 26 additions & 83 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,107 +2,50 @@

## Numenta Platform for Intelligent Computing

* Build: [![Build Status](https://travis-ci.org/numenta/nupic.png?branch=master)](https://travis-ci.org/numenta/nupic)
* Unit Test Coverage: [![Coverage Status](https://coveralls.io/repos/numenta/nupic/badge.png?branch=master)](https://coveralls.io/r/numenta/nupic?branch=master)
* [Regression Tests](https://github.com/numenta/nupic.regression): [![Build Status](https://travis-ci.org/numenta/nupic.regression.svg?branch=master)](https://travis-ci.org/numenta/nupic.regression)

NuPIC is a library that provides the building blocks for online prediction and anomaly detection systems. The library contains the [Cortical Learning Algorithm (CLA)](https://github.com/numenta/nupic/wiki/Cortical-Learning-Algorithm), but also the [Online Prediction Framework (OPF)] (https://github.com/numenta/nupic/wiki/Online-Prediction-Framework) that allows clients to build prediction systems out of encoders, models, and metrics.
The Numenta Platform for Intelligent Computing (**NuPIC**) is a machine intelligence platform that implements the [HTM learning algorithms](http://numenta.com/learn/hierarchical-temporal-memory-white-paper.html). HTM is a detailed computational theory of the neocortex. At the core of HTM are time-based continuous learning algorithms that store and recall spatial and temporal patterns. NuPIC is suited to a variety of problems, particularly anomaly detection and prediction of streaming data sources.

For more information, see [numenta.org](http://numenta.org) or the [NuPIC wiki](https://github.com/numenta/nupic/wiki).

## Installation

For all installation options, see the [Installing and Building NuPIC](https://github.com/numenta/nupic/wiki/Installing-and-Building-NuPIC) wiki page.

### Currently supported platforms:

* 64-bit Linux
* Mac OS X
* [VM images](https://github.com/numenta/nupic/wiki/Running-Nupic-in-a-Virtual-Machine)

### Dependencies:

* Python 2.7 (with development headers)
* Compiler toolchain with support for C++11 such as GCC >= 4.7 (Linux-only), or llvm/clang
* Make
* CMake

The _python_ dependencies are included in platform-specific repositories for convenience. Installing from these repositories is not required if the dependencies defined above have been manually installed or already exist on your system.

* [nupic-linux64](https://github.com/numenta/nupic-linux64) for 64-bit Linux systems
* [nupic-darwin64](https://github.com/numenta/nupic-darwin64) for 64-bit OS X systems

Complete set of python requirements are documented in [requirements.txt](/external/common/requirements.txt),
compatible with [pip](http://www.pip-installer.org/en/latest/cookbook.html#requirements-files):

### Installing Python Dependencies

pip install -r external/common/requirements.txt

> _Note_: If using pip 1.5 or later:
pip install --allow-all-external --allow-unverified PIL --allow-unverified psutil -r external/common/requirements.txt

> _Note_: If you get a "permission denied" error when using pip, you may add the `--user` flag to install to a location in your home directory, which should resolve any permissions issues. Doing this, you may need to add this location to your PATH and PYTHONPATH. Alternatively, you can run pip with `sudo`.
### Installing NuPIC

Move into the NuPIC installation directory and run:

python setup.py install

> _Note_: If you get a "permission denied" error when using this, you may add the `--user` flag to install to a location in your home directory, which should resolve any permissions issues. Doing this, you may need to add this location to your PATH and PYTHONPATH. Alternatively, you can run this with `sudo`.
If you are installing on Mac OS X, you should add the instruction `ARCHFLAGS="-arch x86_64"` before the python call:

ARCHFLAGS="-arch x86_64" python setup.py install

Once it is installed, you can import NuPIC library to your python script using:

import nupic

For examples, tutorials, and screencasts about using NuPIC, see the [Using NuPIC](https://github.com/numenta/nupic/wiki/Using-NuPIC) wiki page.
## Installing NuPIC 0.1.0

## Developer instructions
NuPIC binaries are available for:

If you want to develop, debug, or simply test NuPIC, [clone](https://github.com/numenta/nupic/wiki/Installing-and-Building-NuPIC#for-potential-contributors) it and follow the instructions below.
- Linux x86 64b
- OS X 10.9
- OS X 10.10

### Using command line
#### Dependencies

> This assumes the `NUPIC` environment variable is set to the directory where the NuPIC source code exists.
- [Python 2.7 & development headers](https://docs.python.org/devguide/setup.html#build-dependencies)
- [pip](https://pypi.python.org/pypi/pip)
- [wheel](http://pythonwheels.com)

cd $NUPIC
python setup.py build
python setup.py develop
### Mac OS X

#### To run the tests:
pip install nupic

# Python HTM Network API tests
$NUPIC/bin/py_region_test
### Linux

# Python unit tests
$NUPIC/scripts/run_nupic_tests -u --coverage
> The Linux wheel file is hosted on AWS S3 instead of on the standard PyPi servers because [Linux wheels are not allowed to be uploaded to pypi](https://bitbucket.org/pypa/pypi-metadata-formats/issue/15/enhance-the-platform-tag-definition-for) yet.
# Python integration tests
$NUPIC/scripts/run_nupic_tests -i --coverage
pip install https://s3-us-west-2.amazonaws.com/artifacts.numenta.org/numenta/nupic/releases/nupic-0.1.0-cp27-none-linux_x86_64.whl

# Python swarming tests (requires mysql)
$NUPIC/scripts/run_nupic_tests -w --coverage

# Run all tests!
$NUPIC/scripts/run_nupic_tests --all --coverage
### _Having problems?_

### Using an IDE
- You may need to use the `--user` flag for the commands above to install in a non-system location (depends on your environment). Alternatively, you can execute the `pip` commands with `sudo` (not recommended).
- You may need to add the `--use-wheel` option if you have an older pip version (wheels are now the default binary package format for pip).

See our [Development Tips](https://github.com/numenta/nupic/wiki/Development-Tips) wiki page for details.
For any other installation issues, please see our [FAQ](https://github.com/numenta/nupic/wiki/FAQ) or email the [nupic-discuss](http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org) mailing list.

#### To run the tests:
### Building NuPIC From Source Code

* Run any [test](#run-the-tests) project from your IDE (check `output` panel to see the results).
For details about checking out this repository and building in your local environment, see the [Installing and Building NuPIC](https://github.com/numenta/nupic/wiki/Installing-and-Building-NuPIC) wiki page.

For more tips, please see [Development-Tips](https://github.com/numenta/nupic/wiki/Development-Tips)
## How to Contribute:

### Contributing to NuPIC:
Please see the [Contributing to NuPIC](https://github.com/numenta/nupic/wiki/Contributing-to-NuPIC) wiki page.

* Please see the [Contributing to NuPIC wiki](https://github.com/numenta/nupic/wiki/Contributing-to-NuPIC).
* Details on the dependency on `nupic.core` [here](https://github.com/numenta/nupic/wiki/Installing-and-Building-NuPIC#relationship-with-nupiccore).
* Build: [![Build Status](https://travis-ci.org/numenta/nupic.png?branch=master)](https://travis-ci.org/numenta/nupic)
* Unit Test Coverage: [![Coverage Status](https://coveralls.io/repos/numenta/nupic/badge.png?branch=master)](https://coveralls.io/r/numenta/nupic?branch=master)
* [Regression Tests](https://github.com/numenta/nupic.regression): [![Build Status](https://travis-ci.org/numenta/nupic.regression.svg?branch=master)](https://travis-ci.org/numenta/nupic.regression)
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.0.39.dev0
0.1.1.dev0
2 changes: 1 addition & 1 deletion docs/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = NuPIC
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 0.0.39.dev0
PROJECT_NUMBER = 0.1.1.dev0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 1 addition & 1 deletion nupic/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
#
# http://numenta.org/licenses/
# ----------------------------------------------------------------------
__version__ = "0.0.39.dev0"
__version__ = "0.1.1.dev0"

0 comments on commit 53de635

Please sign in to comment.