With this tool you will download, configure, create and flash the default skybian image to your custom environment.
The resulting images will only run on the official skyminer hardware, the one based on Orange Pi Prime SBC.
The preferred method to configure & flash the official skybian images is by using this tool
The Skyflash tool is a standalone app (often called a "portable app"), so you just download the app and run it. To get the latest version just go to the Releases link on this page and grab the file matching to your OS.
If you has an old version already, just erase the old one and use the new one.
To see more detailed instructions on how to use the Skyflash utility please visit the User's Manual
If you are eager to build it yourself take into account that the base OS for dev is Ubuntu 18.04 LTS, but most of it works on OSX also if you tweak some items (see notes below)
The project use the GNU Make to test and build so you can ask for help like this make help
:
$ make help
deps Install all the needed deps to build it in Ubuntu 18.04 LTS and alike
deps-windows Installs a docker image to build the windows .exe from inside linux
init Initial cleanup, erase even the final app dir
clean Clean the environment to have a fresh start
build Build the pip compatible install file
install Install the built pip file
win-flasher Create the flasher tool for windows (for travis only)
win-flasher-dev Create the flasher tool for windows (no internet needed if you run "make deps-windows" already)
win Create a windows static app (for travis only)
win-dev Create a windows static app using local dev tools (no internet needed if you run "make deps-windows" already)
posix-streamer Create the linux/macos streamer to help with the flashing
linux-static Create a linux amd64 compatible static (portable) app
macos-app Create the macos standalone app
As you can see the options are self explanatory, just a few must know notes:
- Option starting with
deps
works only on Linux, on OSX you will need to install a few packages to get the environment ready to work:- xcode, brew, python3, pyqt5 & pyinstaller
- Use the
init
option to deep clean the working environment, this will also erase the pre-built apps. - Use the
clean
option to soft clean the working environment, this will not erase the pre-built apps in the final folder. - Options ending on
-dev
are meant to be used on linux local environments and will not pull any data from the internet if you run thedeps
&deps-windows
before while connected to the internet. - Option
deps-windows
installs docker for your distribution, this target is meant to build the needed toolchain in linux to build the windows app and has a trick:- If you don't have docker installed already you must run it, reboot or logout/login and run it again to finish the install.
- Once you run any of the release related options (win-dev, linux-static, macos-app) your app will be sitting on a folder named
final
If you plan to work on the project or just generate your own binaries using travis deploy mechanism you need to follow a few steps to do so.
- Clone the repository in a personal or organizational repository (default develop one is at Simelo organization in Github) and check travis has take over it and is building it on simple commits from your side.
- Create a Personal Access Token in your Github repository to allow the deploy action on release conditions, copy the token value to the clipboard.
- Go to your travis builds for this repository and look for the settings, set the token generated as a environment variable named OAUTH
With this settings in place, you can push to both local and official repository with no fuzz
To do a release you must follow these steps:
-
Clone the repository develop branch in a personal or organizational repository (default develop one is at Simelo organization in Github) follow the above section to configure your repository to produce releases on your repository
-
Check if there are commits on the SkycoinProject/master that must be applied to your develop branch (hot fixes or security ones), apply them and fix any merge issues
-
Create a release-v#.#.# branch in your repository from the develop branch, this will be the release playground, the numbers are the next logical release, see CHANGELOG file to see what's next
-
Check any pending issues in order to close them if possible on this release cycle (use local branches and at the end mix them with develop)
-
From this point forward work on the release-v#.#.# branch
-
Update the new version number in the
setup.py
,skyflash/data/skyflash.qml
&skyflash/utils.py
files -
Update the
CHANGELOG.md
file with any needed info and move theUnreleased
part to the new release version -
Review & update the
README.md
file for any needed updates or changes that need attention in the front page -
Push changes to your release-v#.#.# brach and wait for travis to validate all the changes
-
Tag the actual point as
Skyflash_v#.#.#-rc
and push this tag to your repository -
On success, check the draft release is published on the repository, download the releases files and test them
-
If problems are found with raise issues where needed (skyflash/skybian) and fix them before continue with the next step
-
After all problems are solved and work as expected update the
version.txt
file with the version number, like this: v0.0.4 -
Remove the local & remote tag in created in the previous steps
-
Raise a PR against master branch in the skycoin repository, solve any issues and merge it (or wait for a privileged user to do it)
-
After solving the issues and travis validation of them, tag the actual point with the version number you wrote on the version.txt and push it
-
Waith for deploy to finish, go to Github and edit & comment the release with the changes in CHANGELOG.md that match this release, change status from Draft to Official release
-
Merge master into develop
-
Check if there is needed to raise issues & PR on the following repositories: