Skip to content
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

Add instructions, how to develop new feature across multiply repositories and add note about proxy #31

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
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
48 changes: 47 additions & 1 deletion developers.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,55 @@ credentials += Credentials(Path.userHome / ".sbt" / ".credentials")
. Go to https://oss.sonatype.org/#stagingRepositories
. Continue to follow <<java,Java runtime publishing instructions>>

== Developing new feature
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO unneeded.


Because the tests are in your own repository, you must clone the test repository
to test your work. To do this with one command, there is a `kaitai_struct` repository
that contains submodules for all other project repositories. You can just clone it
with submodules.

If you have already clone the individual repository, you can just add new remote
to submodule pointed to repository with your work. See example:

[source,shell]
# Clone uber-repository
git clone --recursive https://github.com/kaitai-io/kaitai_struct.git
cd kaitai_struct
#
# Select subproject you want to modify
cd ${sub-project}
# See current status
git remote -v
# Add your repository as remote with name my-repo
git remote add ${my-repo} https://github.com/${my-repo}/${sub-project}.git
# Check youself
git remote -v
# Get you work
git fetch ${my-repo}
# or, if you want to fetch only one branch `my-feature`. Use local branch name,
# without repository name prefix, ie. just `some-feature` but not `my-repo/some-feature`
# git fetch ${my-repo} ${my-feature}
#
# Switch to you feature branch
git checkout ${my-feature}

== Tests

TODO
To test changes in compiler and runtimes, run following commands (for example, for
Java runtime):
[source,shell]
# Assumed, that this will be done
# git clone --recursive https://github.com/kaitai-io/kaitai_struct.git
# cd kaitai_struct
cd tests
./build-compiler
# Convert all test `.ksy` files into all target languages (including Java),
# which will give you tests/compiled/java
./build-formats
# will run all tests for Java; results will be in `test_out/java`
./run-java

Also, see readme of https://github.com/kaitai-io/kaitai_struct_tests project.

== Publishing runtime libraries

Expand Down