https://github.com/status-im/nimbus-launch
Jumpstart your Nim project at Status
https://github.com/status-im/nimbus-launch
Last synced: about 2 months ago
JSON representation
Jumpstart your Nim project at Status
- Host: GitHub
- URL: https://github.com/status-im/nimbus-launch
- Owner: status-im
- License: apache-2.0
- Created: 2018-03-14T15:12:42.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-08-24T00:07:39.000Z (over 5 years ago)
- Last Synced: 2025-02-22T17:43:35.534Z (about 2 months ago)
- Language: Nim
- Size: 66.4 KB
- Stars: 11
- Watchers: 24
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHEv2
Awesome Lists containing this project
README
# Nimbus Launch
[](https://opensource.org/licenses/MIT)
[](https://opensource.org/licenses/Apache-2.0)
Jumpstart your Nim project at Status
Nimbus-launch creates a Nim project template with:
- folders: src/tests/benchmarks/examples/docs
- your license(s) of choice
- a .gitignore
- a .nimble file
- Travis and Appveyor configuration
- A README with
- your continuous integration, license(s) and "stability: experimental" badges
- An installation section with the nimble command
- A license section with your license(s) of choice
- A skeleton source file
- A skeleton test file including importing the project and the unittest module## Installation
```
nimble install https://github.com/status-im/nimbus-launch@#master
```## How to use
```
nimbus_launch -p=projectName -g=githubName -n=nimbleName
```For example
```
nimbus_launch -p=MyAwesomeProject -g=my-awesome-project -n=my_awesome_project
```Options:
```
nimbus_launch --help
Usage:
nimbus_launch [required&optional-params]
Options(opt-arg sep :|=|spc):
-h, --help write this help to stdout
-p=, --projectName= string REQUIRED set projectName
-g=, --githubName= string REQUIRED set githubName
-n=, --nimbleName= string REQUIRED set nimbleName
-l=, --licenses= Licenses {MIT, Apachev2} set licenses
```By default:
- licenses are `MIT,Apachev2` and support `MIT`, `Apachev2`, `GPLv2` and `GPLv3` or any combination of those, separated by a comma and no space.## Travis and AppVeyor setup information
Both Travis and AppVeyor builds are set up in the following way:
* Build https://github.com/status-im/Nim, and cache it
* Should be rebuilt automatically whenever above repo changes
* (Optional) Build any dependencies that are needed for the project
* rocksdb - some distros come without snappy and other build options enabled
* Build the project with `nimble install -y`
* This ensures that installation works, including compiling the main binary
* Run tests with `nimble test`
* Some projects name the test task differently for legacy reasonsOther notes about travis and appveyor:
* travis supports `ccache`, but this turned out to be less efficient than simply
caching the whole Nim repo
* Each project is set to build both branches and pull requests
* Additionally, Travis projects are set to build daily, if no other builds have
run
* This helps catch downstream breakage, ie `nimbus` breacking because of
changes in `nim-eth-common` - this is a bit of a hack## Nim version policy
We maintain a version of Nim that's "blessed" for status use in
https://github.com/status-im/Nim. This allows us to stay independent
of the day-to-day churn and regressions that happen on the Nim devel
branch and at the same time leaves room for critical patches to be applied.This forked version of Nim:
* Typically tracks the latest officially released version of Nim
* May in exceptional cases include addtional patches
* Is used in all CI builds to provide a stable build environment
* Is updated in a controlled manner such that all regressions are fixed
fixed before pushing the update - in particular, active branches that
the rest of the team are working on need to be considered as well## License
Licensed and distributed under either of
* MIT license: [LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT
or
* Apache License, Version 2.0, ([LICENSE-APACHEv2](LICENSE-APACHEv2) or http://www.apache.org/licenses/LICENSE-2.0)
at your option. This file may not be copied, modified, or distributed except according to those terms.