Skip to content

Commit 38ffd93

Browse files
committed
Rework so we can package it on pip.
1 parent aae59c9 commit 38ffd93

9 files changed

Lines changed: 56 additions & 29 deletions

File tree

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
__pycache__
22
*.zip
3+
MANIFEST
4+
build_deps
5+
dist
6+
*.egg-info
7+
circuitpython_build_tools/data/

.travis.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
sudo: false
2+
dist: trusty
3+
language: c
4+
compiler:
5+
- gcc
6+
7+
script:
8+
- python3 -m scripts.build_mpy_cross circuitpython_build_tools/data/

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@
44

55
This repo contains build scripts used to build the
66
[Adafruit CircuitPython bundle](https://github.com/adafruit/Adafruit_CircuitPython_Bundle), [CircuitPython Community bundle](https://github.com/adafruit/CircuitPython_Community_Bundle)
7-
and individual library release zips.
7+
and individual library release zips on Travis CI.
8+
9+
The pip package includes mpy-crosses that run on Travis. They will likely not
10+
work in other environments.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
IGNORE_PY = ["setup.py", "conf.py", "__init__.py"]
3232

33-
def build_mpy_cross(mpy_cross_filename, circuitpython_tag, quiet=False):
33+
def mpy_cross(mpy_cross_filename, circuitpython_tag, quiet=False):
3434
if not quiet:
3535
title = "Building mpy-cross for circuitpython " + circuitpython_tag
3636
print()
@@ -54,7 +54,7 @@ def build_mpy_cross(mpy_cross_filename, circuitpython_tag, quiet=False):
5454
sys.exit(make.returncode)
5555

5656

57-
def build_library(library_path, output_directory, mpy_cross=None):
57+
def library(library_path, output_directory, mpy_cross=None):
5858
py_files = []
5959
package_files = []
6060
total_size = 512
File renamed without changes.

scripts/build_mpy_cross.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# The MIT License (MIT)
44
#
5-
# Copyright (c) 2016 Scott Shawcroft for Adafruit Industries
5+
# Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
66
#
77
# Permission is hereby granted, free of charge, to any person obtaining a copy
88
# of this software and associated documentation files (the "Software"), to deal
@@ -22,9 +22,15 @@
2222
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2323
# THE SOFTWARE.
2424

25-
import circuitpython_build_tools
25+
from circuitpython_build_tools import build
26+
from circuitpython_build_tools import target_versions
27+
28+
import os
29+
import sys
2630

2731
if __name__ == "__main__":
28-
output_filename = sys.argv[1]
29-
circuitpython_tag = sys.argv[2]
30-
circuitpython_build_tools.build_mpy_cross(output_filename, circuipython_tag)
32+
output_directory = sys.argv[1]
33+
os.makedirs(output_directory, exist_ok=True)
34+
for version in target_versions.VERSIONS:
35+
mpy_cross = output_directory + "/mpy-cross-" + version["name"]
36+
build.mpy_cross(mpy_cross, version["tag"])
Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import subprocess
3131
import zipfile
3232

33-
import circuitpython_build_tools
33+
from circuitpython_build_tools import build
3434

3535

3636
def add_file(bundle, src_file, zip_name):
@@ -59,9 +59,7 @@ def build_bundle(lib_location, bundle_version, output_filename,
5959
for library in os.listdir(os.path.join("libraries", subdirectory)):
6060
library_path = os.path.join("libraries", subdirectory, library)
6161

62-
circuitpython_build_tools.build_library(library_path,
63-
build_lib_dir,
64-
mpy_cross=mpy_cross)
62+
build.library(library_path, build_lib_dir, mpy_cross=mpy_cross)
6563

6664
with open(os.path.join(build_lib_dir, "VERSIONS.txt"), "w") as f:
6765
f.write(bundle_version + "\r\n")
@@ -97,15 +95,12 @@ def build_bundle(lib_location, bundle_version, output_filename,
9795

9896

9997
if __name__ == "__main__":
100-
from scripts import target_versions
101-
102-
tagged = input("Did you tag this release already ([y]/n)? ")
103-
if tagged and tagged.lower() != 'y':
104-
print("Go ahead and tag. I'll wait.")
105-
sys.exit(3)
98+
from circuitpython_build_tools import target_versions
99+
from pkg_resources import resource_filename
106100

107101
bundle_lib_location = os.path.abspath(sys.argv[1])
108102
output_dir = os.path.abspath(sys.argv[2])
103+
os.makedirs(output_dir, exist_ok=True)
109104
os.chdir(bundle_lib_location)
110105

111106
bundle_version = None
@@ -123,8 +118,7 @@ def build_bundle(lib_location, bundle_version, output_filename,
123118
build_bundle(bundle_lib_location, bundle_version, zip_filename)
124119
os.makedirs("build_deps", exist_ok=True)
125120
for version in target_versions.VERSIONS:
126-
mpy_cross = "build_deps/mpy-cross-" + version["name"]
127-
circuitpython_build_tools.build_mpy_cross(mpy_cross, version["tag"])
121+
mpy_cross = resource_filename(target_versions.__name__, "data/mpy-cross-" + version["name"])
128122
zip_filename = os.path.join(output_dir,
129123
'adafruit-circuitpython-bundle-{TAG}-{VERSION}.zip'.format(
130124
TAG=version["name"],
Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import subprocess
3131
import zipfile
3232

33-
import circuitpython_build_tools
33+
from circuitpython_build_tools import build
3434

3535

3636
def add_file(bundle, src_file, zip_name):
@@ -59,9 +59,7 @@ def build_bundle(lib_location, bundle_version, output_filename,
5959
for library in os.listdir(os.path.join("libraries", subdirectory)):
6060
library_path = os.path.join("libraries", subdirectory, library)
6161

62-
circuitpython_build_tools.build_library(library_path,
63-
build_lib_dir,
64-
mpy_cross=mpy_cross)
62+
build.library(library_path, build_lib_dir, mpy_cross=mpy_cross)
6563

6664
with open(os.path.join(build_lib_dir, "VERSIONS.txt"), "w") as f:
6765
f.write(bundle_version + "\r\n")
@@ -97,11 +95,6 @@ def build_bundle(lib_location, bundle_version, output_filename,
9795

9896

9997
if __name__ == "__main__":
100-
tagged = input("Did you tag this release already ([y]/n)? ")
101-
if tagged and tagged.lower() != 'y':
102-
print("Go ahead and tag. I'll wait.")
103-
sys.exit(3)
104-
10598
version = None
10699
tag = subprocess.run('git describe --tags --exact-match', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
107100
if tag.returncode == 0:

setup.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env python
2+
3+
from distutils.core import setup
4+
5+
setup(name='circuitpython-travis-build-tools',
6+
version='0.0.1',
7+
description='CircuitPython library build tools for Travis CI',
8+
author='Scott Shawcroft',
9+
author_email='scott@adafruit.com',
10+
url='https://www.adafruit.com/',
11+
packages=['circuitpython_build_tools'],
12+
package_data={'circuitpython_build_tools': ['data/mpy-cross-*']},
13+
scripts=["scripts/circuitpython-build-bundles",
14+
"scripts/circuitpython-build-library"],
15+
zip_safe=False,
16+
python_requires='>=3.4',
17+
install_requires=['']
18+
)

0 commit comments

Comments
 (0)