<commit_before>## Development of Apache Edgent

*Apache Edgent is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.*

This describes development of Apache Edgent itself, not how to develop Edgent applications.
 * See http://edgent.incubator.apache.org/docs/edgent-getting-started for getting started using Edgent

The Edgent community welcomes contributions, please *Get Involved*!
 * http://edgent.incubator.apache.org/docs/community

## Switched from Ant to Gradle

See the updated _Building_ and _Using Eclipse_ sections below.  
The Ant tooling is no longer functional.

It's recommended that developers of Edgent create a new workspace instead of
reusing current ant-based Edgent workspaces.

## Renamed from Apache Quarks
Apache Edgent is the new name and the conversion is complete.

Code changes:
  * package names have the prefix "org.apache.edgent"
  * jar names have the prefix "edgent"
  
Users of Edgent will need to update their references to the above.
It's recommended that developers of Edgent create a new workspace instead of
reusing their Quarks workspace.

### Setup

Once you have forked the repository and created your local clone you need to download
these additional development software tools.

* Java 8 - The development setup assumes Java 8 and Linux. 

These are optional

* Android SDK - Allows building of Android specific modules. Set the environment variable `ANDROID_SDK_PLATFORM` to
the location of the Android platform so that ${ANDROID_SDK_PLATFORM}/android.jar points to a valid jar.

### Building a Binary Release Bundle

Building an Edgent binary release bundle:
``` sh
$ ./gradlew release
```

The build reports the location of the binary distribution bundle that can then
be unpacked and used in building applications.

See [Getting Started](https://edgent.apache.org/docs/edgent-getting-started)
for information on using the binary release bundle.

### Building for Edgent Runtime Development

The primary build process is using [Gradle](https://gradle.org/), 
any pull request is expected to maintain the build success of `clean, assemble, test`.

The Gradle wrapper `edgent/{gradlew,gradlew.bat}` should be used.
The wrapper ensures the appropriate version of gradle is used and it
will automatically download it if needed.  e.g.:
``` sh
$ ./gradlew --version
$ ./gradlew clean build
```

The gradle tooling:
- creates release images under `<edgent>/build/release-edgent`
- creates build artifacts under `<edgent>/build/distributions` and `<edgent>/<project>/build`


The top-level Gradle file is `edgent/build.gradle` and it contains several
unique tasks:

* `assemble` (default) : Build all code and Javadoc into `build\distributions`. The build will fail on any code error or Javadoc warning or error.
* `all` : synonym for `assemble`
* `build` : essentially like "assemble test reports"
* `clean` : Clean the project
* `test` : Run the JUnit tests, if any test fails the test run stops.  Use `--continue` to not stop on the first failure.
  * use a project test task and optionally the `--tests` option to run a subset of the tests.  Multiple `--tests` options may be specified following each test task.
    * `$ ./gradlew <project>:test`
    * `$ ./gradlew <project>:test --tests '*.SomeTest'`
    * `$ ./gradlew <project>:test --tests '*.SomeTest.someMethod'`
  * use the `cleanTest` task to force rerunning a previously successful test task (without forcing a rerun of all of the task's dependencies):
    * `$ ./gradlew [<project>:]cleanTest [<project>:]test`
* `reports` : Generate JUnit and Code Coverage reports in `build\distributions\reports`. Use after executing the `test` target. 
  * `reports\tests\overview-summary.html` - JUnit test report
  * `reports\coverage\index.html` - Code coverage report
* `release` : Build a release bundle in `build/release-edgent`, that includes subsets of the Edgent jars that run on Java 7 (`build/distributions/java7`) and Android (`build/distributions/android`).
<commit_msg>Developer doc for 'signAll' task<commit_after>## Development of Apache Edgent

*Apache Edgent is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.*

This describes development of Apache Edgent itself, not how to develop Edgent applications.
 * See http://edgent.incubator.apache.org/docs/edgent-getting-started for getting started using Edgent

The Edgent community welcomes contributions, please *Get Involved*!
 * http://edgent.incubator.apache.org/docs/community

## Switched from Ant to Gradle

See the updated _Building_ and _Using Eclipse_ sections below.  
The Ant tooling is no longer functional.

It's recommended that developers of Edgent create a new workspace instead of
reusing current ant-based Edgent workspaces.

## Renamed from Apache Quarks
Apache Edgent is the new name and the conversion is complete.

Code changes:
  * package names have the prefix "org.apache.edgent"
  * jar names have the prefix "edgent"
  
Users of Edgent will need to update their references to the above.
It's recommended that developers of Edgent create a new workspace instead of
reusing their Quarks workspace.

### Setup

Once you have forked the repository and created your local clone you need to download
these additional development software tools.

* Java 8 - The development setup assumes Java 8 and Linux. 

These are optional

* Android SDK - Allows building of Android specific modules. Set the environment variable `ANDROID_SDK_PLATFORM` to
the location of the Android platform so that ${ANDROID_SDK_PLATFORM}/android.jar points to a valid jar.

### Building a Binary Release Bundle

Building an Edgent binary release bundle:
``` sh
$ ./gradlew release
```

The build reports the location of the binary distribution bundle that can then
be unpacked and used in building applications.

See [Getting Started](https://edgent.apache.org/docs/edgent-getting-started)
for information on using the binary release bundle.

### Building for Edgent Runtime Development

The primary build process is using [Gradle](https://gradle.org/), 
any pull request is expected to maintain the build success of `clean, assemble, test`.

The Gradle wrapper `edgent/{gradlew,gradlew.bat}` should be used.
The wrapper ensures the appropriate version of gradle is used and it
will automatically download it if needed.  e.g.:
``` sh
$ ./gradlew --version
$ ./gradlew clean build
```

The gradle tooling:
- creates release images under `<edgent>/build/release-edgent`
- creates build artifacts under `<edgent>/build/distributions` and `<edgent>/<project>/build`


The top-level Gradle file is `edgent/build.gradle` and it contains several
unique tasks:

* `assemble` (default) : Build all code and Javadoc into `build\distributions`. The build will fail on any code error or Javadoc warning or error.
* `all` : synonym for `assemble`
* `build` : essentially like "assemble test reports"
* `clean` : Clean the project
* `test` : Run the JUnit tests, if any test fails the test run stops.  Use `--continue` to not stop on the first failure.
  * use a project test task and optionally the `--tests` option to run a subset of the tests.  Multiple `--tests` options may be specified following each test task.
    * `$ ./gradlew <project>:test`
    * `$ ./gradlew <project>:test --tests '*.SomeTest'`
    * `$ ./gradlew <project>:test --tests '*.SomeTest.someMethod'`
  * use the `cleanTest` task to force rerunning a previously successful test task (without forcing a rerun of all of the task's dependencies):
    * `$ ./gradlew [<project>:]cleanTest [<project>:]test`
* `reports` : Generate JUnit and Code Coverage reports in `build\distributions\reports`. Use after executing the `test` target. 
  * `reports\tests\overview-summary.html` - JUnit test report
  * `reports\coverage\index.html` - Code coverage report
* `release` : Build release bundles in `build/release-edgent`, that includes subsets of the Edgent jars that run on Java 7 (`build/distributions/java7`) and Android (`build/distributions/android`).
* `signAll` : Sign the release bundles in `build/release-edgent` (first run `release`).  You will be promoted for your PGP code signing key's Id, the location of the keyring file, and the secret key password.  Default response values may be set with environment variables:
  * `GPG_ID` - the code signing key's id (e.g., D0F56CAD)
  * `GPG_SECRING` - path to the secret key's keyring file

{'fraction_non_alphanumeric': 0.0781502640939959, 'fraction_numerical': 0.0011857281448744207, 'mean_word_length': 4.460859329017069, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 9, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6835587', 'n_tokens_mistral': 2543, 'n_tokens_neox': 2393, 'n_words': 1196}