This page describes the process of releasing a new version of Mynewt through the ASF.
A Mynewt release consists of three pieces:
Each of these pieces has its own git repository:
Piece | Git Repository |
---|---|
Blinky | |
Core | https://github.com/apache/mynewt-core |
Newt, newtvm | |
newtmgt | https://github.com/apache/mynewt-newtmgr |
When you are ready to release a new version of Mynewt, use the below steps to guide you through the process.
Release branch is NOT created for major releases RC1. Release branch is created only for major releases eg 1.4.0, for minor releases eg. 1.4.1 use major release branch (and name it as major event if not present). |
If this is RC1 of major release skip this step.
For RC2 of major release create branch of RC1 tag
git fetch origin
git checkout major-release-rc1_tag (eg. git checkout mynewt_1_10_0_rc1_tag)
For point release create branch of major release final tag
git fetch origin
git checkout major-release_tag (eg. git checkout mynewt_1_10_0_tag)
To create the branch, use the following git command:
git branch <branch_name>
Generally, you want to switch to the branch after you have created it. To switch to the branch, use the following git command:
git checkout <branch_name>
The shorthand way to do both of these (create and switch to the branch):
git checkout -b <branch_name>
The naming convention for the branch is based on the release number. The naming convention is the release number separated by underscores followed by _dev.
Point releases use major release naming.
Examples:
You now need to push the branch to the remote. You should be in that branch currently when doing this with the command listed here.
git push origin <branch_name>
Always a good idea to see if it all worked. To view both local and remote branches:
git branch -a
For minor release eg 1.4.1 PRs should be made against major release branch eg mynewt_1_4_0_dev and should contain only cherry-picks (or equivalent if cherry-pick is not feasible) from master branch. |
There may be some changes intended for the release that never made it in. Review the outstanding pull requests in the three github mirrors and make sure none of them need to make it into the release. If any of them should be in the release, they need to be merged before you can proceed with the release process.
Piece | URL |
---|---|
Blinky | https://github.com/apache/mynewt-blinky/pulls |
Core | |
Newt, newtvm | https://github.com/apache/mynewt-newt/pulls |
newtmgr | https://github.com/apache/mynewt-newtmgr/pulls |
The Mynewt testing procedure is underdeveloped. Testing consists of two steps:
$ newt test all ...lots of compiling and testing... ...about 2 minutes later ... Archiving bootutil.a Linking test_bootutil Executing test: /Users/ccollins/tmp/myproj/bin/unittest/libs/bootutil/test_bootutil Passed tests: [net/nimble/host fs/nffs libs/os hw/hal libs/mbedtls libs/util sys/config libs/bootutil] All tests passed |
Every third-party library included in a release that is not Apache-licensed has to be accounted for. For information about what licenses are Apache-compatible, see the following pages:
To perform a license audit, you will need to use a tool called Apache Rat. Download Rat here: http://creadur.apache.org/rat/download_rat.cgi
Rat checks all the files in the specified path for something resembling an Apache license. Files that do not contain an Apache licensed get flagged. A .rat-excludes file is used to indicate which files should be ignored by Rat. Once a non-Apache file has been accounted for, its name can be added to the excludes file.
To execute the Rat tool from the command-line:
java -jar <rat-directory>/apache-rat-0.11.jar -E .rat-excludes -d .
Where <rat-directory> is the location where you unpacked the rat tool.
Example:
[ccollins@ccollins-mac:~/repos/core]$ java -jar ~/Downloads/apache-rat-0.11/apache-rat-0.11.jar -E .rat-excludes -d . ***************************************************** Summary ------- Generated at: 2016-03-03T19:28:50-08:00 Notes: 4 Binaries: 2268 Archives: 0 Standards: 3926 [...lots of output snipped...] |
Unfortunately, Rat does not appear to support more than one directory in filename paths in the exclude file. I.e., the following entries are OK:
|
Update the newt tool so that:
The version strings are defined at the top of newt/newtutil/newtutil.go in the newt repository:
var NewtVersion Version = Version{0, 9, 0} var NewtVersionStr string = "Apache Newt (incubating) version: 0.9.0" var NewtBlinkyTag string = "mynewt_0_9_0_tag" |
Official releases should have versions like "1.2.0", "1.3.0". Development versions should have versions like "1.2.0-dev", "1.3.0-dev" an so on. Please remove the "-dev" postfix when doing a new release! |
Getting the NewtBlinkyTag string right is a bit tricky, since you have not created the new tag yet. Refer to step 6 to see how the tag will be named.
Make sure you commit and push the change!
Update version string in newtmgr/newtmgr.go so that `newtmgr version` prints proper version.
VersionString: "1.5.0", |
Note: no update to 0-latest and 1-latest yet !
@@ -35,9 +35,10 @@ repo.versions: "1.4.1": "mynewt_1_4_1_tag" "1.5.0": "mynewt_1_5_0_tag" "1.6.0": "mynewt_1_6_0_tag" + "1.7.0": "mynewt_1_7_0_tag" "0.8-latest": "0.8.0" @@ -49,6 +50,7 @@ repo.versions: "1.4-latest": "1.4.1" "1.5-latest": "1.5.0" "1.6-latest": "1.6.0" + "1.7-latest": "1.7.0" repo.newt_compatibility: # Allow all versions for 0.0.0. This is a workaround to prevent a warning @@ -61,6 +63,9 @@ repo.newt_compatibility: # Core 1.4.0+ requires newt 1.4.0+ (feature: sync repo deps). # Core 1.5.0+ requires newt 1.5.0+ (feature: transient packages) # Core 1.6.0+ requires newt 1.6.0+ (feature: choice) + # Core 1.7.0+ requires newt 1.7.0+ (feature: range) + 1.7.0: + 1.7.0: good 1.6.0: 1.6.0: good 1.5.0: @@ -87,6 +92,7 @@ repo.deps: mynewt_1_4_1_tag: 1.0.0 mynewt_1_5_0_tag: 1.0.0 mynewt_1_6_0_tag: 1.1.0 + mynewt_1_7_0_tag: 1.2.0 mcuboot: type: github @@ -94,3 +100,4 @@ repo.deps: repo: mcuboot vers: master: 0-dev + mynewt_1_7_0_tag: 1.3.1 |
Repeat this procedure for each of the following repositories:
In beetwen releases blinky template should point to mynewt-core development branch (version 0.0.0) while for releases it should point to version being released. This commit should be tagged (see point 7)
@@ -27,6 +27,6 @@ project.repositories: # repository.apache-mynewt-core: type: github - vers: 0.0.0 + vers: 1.11.0 user: apache repo: mynewt-core |
Each of the main repositories (core, newt, blinky) contains a README.md file in its root directory. Most of the repositories also contain a RELEASE_NOTES.md file in the same location. Make sure these files contain up to date information. In particular, ensure these files:
Note: Technical documentation for the release gets generated according to the process described in the "Cut the new release documentation set" in the README here: https://github.com/apache/mynewt-site.
Make sure that LICENSE lists all non-APL components, and remove those no longer shipped.
Each git repository must be tagged with the name of the release. Tagging the repositories makes it easy to determine exactly what went into the release. The tag should be named as follows:
The rc<#> is the release candidate number. Start with an rc of 1; increment this number each time you have to cancel and restart the release process. Replace periods in the version number with underscores. If this is a beta release, append b<number> to the version-number. For example, 0.8.0 beta 2 rc3 should have the following tag:
Tag the repository with the following git commands:
git tag -a <tag-name> -m <commit-message>
git push origin --tags
The first command creates a tag in your local repository. The second pushes the tag to the remote server.
newt starting from version 1.8 supports handling of rc tags so there is no need to create final tag at this step.
If something goes wrong and you need to delete the tag here are the commands to do this. Note that the first command deletes it from the remote, the second locally.
git push --delete origin <tag_name>
git tag --delete <tag_name>
Example:
[ccollins@ccollins-mac:~/repos/core]$ git tag -a mynewt_0_8_0_b2_rc3_tag -m 'Mynewt 0.8.0 B2, rc3' [ccollins@ccollins-mac:~/repos/core]$ git push origin --tags |
Repeat this procedure for each of the following repositories:
People will need a way to try out the new release while it is being voted on. You should update each repo's repository.yml file with a pointer to the corresponding tag. If needed update dependencies tags as well (similar to step 5c)
A repo's repository.yml file is only contained in the master branch; that is the branch you must modify! |
Since the release is not approved yet, the old tags should still be used by default. In other words, don't modify any pointers, just add new ones. Here is the git diff showing the changes that were made to the core repository.yml file for the 0.9.0 release:
repo.name: apache-mynewt-core repo.versions: "0.0.0": "develop" "0.7.9": "mynewt_0_8_0_b2_tag" "0.8.0": "mynewt_0_8_0_tag" + "0.9.0": "mynewt_0_9_0_tag" "0-latest": "0.8.0" "0-dev": "0.0.0" "0.8-latest": "0.8.0" + "0.9-latest": "0.9.0" |
Repeat this procedure for each of the repositories:
Note: To complete this step you will need to publish a GPG code signing key. This something you only have to do once. If you have not done this, see: Code Signing Keys.
Each source release consists of three artifacts:
Source release artifacts must be named as follows (file extension excluded):
The intermediate -b# is only included if this is a beta release.
For example, for 0.8.0 beta 2 rc3, the three source artifacts would have the following names:
The following procedure can be used to produce the source artifacts:
The <tag-name> is the name of the tag you created in step 3. The <destination-dir/artifact-name> field is best illustrated with an example:
[ccollins@ccollins-mac:~/repos/core]$ mynewt-archive-src.sh ~/releases/0.8.0-b2/rc3/apache-mynewt-core-0.8.0-b2-incubating mynewt_0_8_0_b2_rc3_tag |
The above invocation will create the following three files:
# Source tarball. ~/releases/0.8.0-b2/rc3/apache-mynewt-core-0.8.0-b2-incubating.tgz # Detached signature. ~/releases/0.8.0-b2/rc3/apache-mynewt-core-0.8.0-b2-incubating.tgz.asc # SHA512. ~/releases/0.8.0-b2/rc3/apache-mynewt-core-0.8.0-b2-incubating.tgz.sha |
Apply this process to each repository (core, newt, newtmgr and blinky). Do not include the rc-number in the artifact names.
Note: You do not need to make a fresh git clone for the above procedure. The mynewt-archive-src.sh script uses the git archive command, which packages the source files exactly as they were tagged in git.
Note: To complete this step you will need to publish a GPG code signing key. This something you only have to do once. If you have not done this, see: Code Signing Keys.
Binary releases contain the same artifacts as source releases:
Binary release artifacts must be named as follows (file extension excluded):
The intermediate -b# is only included if this is a beta release.
For example, for 0.8.0 beta 2 rc3, the two binary artifacts would have the following names:
The following procedure can be used to produce the binary artifacts:
The file list should consist of the following:
The LICENSE, NOTICE, README.md, and RELEASE_NOTES.md files should be exactly those from the corresponding source release.
Example:
[ccollins@ccollins-mac:~/repos/newt]$ mynewt-archive-bin.sh ~/releases/0.8.0-b2/rc3/apache-mynewt-newt-bin-osx-0.8.0-b2-incubating newt/newt LICENSE NOTICE README.md RELEASE_NOTES.md |
The above invocation will create the following three files:
# Binary tarball. ~/releases/0.8.0-b2/rc3/apache-mynewt-newt-bin-osx-0.8.0-b2-incubating.tgz # Detached signature. ~/releases/0.8.0-b2/rc3/apache-mynewt-newt-bin-osx-0.8.0-b2-incubating.tgz.asc # SHA512. ~/releases/0.8.0-b2/rc3/apache-mynewt-newt-bin-osx-0.8.0-b2-incubating.tgz.sha |
Apply this process for each platform (osx and linux). Do not include the rc-number in the artifact names.
The mynewt-archive.sh script verifies the signatures after they are created, but you might want to double-check that everything is good. Run the following command for each detached signature (.asc) file:
gpg2 --verify "<asc-file>" "<tgz-file>"
The output will indicate that the signature matches the tarball (or not!).
If all your artifacts are in the same directory, you can simplify the process with a script, e.g.,
for i in *.asc ; do echo ">>> $i <<<" && gpg2 --verify "$i" "${i%.asc}" ; done
Steps 12 and 15 will require checking out mynewt on both `release` and `dev` SVN trees, as well as moving from one directory to another. One way to checkout both mynewt trees is given below: $ svn co --depth immediates https://dist.apache.org/repos/dist/ apache-svn $ cd apache-svn $ svn up --set-depth infinity dev/mynewt $ svn up --set-depth infinity release/mynewt |
svn co https://dist.apache.org/repos/dist/dev/mynewt
If you used a new key to sign the release, you need to append the text representation of your key to the KEYS file. The KEYS file is located in the base mynewt path of the svn server.
cat <your-key-file> >> KEYS
The directory should be named as follows:
[ccollins@ccollins-mac:~/repos/dist.apache.org/repos/dist/dev/incubator/mynewt]$ mkdir -p apache-mynewt-0.8.0-b2-incubating/rc3 |
[ccollins@ccollins-mac:~/repos/dist.apache.org/repos/dist/dev/incubator/mynewt]$ cp ~/releases/0.8.0-b2/rc3/* apache-mynewt-0.8.0-b2-incubating/rc3/ [ccollins@ccollins-mac:~/repos/dist.apache.org/repos/dist/dev/incubator/mynewt]$ svn add apache-mynewt-0.8.0-b2-incubating |
[ccollins@ccollins-mac:~/repos/dist.apache.org/repos/dist/dev/incubator/mynewt]$ svn ci |
Call for a vote for the new release by sending an email to dev@mynewt.apache.org. A separate "[DISCUSS]" thread should also be opened to allow for discussion of the pros and cons of the release. These threads are kept separate so that the vote thread is not polluted with discussion.
The vote must remain open for at least 72 hours. You can keep the vote open longer if you wish (e.g., if the necessary number of +1 votes have not been accumulated yet). The vote passes if the following two criteria are met:
Before sending the email, it is a good idea to test every URL that it references. Broken links won't look good!
If the vote doesn't pass, the process ends here. You will need to restart the process after the problems are fixed. If the vote does pass, proceed to next step.
Each git repository must be tagged with the name of the release. Tagging the repositories makes it easy to determine exactly what went into the release. The tag should be named as follows:
Tag should be similar to rcX tags but without _rcX _ part. For example, 0.8.0 beta 2 should have the following tag:
Tag the repository with the following git commands:
git tag -a <tag-name> -m <commit-message>
git push origin --tags
The first command creates a tag in your local repository. The second pushes the tag to the remote server.
Example:
[ccollins@ccollins-mac:~/repos/core]$ git tag -a mynewt_0_8_0_b2_tag -m 'Mynewt 0.8.0 B2' [ccollins@ccollins-mac:~/repos/core]$ git push origin --tags |
Repeat this procedure for each of the following repositories:
The release directory is: https://dist.apache.org/repos/dist/release/mynewt
The release subdirectory (and the KEYS file, if you changed it) should be moved to the above directory. Be sure to use the svn mv
command to move the files from dev to release; don't make local copies of the dev files and add them separately with svn add
. If you moved the files properly with svn mv
, their svn logs should be augmented with a new entry corresponding to the move operation. In other words, svn history should not be lost during the move.
Example:
[ccollins@ccollins-mac:~/repos/dist/release/incubator/mynewt]$ mkdir apache-mynewt-1.0.0-b1-incubating [ccollins@ccollins-mac:~/repos/dist/release/incubator/mynewt]$ svn add apache-mynewt-1.0.0-b1-incubating/ A apache-mynewt-1.0.0-b1-incubating [ccollins@ccollins-mac:~/repos/dist/release/incubator/mynewt]$ cd apache-mynewt-1.0.0-b1-incubating [ccollins@ccollins-mac:~/repos/dist/release/incubator/mynewt/apache-mynewt-apache-mynewt-1.0.0-b1-incubating]$ svn mv ~/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/* . A apache-mynewt-blinky-1.0.0-b1-incubating.tgz D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-blinky-1.0.0-b1-incubating.tgz A apache-mynewt-blinky-1.0.0-b1-incubating.tgz.asc D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-blinky-1.0.0-b1-incubating.tgz.asc A apache-mynewt-blinky-1.0.0-b1-incubating.tgz.sha D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-blinky-1.0.0-b1-incubating.tgz.sha A apache-mynewt-core-1.0.0-b1-incubating.tgz D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-core-1.0.0-b1-incubating.tgz A apache-mynewt-core-1.0.0-b1-incubating.tgz.asc D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-core-1.0.0-b1-incubating.tgz.asc A apache-mynewt-core-1.0.0-b1-incubating.tgz.sha D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-core-1.0.0-b1-incubating.tgz.sha A apache-mynewt-newt-1.0.0-b1-incubating.tgz D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-newt-1.0.0-b1-incubating.tgz A apache-mynewt-newt-1.0.0-b1-incubating.tgz.asc D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-newt-1.0.0-b1-incubating.tgz.asc A apache-mynewt-newt-1.0.0-b1-incubating.tgz.sha D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-newt-1.0.0-b1-incubating.tgz.sha A apache-mynewt-newt-bin-linux-1.0.0-b1-incubating.tgz D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-newt-bin-linux-1.0.0-b1-incubating.tgz A apache-mynewt-newt-bin-linux-1.0.0-b1-incubating.tgz.asc D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-newt-bin-linux-1.0.0-b1-incubating.tgz.asc A apache-mynewt-newt-bin-linux-1.0.0-b1-incubating.tgz.sha D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-newt-bin-linux-1.0.0-b1-incubating.tgz.sha A apache-mynewt-newt-bin-osx-1.0.0-b1-incubating.tgz D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-newt-bin-osx-1.0.0-b1-incubating.tgz A apache-mynewt-newt-bin-osx-1.0.0-b1-incubating.tgz.asc D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-newt-bin-osx-1.0.0-b1-incubating.tgz.asc A apache-mynewt-newt-bin-osx-1.0.0-b1-incubating.tgz.sha D /Users/ccollins/repos/dist/dev/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating/rc2/apache-mynewt-newt-bin-osx-1.0.0-b1-incubating.tgz.sha [ccollins@ccollins-mac:~/repos/dist/release/incubator/mynewt/apache-mynewt-1.0.0-b1-incubating]$ svn ci Adding . Adding (bin) apache-mynewt-blinky-1.0.0-b1-incubating.tgz Adding apache-mynewt-blinky-1.0.0-b1-incubating.tgz.asc Adding apache-mynewt-blinky-1.0.0-b1-incubating.tgz.sha Adding (bin) apache-mynewt-core-1.0.0-b1-incubating.tgz Adding apache-mynewt-core-1.0.0-b1-incubating.tgz.asc Adding apache-mynewt-core-1.0.0-b1-incubating.tgz.sha Adding (bin) apache-mynewt-newt-1.0.0-b1-incubating.tgz Adding apache-mynewt-newt-1.0.0-b1-incubating.tgz.asc Adding apache-mynewt-newt-1.0.0-b1-incubating.tgz.sha Adding (bin) apache-mynewt-newt-bin-linux-1.0.0-b1-incubating.tgz Adding apache-mynewt-newt-bin-linux-1.0.0-b1-incubating.tgz.asc Adding apache-mynewt-newt-bin-linux-1.0.0-b1-incubating.tgz.sha Adding (bin) apache-mynewt-newt-bin-osx-1.0.0-b1-incubating.tgz Adding apache-mynewt-newt-bin-osx-1.0.0-b1-incubating.tgz.asc Adding apache-mynewt-newt-bin-osx-1.0.0-b1-incubating.tgz.sha Committed revision 17368. |
Send a release announcement to the following two recipients using your apache.org address.
Some resources for writing this email:
Notes:
Now that the release is out, it should be the version that new users get by default. Update the appropriate labels in each repo's repository.yml file. The below git diff shows what was done for the 0.9.0 release:
repo.name: apache-mynewt-core repo.versions: "0.0.0": "develop" "0.7.9": "mynewt_0_8_0_b2_tag" "0.8.0": "mynewt_0_8_0_tag" "0.9.0": "mynewt_0_9_0_tag" - "0-latest": "0.8.0" + "0-latest": "0.9.0" "0-dev": "0.0.0" "0.8-latest": "0.8.0" "0.9-latest": "0.9.0" |
Repeat this procedure for each of the repositories:
Update https://github.com/apache/mynewt-site with release info. See https://github.com/apache/mynewt-site/pull/528 for example.
Update https://github.com/apache/mynewt-documentation with release info. See https://github.com/apache/mynewt-documentation/pull/105 for example.
Make sure newt and newtmgr build from master show next release X-dev versions. See points 5) and 5a) for reference.
@@ -27,6 +27,6 @@ project.repositories: # repository.apache-mynewt-core: type: github - vers: 1.11.0 + vers: 0.0.0 user: apache repo: mynewt-core |
Make sure that master branch contains all fixes and updates (or equivalents) pushed to release branch.
dist/release should only contain latest release (https://www.apache.org/legal/release-policy.html#when-to-archive)
If release is combined with NimBLE release delete both apache-mynewt-X.Y.Z and apache-nimble-X.Y.Z releases, if only Mynewt is released remove only apache-mynewt-X.Y.Z
[janc@ix mynewt]$ pwd ~/mynewt_release/svn/dist/release/mynewt [janc@ix mynewt]$ svn remove apache-mynewt-1.8.0 apache-nimble-1.3.0 D apache-mynewt-1.8.0 D apache-mynewt-1.8.0/apache-mynewt-blinky-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-blinky-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-blinky-1.8.0.tgz.sha512 D apache-mynewt-1.8.0/apache-mynewt-core-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-core-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-core-1.8.0.tgz.sha512 D apache-mynewt-1.8.0/apache-mynewt-newt-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-newt-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-newt-1.8.0.tgz.sha512 D apache-mynewt-1.8.0/apache-mynewt-newt-bin-linux-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-newt-bin-linux-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-newt-bin-linux-1.8.0.tgz.sha512 D apache-mynewt-1.8.0/apache-mynewt-newt-bin-osx-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-newt-bin-osx-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-newt-bin-osx-1.8.0.tgz.sha512 D apache-mynewt-1.8.0/apache-mynewt-newt-bin-windows-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-newt-bin-windows-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-newt-bin-windows-1.8.0.tgz.sha512 D apache-mynewt-1.8.0/apache-mynewt-newtmgr-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-newtmgr-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-newtmgr-1.8.0.tgz.sha512 D apache-mynewt-1.8.0/apache-mynewt-newtmgr-bin-linux-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-newtmgr-bin-linux-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-newtmgr-bin-linux-1.8.0.tgz.sha512 D apache-mynewt-1.8.0/apache-mynewt-newtmgr-bin-osx-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-newtmgr-bin-osx-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-newtmgr-bin-osx-1.8.0.tgz.sha512 D apache-mynewt-1.8.0/apache-mynewt-newtmgr-bin-windows-1.8.0.tgz D apache-mynewt-1.8.0/apache-mynewt-newtmgr-bin-windows-1.8.0.tgz.asc D apache-mynewt-1.8.0/apache-mynewt-newtmgr-bin-windows-1.8.0.tgz.sha512 D apache-nimble-1.3.0 D apache-nimble-1.3.0/apache-mynewt-nimble-1.3.0.tgz D apache-nimble-1.3.0/apache-mynewt-nimble-1.3.0.tgz.asc D apache-nimble-1.3.0/apache-mynewt-nimble-1.3.0.tgz.sha512 [janc@ix mynewt]$ svn ci D apache-mynewt-1.8.0 D apache-nimble-1.3.0 Committing transaction... Committed revision 46953. |