Skip to content

wheels for windows #50

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 183 commits into from
May 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
ecb5710
try and see
pzhokhov May 3, 2019
90fae4f
set language:shell in .travis.yml
pzhokhov May 3, 2019
a9db0c5
missing virtualenv on windows?
pzhokhov May 3, 2019
a31de33
install python on windows
pzhokhov May 3, 2019
7e69db2
debugging choco install problem
pzhokhov May 3, 2019
8f7c884
debugging choco install problem
pzhokhov May 4, 2019
c170ddb
-y
pzhokhov May 10, 2019
65f6488
add --force to python install in windows?
pzhokhov May 10, 2019
67a7bf8
move choco install python to before_install
pzhokhov May 10, 2019
76e385b
pip -> pip3
pzhokhov May 10, 2019
69d5dc3
block the rest of the builds for faster iterations
pzhokhov May 10, 2019
782bdc2
refreshenv after python installation
pzhokhov May 10, 2019
a61174b
setx path
pzhokhov May 10, 2019
2ca8a3f
exports
pzhokhov May 10, 2019
c5d2532
massaging windows env variables
pzhokhov May 11, 2019
6fb9dd2
massaging windows env variables
pzhokhov May 11, 2019
c5c6308
massaging windows env variables
pzhokhov May 11, 2019
5f91d79
massaging windows env variables
pzhokhov May 11, 2019
116e66f
rearrange PATH env variable
pzhokhov May 11, 2019
430b0f7
rearrange PATH env variable
pzhokhov May 11, 2019
3bc5dc1
rearrange PATH env variable
pzhokhov May 11, 2019
5a6c94b
add scripts subfolder to path
pzhokhov May 13, 2019
1f271b3
try building a wheel?
pzhokhov May 13, 2019
799132e
install make
pzhokhov May 13, 2019
ad7312d
install make
pzhokhov May 13, 2019
f51b692
install make
pzhokhov May 14, 2019
f4813da
windows-compatible dir names in setup.py
pzhokhov May 14, 2019
f991455
fix syntax
pzhokhov May 15, 2019
e0a2be0
fix directory name in setup.py
pzhokhov May 15, 2019
f624516
install without -e
pzhokhov May 15, 2019
cc4b6e0
debugging build
pzhokhov May 15, 2019
0090cf3
fixing build
pzhokhov May 15, 2019
00a35b6
fixing build
pzhokhov May 15, 2019
2a5bc35
figure out what's wrong with directories
pzhokhov May 15, 2019
53ccb8a
why does build directory not have a makefile
pzhokhov May 15, 2019
9749166
use cmake for the final stage of the build (instead of make)
pzhokhov May 16, 2019
a5b2588
remove Wunused warning option
pzhokhov May 16, 2019
113a612
build before pip install to provide verbose output
pzhokhov May 16, 2019
0cca033
reduce warning verbosity
pzhokhov May 16, 2019
b82a541
remove unix and posix settings files for windows build
pzhokhov May 16, 2019
a015d72
download zlib
pzhokhov May 16, 2019
4debda2
try to execute installzlib
pzhokhov May 16, 2019
914e7bf
display error log of zlibinstaller
pzhokhov May 16, 2019
5ea39f4
compile zlib manually
pzhokhov May 16, 2019
8f68cba
fix zlib installation
pzhokhov May 16, 2019
d0136e5
include zlib compilation into the entirety of windows build
pzhokhov May 16, 2019
214230b
include_directories
pzhokhov May 16, 2019
65781d5
zlib in src dir
pzhokhov May 16, 2019
59e842d
shuffle stuff around
pzhokhov May 16, 2019
f885b8b
shuffle stuff
pzhokhov May 16, 2019
1df81f8
debugging build failure
pzhokhov May 16, 2019
8db24c7
fix include directory path
pzhokhov May 16, 2019
1b34b51
include <algorithm>
pzhokhov May 16, 2019
d4863ca
more include <algorithm>
pzhokhov May 16, 2019
5003fe1
stuff
pzhokhov May 16, 2019
31ee39e
stuff
pzhokhov May 16, 2019
d0f5ae8
fixing zlib build instructions
pzhokhov May 16, 2019
62fa2f3
fix
pzhokhov May 16, 2019
06c65df
pre-build for higher log verbosity
pzhokhov May 16, 2019
587da04
fixes
pzhokhov May 16, 2019
25112ee
add shlwapi to link libraries
pzhokhov May 16, 2019
ef59bae
add shlwapi to link libraries
pzhokhov May 16, 2019
bd8ff14
fixing CMakeLists.txt
pzhokhov May 16, 2019
ea2f80f
stuff
pzhokhov May 16, 2019
d86d94c
.travis.yml
pzhokhov May 16, 2019
1f176d6
move the resulting dll
pzhokhov May 16, 2019
308716e
stuff
pzhokhov May 16, 2019
b21b63e
fix build failure
pzhokhov May 16, 2019
ab84900
fixing build failure
pzhokhov May 16, 2019
2622909
fixing build failurev
pzhokhov May 16, 2019
9411b94
try to use 64 bit platform?
pzhokhov May 17, 2019
ae773fe
visibility of symbols exported into a dll
pzhokhov May 17, 2019
e6e919b
install wheel package
pzhokhov May 17, 2019
d53f5a6
non -e build
pzhokhov May 17, 2019
9f5b5aa
move files around
pzhokhov May 17, 2019
466dc35
feeling lucky
pzhokhov May 17, 2019
6c374a2
test the wheel
pzhokhov May 17, 2019
7eb3fee
test the wheel
pzhokhov May 17, 2019
2801aa6
fix travis.yml
pzhokhov May 17, 2019
740d8cc
try installing a wheel before testing instead of pip installing the d…
pzhokhov May 17, 2019
611fc20
add __init__.py to tests submodule
pzhokhov May 17, 2019
494ba50
fix travis.py
pzhokhov May 17, 2019
5ce9a1d
trying to run tests
pzhokhov May 18, 2019
ad2d4e3
include dll into package manifest
pzhokhov May 18, 2019
e131e76
skip tests to deploy to pypi (to inspect the wheel)
pzhokhov May 18, 2019
105c0f9
fix silly typo in the makefile
pzhokhov May 18, 2019
9eb4729
rename installzlib1.bat into installzlib.bat
pzhokhov May 18, 2019
237d2ad
forego test steps
pzhokhov May 18, 2019
8f1ef0c
only upload atari_py files
pzhokhov May 18, 2019
8c8d69c
try encrypted password
pzhokhov May 18, 2019
98c2257
fix the branch name
pzhokhov May 19, 2019
e0bb9a1
try encrypted env vars?
pzhokhov May 20, 2019
48449c7
dummy commit to trigger build
pzhokhov May 20, 2019
5d77cb4
comment out secure var
pzhokhov May 20, 2019
2df0ff8
dummy commit to trigger build
pzhokhov May 21, 2019
4b93a27
fix .travis.yml
pzhokhov May 21, 2019
371da8d
verbose upload to debug
pzhokhov May 21, 2019
0a196ca
uncommend secret env variable
pzhokhov May 21, 2019
4ee7d28
try travis deploy again
pzhokhov May 21, 2019
54b79df
fix deploy section in .travis.yml
pzhokhov May 21, 2019
98295be
deploy to s3?
pzhokhov May 22, 2019
d04ac91
massaging travis.yml
pzhokhov May 22, 2019
48f1968
skip cleanup?
pzhokhov May 22, 2019
808ae48
debugging build
pzhokhov May 22, 2019
fd2b71e
trying the fix
pzhokhov May 22, 2019
6a94537
stuff
pzhokhov May 22, 2019
0be2d3d
restore build
pzhokhov May 22, 2019
09a5316
debugging
pzhokhov May 22, 2019
e5b844b
try no globs in package data
pzhokhov May 22, 2019
755d24c
extra verbosity to pip wheel
pzhokhov May 22, 2019
76e6a0f
fixing build
pzhokhov May 22, 2019
d62df19
set include_package_data=True in setup.py
pzhokhov May 22, 2019
9c9c87a
typo
pzhokhov May 22, 2019
0aa813d
stuff
pzhokhov May 22, 2019
7d35857
getting closer to the problem...
pzhokhov May 22, 2019
c4dc336
deploy to s3 for unzipping / debugging
pzhokhov May 22, 2019
a548d45
do not call make in setup.py
pzhokhov May 22, 2019
d3acb98
debugging packaging
pzhokhov May 22, 2019
4e94d91
include tests into the package_data.txt
pzhokhov May 23, 2019
23b197c
re-enable tests
pzhokhov May 23, 2019
9c976c7
cleaning up
pzhokhov May 23, 2019
38f1295
more cleanups
pzhokhov May 23, 2019
030ffaf
deploy only on tags
pzhokhov May 23, 2019
edcb458
debugging
pzhokhov May 23, 2019
60acde7
multiple python version
pzhokhov May 23, 2019
d2d0a1c
move build steps into a separate script
pzhokhov May 23, 2019
3b10c2b
proper script call
pzhokhov May 23, 2019
3e896cd
build matrix
pzhokhov May 23, 2019
9743bc3
fix env variable in py build
pzhokhov May 23, 2019
be9b40e
make multibuild.sh executable
pzhokhov May 23, 2019
bbd3d75
enable all branches
pzhokhov May 23, 2019
ac0da21
fix multiline
pzhokhov May 23, 2019
9f6fa40
massage setup.py
pzhokhov May 23, 2019
4f55abc
silly patch to setup.py
pzhokhov May 23, 2019
de52688
exclude py35
pzhokhov May 23, 2019
8282d66
fix multibuild.sh script
pzhokhov May 23, 2019
4df7ea4
re-enable linux and osx builds
pzhokhov May 23, 2019
d6158e9
do not use make
pzhokhov May 23, 2019
32404a5
do not use make, do not install make on windows
pzhokhov May 23, 2019
57c0a62
fix cmake --build call in setup.py
pzhokhov May 23, 2019
b73da54
include python 3.5 for linux and osx
pzhokhov May 23, 2019
1a14a27
fixing setup.py for posix builds
pzhokhov May 23, 2019
6e52107
remove tests before building the wheel?
pzhokhov May 23, 2019
53d3529
merge master (and some small cleanups
pzhokhov May 23, 2019
35d1c1a
cleanups
pzhokhov May 23, 2019
eb6fe8f
cleanups
pzhokhov May 23, 2019
6a063ba
more cleanups
pzhokhov May 23, 2019
624be67
nicer or switch in build.sh
pzhokhov May 23, 2019
c8ef408
try build stages
pzhokhov May 23, 2019
988dd0b
reorg .travis.yml
pzhokhov May 23, 2019
50a5071
reorg .travis.yml
pzhokhov May 23, 2019
691e775
reorg .travis.yml
pzhokhov May 23, 2019
22340f7
reorg .travis.yml
pzhokhov May 23, 2019
c237a17
reorg .travis.yml
pzhokhov May 23, 2019
cb166cf
reorg .travis.yml
pzhokhov May 23, 2019
1272d3d
reorg .travis.yml
pzhokhov May 23, 2019
4c268a5
reorg .travis.yml
pzhokhov May 23, 2019
0e65c31
reorg .travis.yml
pzhokhov May 23, 2019
0fe8518
reorg .travis.yml
pzhokhov May 23, 2019
7595d08
reorg .travis.yml
pzhokhov May 23, 2019
cb9f4ab
reorg .travis.yml
pzhokhov May 23, 2019
235e06f
reorg .travis.yml
pzhokhov May 23, 2019
fffd5dc
reorg .travis.yml
pzhokhov May 23, 2019
fcce203
reorg .travis.yml
pzhokhov May 23, 2019
9d469db
reorg .travis.yml
pzhokhov May 23, 2019
23ffc41
pull data from s3, deploy to pypi darn you travis
pzhokhov May 23, 2019
cef54ac
use virtualenv in deployment script
pzhokhov May 23, 2019
5074770
fake the tag; also fix the script download part
pzhokhov May 23, 2019
ee23247
try linux builds only for faster iteration
pzhokhov May 23, 2019
aefa9e8
restore tag to 0.1.11
pzhokhov May 23, 2019
1fadb21
use folders on s3 for different versions
pzhokhov May 24, 2019
e333e20
bump version to 0.1.13
pzhokhov May 24, 2019
d52f563
minifixes, bump version to 0.1.14
pzhokhov May 24, 2019
c530d64
add explanations to the eclectic travis.yml
pzhokhov May 24, 2019
96c143a
fudge the tag
pzhokhov May 24, 2019
772c265
fixing download from s3
pzhokhov May 24, 2019
d853084
debugging s3 download SignatureDoesNotMatch error
pzhokhov May 24, 2019
79bcec1
wheels
pzhokhov May 24, 2019
c950fb3
typo
pzhokhov May 24, 2019
bc005d0
clean up CMakeLists.txt
pzhokhov May 24, 2019
7f6e86a
more typos
pzhokhov May 24, 2019
e389a83
deploy only existing files
pzhokhov May 24, 2019
d8b3063
re-enable all stuff
pzhokhov May 24, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 39 additions & 49 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,52 +1,42 @@
language: sh
script: ./build.sh
os:
- linux
- windows
- osx
env:
global:
- REPO_DIR=.
- BUILD_COMMIT=$TRAVIS_COMMIT
- PLAT=x86_64

install:
- git clone https://github.com/matthew-brett/multibuild && cd multibuild && git checkout 254ad28 && cd ..
- . multibuild/common_utils.sh
- . multibuild/travis_steps.sh
- before_install
- build_wheel $REPO_DIR $PLAT
script:
- install_run $PLAT

after_success:
- ./deploy.sh


- PY_VER=3.6
- PY_VER=3.7
- PY_VER=3.5
osx_image: xcode8.3
matrix:
include:
exclude:
os: windows
env: PY_VER=3.5
deploy:
provider: s3
access_key_id: AKIAIR7X3BP26ZWUNFPA
skip_cleanup: true
secret_access_key:
secure: wUNE0AxIZ3rQVO6pUXQyfOVI4UN/4bgTb+y8566pFYQ68mzZEW3XNl96n8HtkHGYuJGnNGWGbGKcp2a1MCoiyePR+NnmoUxCledUffU+s88Sxg9Qj7DW8JOLImocNXG+8y2OeC+QjmrkB109inM0c2T+ESeLZi9yALaLSxVEKToXB1EBDtOohjelNcA8xoP9yb4H6yoT01XLNkno2o9fmKc+ZXtLi9xZVpMX1aH0Hs2pchm0WmE7d93XVD0K9ZM/2q1yT8ojJngKAbpJeJQSSSJStNpFBIp7hc+2slFP9/QOCPJQZQuIjJkHj2iXEMgIrerbFgl/n5konQiZFHwDZbmubQR8cfVOmr/+By8n9h13rzL7OpqCx84f4QuaRifRY6vMnu0nqbo7M7vkW0fEzcMOEpn1fcL0ulOOFc9Oedyvn08flK2M3DX10rglncK+MkGdWjH23K/1PLNOCIdNO8kWO+yvuCbdx1oJzMcpr5w52Sh+pWt4xXk1TQvXtzPVxLxf+mGumHvU1wSFW2IbBcLIv3C/BeqeNbyRNIrXT2rfaOzDj8LEXOq3IIdfgKmHx2a4Iz3V3S2a5vJiXeBtr9G4LtH/k9eRRyr6CKN+HqSZSRnwL0W8i3u7QvcP6wSF91lJCpAJpsuu5faE3RKfW/hUd/gsmo1f1tcJZEaCkzo=
bucket: games-wheels
local-dir: wheelhouse
upload-dir: atari-py/$TRAVIS_TAG
acl: public_read
on:
repo: openai/atari-py
tags: true

- os: linux
env:
- MB_PYTHON_VERSION=3.5

- os: linux
env:
- MB_PYTHON_VERSION=3.6

- os: linux
env:
- MB_PYTHON_VERSION=3.7


- os: osx
osx_image: xcode8.3
env:
- MB_PYTHON_VERSION=3.5
- DEPLOY_SDIST=true

- os: osx
osx_image: xcode8.3
env:
- MB_PYTHON_VERSION=3.6

- os: osx
osx_image: xcode8.3
env:
- MB_PYTHON_VERSION=3.7


jobs:
# this extra stage is due to Travis bug that prevets deploying to pypi from windows or usage of
# secret env variables on windows. Instead of doing either, we are deploying to s3 first, and
# then using a separate stage to download files from s3 and deploy them to pypi.
include:
- stage: "Deploy to PyPI"
script: ./deploy_to_pypi.sh
env:
- TWINE_USERNAME=peterz-openai
- AWS_ACCESS_KEY_ID=AKIAIR7X3BP26ZWUNFPA
- AWS_DEFAULT_REGION=us-west-2
- secure: "i0qbR3wG2OvJWVBKnAVkgtNIPPxoNQz8KBn+c9RBAWZw0XDsjkUwsDZMTXzll1Do24xLb9FVti2iq7GsNvHcCzltSGOLv6UDm2ywJc4Bz/Fyho27A0kYGe6W/FwtEt+VTkx4z0+7tNOb4KVhs26OmIGdKMJwNibnU86rRtzf05Iq7xS+8Mi/9j09oC9ZXACzOFTmbQe98Gq93ROo+7wfpCVJip9QigJTSZhE7axBEtpXlZ5//T2Eo2bxbJs5f9tNiMrLRy8NMYq1B/he9HevpxlqE15+wJs9exaDClWLtsb7trFKSnmrqtUeXI3aUIQwLgQfaYJlvvmSBUtJxxyk5QHLn3+0u6TCA9ZbHaEElXSLrcexjSEp37+HXH0Z69JzTYn0pVX4IvrmuLhgg4X3z7Ys3SyIe8Tq39QubQ8TWM8bzBN5H0VYObY35BmLl68k2AF61Rq0obJS48ekguzf88DwI9UzxYm8LnlsgpyeX1iLJ6Sy9xdP3S/5onP1+bzaDZ7JNMabNmJ22ZjqPyBp+mUyBjfab9ouDS07CNAPmyQV6VWSL8EaD9QawWB0khgKoen+NNFGeivEIgCRanP9Rg7mpw7Px9elwbl2hXGco7EGdZFPV89uHWEhL2nHUmxVjaRUNlSXjDrwI6f8vlMfbHU5PskxlrG047F/is3gQ00="
- secure: "NZRMo04bBX2X7phT29rQKDklPFVbnqMoUAhrVFjTLxvAqsQdericyalMjXsE79IA02uZEsHfS45P9YXzgHC4uCZI6694kOZfhmBtQ0FxeJ5M3Zx6IRyMhf92rk7F/DRcRBe78JIBkgTXDJCyQoEX1/RIYIz723BSzRGosOJa1xUub8MQ7Rl3TF54j9JAshBNBTpIw1tORWo3K1A8FucQNgI3N7DucWhg+C3D7cxZok5xwz7FoXHt+Xv7wFvCETaNIsmu/3EI15K9Y43XXQ2rBc46g41SDX7f1rwVNl0D8kStjyDdhdQODDdKPMe3dl6Lckz0qMTaoTUnWL91L+qBAFHsC2imWJVNGL+/4iyTRQAsq/hl7GYNcesfm7kCXNcCjSeyx3ZkOOgZ0okFKWZK51RuKjlCcKgDOMSInCW8vR2rRK699wAfePr38t5TO5E2uQ+hF52NMbzDKw9C6azX4UaWuKPio8oxseOWfLKSYZTCVirBikLM8m4LABCZyKiMlTR1SdzxQmrLAxgnWaD+QYY4SoN4fButDjONOARFKF5e3njzVQo2nHmXb1EATOmnQ4pjKcJezSccIcmYeWpPskXWSmJbWi81zwHz/AyqH6fEnAWmVj0RKjrBfyCZCtEGBikQ9KTJuVHupwNT17CyZKUxtxBpYOpFnk+mLLom3Ak="
17 changes: 0 additions & 17 deletions Makefile

This file was deleted.

6 changes: 4 additions & 2 deletions atari_py/ale_interface/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ option(BUILD_CPP_LIB "Build C++ Shared Library" OFF)
option(BUILD_CLI "Build ALE Command Line Interface" OFF)
option(BUILD_C_LIB "Build ALE C Library (needed for Python interface)" ON)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wunused -fPIC -O3 -fomit-frame-pointer -D__STDC_CONSTANT_MACROS")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -O3 -fomit-frame-pointer -D__STDC_CONSTANT_MACROS")
add_definitions(-DHAVE_INTTYPES)
set(LINK_LIBS z)

Expand Down Expand Up @@ -55,7 +55,8 @@ if(APPLE)
set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
endif()

if(WINDOWS OR MINGW)
if(WIN32 OR MINGW)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
list(APPEND SOURCES ${SOURCE_DIR}/os_dependent/SettingsWin32.cxx ${SOURCE_DIR}/os_dependent/OSystemWin32.cxx ${SOURCE_DIR}/os_dependent/FSNodeWin32.cxx)
else()
list(APPEND SOURCES ${SOURCE_DIR}/os_dependent/SettingsUNIX.cxx ${SOURCE_DIR}/os_dependent/OSystemUNIX.cxx ${SOURCE_DIR}/os_dependent/FSNodePOSIX.cxx)
Expand Down Expand Up @@ -112,6 +113,7 @@ endif(UNIX)

include_directories(
${SOURCE_DIR}
${SOURCE_DIR}/zlib
${SOURCE_DIR}/common
${SOURCE_DIR}/controllers
${SOURCE_DIR}/emucore
Expand Down
7 changes: 0 additions & 7 deletions atari_py/ale_interface/Makefile

This file was deleted.

1 change: 1 addition & 0 deletions atari_py/ale_interface/src/games/RomSettings.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#ifndef __ROMSETTINGS_HPP__
#define __ROMSETTINGS_HPP__

#include <algorithm>
#include "../common/Constants.h"
#include "../emucore/Serializer.hxx"
#include "../emucore/Deserializer.hxx"
Expand Down
1 change: 1 addition & 0 deletions atari_py/ale_interface/src/games/Roms.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#define __ROMS_HPP__

#include <string>
#include <algorithm>

struct RomSettings;

Expand Down
8 changes: 6 additions & 2 deletions atari_py/ale_python_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@
import os
import six

ale_lib = cdll.LoadLibrary(os.path.join(os.path.dirname(__file__),
'ale_interface/build/libale_c.so'))
if os.name == 'posix':
ale_lib = cdll.LoadLibrary(os.path.join(os.path.dirname(__file__),
'ale_interface/build/libale_c.so'))
else:
ale_lib = cdll.LoadLibrary(os.path.join(os.path.dirname(__file__),
'ale_interface/build/ale_c.dll'))

ale_lib.ALE_new.argtypes = None
ale_lib.ALE_new.restype = c_void_p
Expand Down
4 changes: 3 additions & 1 deletion atari_py/package_data.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
ale_interface/build/*.so
ale_interface/build/libale_c.so
ale_interface/build/ale_c.dll
ale_interface/build/ale
ale_c_wrapper.cpp
ale_c_wrapper.h
Expand Down Expand Up @@ -396,3 +397,4 @@ atari_roms/wizard_of_wor.bin
atari_roms/yars_revenge.bin
atari_roms/zaxxon.bin
package_data.txt
tests/*.py
Empty file added atari_py/tests/__init__.py
Empty file.
5 changes: 5 additions & 0 deletions atari_py/tests/test_smoke.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,8 @@ def test_smoke():
(screen_width,screen_height) = ale.getScreenDims()
arr = np.zeros((screen_height, screen_width, 4), dtype=np.uint8)
ale.getScreenRGB(arr)

if __name__ == '__main__':
print('smoke test')
test_smoke()
print('done!')
8 changes: 8 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash
set -ex

if [ $(uname) == 'Linux' ] || [ $(uname) == 'Darwin' ]; then
./multibuild.sh
else
./win_build.sh
fi
5 changes: 2 additions & 3 deletions config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ function pre_build {
set -ex
build_zlib
pip install cmake
pip install .
pip install pytest
pytest .
}

function run_tests {
pip install gym[atari]
python -c "import gym; gym.make('Pong-v4')"
pip install pytest
pytest --pyargs atari_py.tests
}

4 changes: 2 additions & 2 deletions deploy.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
set -ex
if [[ ! -z "$TRAVIS_TAG" ]]; then
pip install twine
twine upload wheelhouse/*
twine upload --verbose wheelhouse/atari_py*

if [[ ! -z "$DEPLOY_SDIST" ]]; then
python setup.py sdist
twine upload dist/*
twine upload dist/*
fi
fi

32 changes: 32 additions & 0 deletions deploy_to_pypi.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/bash
set -ex

# TRAVIS_TAG=0.1.14

if [[ -z "$TRAVIS_TAG" ]]; then
echo "Not a tagged commit, quitting"
exit 0
fi

pip install virtualenv --user
python -m virtualenv --python=python3 .venv
source .venv/bin/activate

pip install awscli twine
mkdir -p wheelhouse
env
# ugh something in awscli does not work on travis we'll download objects via curl
# aws s3 cp --recursive s3://games-wheels/atari-py/${TRAVIS_TAG} wheelhouse/
SUFFIXES="-manylinux1_x86_64.whl -win_amd64.whl -macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl"
# SUFFIXES="-manylinux1_x86_64.whl"
PY_VERS="-cp36-cp36m -cp37-cp37m"
URLPREFIX="https://s3-us-west-2.amazonaws.com/games-wheels/atari-py/${TRAVIS_TAG}/atari_py-${TRAVIS_TAG}"

cd wheelhouse
for s in $SUFFIXES; do
for p in $PY_VERS; do
curl -O ${URLPREFIX}${p}${s}
done;
done

twine upload --verbose atari_py*
12 changes: 12 additions & 0 deletions installzlib.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
curl -O https://zlib.net/zlib1211.zip
unzip zlib1211.zip
cp -r zlib-1.2.11 atari_py/ale_interface/src/zlib
cd atari_py/ale_interface/src/zlib
cmake -DCMAKE_GENERATOR_PLATFORM=x64 .
cmake --build .

cd ../..
mkdir -p build
cp src/zlib/Debug/zlibstaticd.lib build/z.lib


13 changes: 13 additions & 0 deletions multibuild.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
set -ex
export REPO_DIR=.
export BUILD_COMMIT=$TRAVIS_COMMIT
export PLAT=x86_64
export MB_PYTHON_VERSION=$PY_VER

git clone https://github.com/matthew-brett/multibuild && cd multibuild && git checkout 254ad28 && cd ..
source multibuild/common_utils.sh
source multibuild/travis_steps.sh
before_install
build_wheel $REPO_DIR $PLAT
install_run $PLAT

14 changes: 10 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,21 @@
import subprocess
import sys

with open(os.path.join(os.path.dirname(__file__), 'atari_py/package_data.txt')) as f:
with open(os.path.join(os.path.dirname(__file__), 'atari_py', 'package_data.txt')) as f:
package_data = [line.rstrip() for line in f.readlines()]


class Build(build_ext):
def run(self):
if os.name != 'posix' and not self.inplace:
# silly patch to disable build steps on windows, as we are doing compilation externally
return
cores_to_use = max(1, multiprocessing.cpu_count() - 1)
cmd = ['make', 'build', '-C', 'atari_py/ale_interface', '-j', str(cores_to_use)]
try:
subprocess.check_call(cmd, cwd=None if self.inplace else self.build_lib)
cwd = os.path.join('' if self.inplace else self.build_lib, 'atari_py', 'ale_interface', 'build')
os.makedirs(cwd, exist_ok=True)
subprocess.check_call(['cmake', '..'], cwd=cwd)
subprocess.check_call(['cmake', '--build', '.'], cwd=cwd)
except subprocess.CalledProcessError as e:
sys.stderr.write("Could not build atari-py: %s. (HINT: are you sure cmake is installed? You might also be missing a library. Atari-py requires: zlib [installable as 'apt-get install zlib1g-dev' on Ubuntu].)\n" % e)
raise
Expand All @@ -28,14 +33,15 @@ def __init__(self, name, sourcedir=''):
self.sourcedir = os.path.abspath(sourcedir)

setup(name='atari-py',
version='0.1.7',
version='0.1.15',
description='Python bindings to Atari games',
url='https://github.com/openai/atari-py',
author='OpenAI',
author_email='info@openai.com',
license='',
packages=['atari_py'],
package_data={'atari_py': package_data},
include_package_data=True,
ext_modules=[CMakeExtension('atari_py')],
cmdclass={'build_ext': Build},
install_requires=['numpy', 'six'],
Expand Down
20 changes: 20 additions & 0 deletions win_build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
set -ex
choco install --yes python3 --version $PY_VER
export PYROOT=/c/Python${PY_VER//./}
export PATH=$PYROOT:$PYROOT/Scripts:$PATH
pip install cmake pytest
./installzlib.bat
mkdir -p atari_py/ale_interface/build

cd atari_py/ale_interface/build
cmake -DCMAKE_GENERATOR_PLATFORM=x64 ..
cmake --build .
cp Debug/ale_c.dll .
cd ../../../

pip install wheel && pip wheel . -w wheelhouse --no-deps -vvv
ls wheelhouse/atari_py*
rm -rf atari_py*
pip install $(ls wheelhouse/atari_py*)
pytest --pyargs atari_py.tests