Skip to content

Commit

Permalink
Merge pull request #1 from numenta/master
Browse files Browse the repository at this point in the history
Updating master
  • Loading branch information
rcrowder committed Apr 28, 2015
2 parents 9b5802c + 2deb61f commit 7d94f8b
Show file tree
Hide file tree
Showing 34 changed files with 1,039 additions and 2,471 deletions.
15 changes: 15 additions & 0 deletions DEPENDENCIES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Dependencies

This file declares all dependencies nupic.core has on third-party code, including their licenses.

- Capn Proto ([MIT License](https://github.com/sandstorm-io/capnproto/blob/master/LICENSE))
- Boost ([Boost Software License](https://github.com/numenta/nupic.core/blob/master/external/licenses/LICENSE.boost_1_52_0.txt))
- googletest ([googletest License](https://github.com/numenta/nupic.core/blob/master/external/licenses/LICENSE.googletest-1.7.0.txt))
- yaml-cpp ([yaml-cpp License](https://github.com/jbeder/yaml-cpp/blob/master/LICENSE))
- cycle_counter ([License](https://github.com/numenta/nupic.core/blob/master/external/common/include/cycle_counter.hpp))
- zlib ([License](https://github.com/numenta/nupic.core/blob/master/external/licenses/LICENSE.zlib-1.2.3.txt))
- apr ([License](https://github.com/numenta/nupic.core/blob/master/external/licenses/LICENSE.apr-1.2.2.txt))
- apr-util ([License](https://github.com/numenta/nupic.core/blob/master/external/licenses/LICENSE.apr-util-1.2.2.txt))
- freetype ([License](https://github.com/numenta/nupic.core/blob/master/external/licenses/LICENSE.freetype-2.3.4.txt))
- libsvm ([License](https://github.com/numenta/nupic.core/blob/master/external/licenses/LICENSE.libsvm-2.84.txt))
- opencv ([License](https://github.com/numenta/nupic.core/blob/master/external/licenses/LICENSE.opencv-1.0.0.txt))
26 changes: 12 additions & 14 deletions Package.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,23 @@
<metadata>
<id>nupic.core</id>
<version>$version$</version>
<authors>numenta</authors>
<owners>numenta</owners>
<authors>Numenta</authors>
<owners>Numenta</owners>
<licenseUrl>https://github.com/numenta/nupic.core/blob/master/LICENSE.txt</licenseUrl>
<projectUrl>https://github.com/numenta/nupic.core</projectUrl>
<iconUrl>http://numenta.org/</iconUrl>
<iconUrl>http://numenta.org/images/numenta-icon32.png</iconUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>
`NuPIC Core` contains core algorithms for NuPIC (the Numenta Platform for Intelligent Computing), implemented in C++. The source of this project is available at https://github.com/numenta/nupic

For more information, see http://numenta.org or the https://github.com/numenta/nupic/wiki

For information specific to `NuPIC Core`, please refer to:
https://github.com/numenta/nupic.core
https://github.com/numenta/nupic/wiki/NuPIC-Architecture
</description>
<summary>Core algorithms for NuPIC</summary>
<releaseNotes>Pre-release for Windows</releaseNotes>
`NuPIC Core` contains C++ source code for the Numenta Platform for Intelligent Computing (NuPIC).
For more information on Numenta and NuPIC, see http://numenta.org and https://github.com/numenta/nupic/wiki
The main NuPIC project is available at https://github.com/numenta/nupic
For information specific to the `NuPIC Core` library, please refer to:
https://github.com/numenta/nupic.core and https://github.com/numenta/nupic/wiki/NuPIC-Architecture
</description>
<summary>Core algorithms for NuPIC</summary>
<releaseNotes>Windows 64-bit Release library (v140)</releaseNotes>
<copyright>Copyright (C) 2013-2015, Numenta, Inc</copyright>
<tags>AI Intelligence Numenta nupic nupic.core</tags>
<tags>AI Intelligence AGI ML learning Numenta NuPIC nupic.core native HTM Hierarchical Temporal Memory CLA cortical Jeff Hawkins</tags>
<dependencies></dependencies>
</metadata>
</package>
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ This repository contains the C++ source code for the Numenta Platform for Intell
## Build and test NuPIC Core:

Important notes:
* For developers (contributing to NuPIC Core) please follow the [C++ Development Workflow steps](https://github.com/numenta/nupic.core/wiki/C++-Development-Workflow).
* For developers (contributing to NuPIC Core) please follow the [Development Workflow](https://github.com/numenta/nupic.core/wiki/Development-Workflow) steps.
* `$NUPIC_CORE` is the current location of the repository that you downloaded from GitHub.
* Platform specific Readme.md text files exist in some `external/` subdirectories
* See the main [wiki](https://github.com/numenta/nupic.core/wiki) for more build notes

### Using command line

Expand Down
163 changes: 110 additions & 53 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,28 @@
#---------------------------------#

# version format
version: 1.0.{build}
version: 0.3.0.{build}

# TODO: Back to master before merge
# branches to build
branches:
# whitelist
only:
- master

# blacklist
except:
- gh-pages

environment:
matrix:
# Must add CLang, or GCC
# i.e. - COMPILER_FAMILY: GNU
- COMPILER_FAMILY: MSVC
DEPLOY_TO_NUGET: 0
DEPLOY_BUILD: 0

skip_commits:
# Add [av skip] to commit messages to skip AppVeyor building
# Add [ci skip] to skip Travis and AppVeyor building
message: /\[av skip\]/

#---------------------------------#
# environment configuration #
#---------------------------------#
Expand All @@ -26,69 +35,117 @@ os: Visual Studio 2015 CTP
init:
- git config --global core.autocrlf input

# clone directory
clone_folder: c:\projects\nupic-core
clone_depth: 50
# Can't have a shallow clone because the CMake process will be calling into
# git to write the current SHA into the binaries.
shallow_clone: false

environment:
#---------------------------------#
# build configuration #
#---------------------------------#

matrix:
# - COMPILER_FAMILY: GNU
# DEPLOY_BUILD: 0
- COMPILER_FAMILY: MSVC
DEPLOY_BUILD: 1
nuget:
account_feed: true
project_feed: true
disable_publish_on_pr: true # disable publishing of .nupkg artifacts to
# account/project feeds for pull request builds

configuration: Release

install:
- mkdir C:\projects\nupic-core\build\
- mkdir C:\projects\nupic-core\build\scripts
- mkdir C:\projects\nupic-core\build\release
- cd C:\projects\nupic-core\build\scripts
- set REPO_DIR=c:\projects\nupic-core
- set NUPIC_DEPLOYMENT_BUILD=1

- mkdir %REPO_DIR%\build\
- mkdir %REPO_DIR%\build\release
- mkdir %REPO_DIR%\build\scripts
- cd %REPO_DIR%\build\scripts

# Need at least version 3.1.0 for the VS 2015 generator
- ps: Start-FileDownload 'http://www.cmake.org/files/v3.1/cmake-3.1.0-win32-x86.zip'
- ps: Write-Host '7z x cmake-3.1.0-win32-x86.zip'
- ps: Start-Process -FilePath "7z" -ArgumentList "x -y cmake-3.1.0-win32-x86.zip" -Wait -Passthru
- set PATH="C:\projects\nupic-core\build\scripts\cmake-3.1.0-win32-x86\bin";%PATH%
- set PATH="%REPO_DIR%\build\scripts\cmake-3.1.0-win32-x86\bin";%PATH%
- set PATH="C:\Program Files (x86)\MSBuild\14.0\Bin";%PATH%
- echo %PATH%

#---------------------------------#
# build configuration #
#---------------------------------#
- cd %REPO_DIR%\build\scripts
- set EXT_LIBS=%REPO_DIR%\external\windows64\lib
- cmake %REPO_DIR%\src
-G "Visual Studio 14 2015 Win64" -Wno-dev
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=..\Release
-DLIB_STATIC_APR1_LOC=%EXT_LIBS%\apr-1.lib
-DLIB_STATIC_APRUTIL1_LOC=%EXT_LIBS%\aprutil-1.lib
-DLIB_STATIC_YAML_CPP_LOC=%EXT_LIBS%\yaml-cpp.lib
-DLIB_STATIC_YAML_LOC=%EXT_LIBS%\yaml.lib
-DLIB_STATIC_Z_LOC=%EXT_LIBS%\z.lib
-DLIB_STATIC_CAPNP_LOC=%EXT_LIBS%\capnp.lib
-DLIB_STATIC_KJ_LOC=%EXT_LIBS%\kj.lib

build_script:
- cd %REPO_DIR%\build\scripts

# enable patching of AssemblyInfo.* files
assembly_info:
patch: true
file: AssemblyInfo.*
assembly_version: "1.0.{build}"
assembly_file_version: "{version}"
assembly_informational_version: "{version}"
- ps: >-
$root = $env:APPVEYOR_BUILD_FOLDER
configuration: Release
$versionStr = $env:APPVEYOR_BUILD_VERSION
before_build:
- cd C:\projects\nupic-core\build\scripts
- cmake C:\projects\nupic-core\src -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=..\Release -DLIB_STATIC_APR1_LOC=..\..\external\windows64\lib\apr-1.lib -DLIB_STATIC_APRUTIL1_LOC=..\..\external\windows64\lib\aprutil-1.lib -DLIB_STATIC_YAML_CPP_LOC=..\..\external\windows64\lib\yaml-cpp.lib -DLIB_STATIC_YAML_LOC=..\..\external\windows64\lib\yaml.lib -DLIB_STATIC_Z_LOC=..\..\external\windows64\lib\z.lib -DLIB_STATIC_CAPNP_LOC=..\..\external\windows64\lib\capnp.lib -DLIB_STATIC_KJ_LOC=..\..\external\windows64\lib\kj.lib
Write-Host $root
build_script:
- msbuild "C:\projects\nupic-core\build\scripts\gtest.vcxproj" /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- msbuild "C:\projects\nupic-core\build\scripts\nupic_core_solo.vcxproj" /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- msbuild "C:\projects\nupic-core\build\scripts\helloregion.vcxproj" /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- msbuild "C:\projects\nupic-core\build\scripts\prototest.vcxproj" /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- msbuild "C:\projects\nupic-core\build\scripts\py_region_test.vcxproj" /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- msbuild "C:\projects\nupic-core\build\scripts\cpp_region_test.vcxproj" /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- msbuild "C:\projects\nupic-core\build\scripts\unit_tests.vcxproj" /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- msbuild "C:\projects\nupic-core\build\scripts\Install.vcxproj" /p:Configuration=Release /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
Write-Host "Setting Package.nuspec version tag to $versionStr"
after_build:
- cd C:\projects\nupic-core\build\release\bin
- prototest 2>&1
- cpp_region_test 1 2>&1
- unit_tests --gtest_output=xml:${PROJECT_BUILD_ARTIFACTS_DIR}/unit_tests_report.xml 2>&1
- ps: if($env:DEPLOY_BUILD -eq 1) { cd C:\projects\nupic-core\build\release\ }
- ps: if($env:DEPLOY_BUILD -eq 1) { copy C:\projects\nupic-core\Package.nuspec . }
- ps: if($env:DEPLOY_BUILD -eq 1) { nuget pack -version $env:APPVEYOR_BUILD_VERSION }
- ps: if($env:DEPLOY_BUILD -eq 1) { nuget push *.nupkg 30618afb-ecf6-4476-8e61-a5b823ad9892 }
$content = (Get-Content $root\Package.nuspec)
artifacts:
- path: nupic-core\build\release
$content = $content -replace '\$version\$',$versionStr
$content | Out-File $root\Package.nuspec
- set MSBuildLogger="C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- set MSBuildOptions=/v:m /p:Configuration=Release /logger:%MSBuildLogger%

- msbuild %MSBuildOptions% nupic_core.sln
- set MSBuildOptions=/v:q /p:Configuration=Release /logger:%MSBuildLogger%
- msbuild %MSBuildOptions% INSTALL.vcxproj

test: off
deploy: off

after_build:
- cd %REPO_DIR%\build\release
- set PROJECT_BUILD_ARTIFACTS_DIR=%REPO_DIR%\build\artifacts

- ps: >-
if($env:DEPLOY_TO_NUGET -eq 1) {
copy $env:REPO_DIR\Package.nuspec .
nuget pack -version $env:APPVEYOR_BUILD_VERSION
nuget push *.nupkg 30618afb-ecf6-4476-8e61-a5b823ad9892
# NOTE: Push to nuget is here, rather than normal AV deployment
}
# This packages via CMakeList CPack settings (Tar.Gzip for SW upload)
# msbuild $env:MSBuildOptions PACKAGE.vcxproj
7z a -ttar -y -bd nupic_core-$env:APPVEYOR_REPO_COMMIT-windows64.tar .
7z a -tgzip -y -bd ..\..\nupic_core-$env:APPVEYOR_REPO_COMMIT-windows64.tar.gz nupic_core-$env:APPVEYOR_REPO_COMMIT-windows64.tar
artifacts:
- path: '**\*.tar.gz' # find all Gz(ip) packages recursively

deploy:
# Amazon S3 deployment provider settings
- provider: S3
access_key_id:
secure: /9U0mCHp3k1U8Y5CY/kDqwCKG2gqchG/T/UlVWo8SME=
secret_access_key:
secure: /8wO17Gir0XAiecJkHeE3jxOJzvyl0+uWcl7BKCuN0FC795golsL8905VmNuRl1o
bucket: "artifacts.numenta.org"
region: us-west-2
set_public: true
artifact: "nupic_core-$(APPVEYOR_REPO_COMMIT)-windows64.tar.gz"
folder: "numenta/nupic.core"
on:
branch: master
Loading

0 comments on commit 7d94f8b

Please sign in to comment.