th2 gRPC generator template library (1.4.0)
This is the template project for creating custom gRPC libraries. It contains an example of proto messages and services.
The tool generates code from .proto
files and uploads built packages (.proto
files and generated code) to the specified repositories.
How to transform the template
- Create a directory with the same name as the project name (use underscores instead of dashes) under
src/main/proto
directory (remove other files and directories if they exist). - Place your custom
.proto
files in the created directory. Pay attention to both the package
specifier and to the import
statements. - Edit
release_version
and vcs_url
properties in gradle.properties
file. - Edit
rootProject.name
variable in settings.gradle
file. This will be the name of the Java package. - Edit
package_info.json
file in order to specify its name and its version for Python package (create the file in case it's absent). - Edit parameters of
setup.py
in setup
function invocation such as: author
, author_email
, url
. Do not edit the other's parameters. - Edit
README.md
file according to the new project.
Note that the name of the created directory under src/main/proto
directory is used in Python (it's a package name).
How to maintain a project
- Perform the necessary changes.
- Update the package version of Java in
gradle.properties
file. - Update the package version of Python in
package_info.json
file. - Commit everything.
How to run project
Java
If you wish to manually create and publish a package for Java, run the following command:
gradle --no-daemon clean build publish artifactoryPublish \
-Purl=${URL} \
-Puser=${USER} \
-Ppassword=${PASSWORD}
URL
, USER
and PASSWORD
are parameters for publishing.
Python
If you wish to manually create and publish a package for Python:
- Generate services with
Gradle
:
gradle --no-daemon clean generateProto
You can find the generated files by following path: src/gen/main/services/python
- Generate code from
.proto
files and publish everything using twine
:
pip install -r requirements.txt
pip install twine
python setup.py generate
python setup.py sdist
twine upload --repository-url ${PYPI_REPOSITORY_URL} --username ${PYPI_USER} --password ${PYPI_PASSWORD} dist/*
PYPI_REPOSITORY_URL
, PYPI_USER
and PYPI_PASSWORD
are parameters for publishing.
Release notes
1.4.0
- Implement stubs creation for Python