# 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. <br>
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
1. 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).
2. Place your custom `.proto` files in the created directory. Pay attention to both the `package` specifier and to the `import` statements.
3. Edit `release_version` and `vcs_url` properties in `gradle.properties` file.
4. Edit `rootProject.name` variable in `settings.gradle` file. This will be the name of the Java package.
5. 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).
6. Edit parameters of `setup.py` in `setup` function invocation such as: `author`, `author_email`, `url`. Do not edit the other's parameters.
7. 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
1. Perform the necessary changes.
2. Update the package version of Java in `gradle.properties` file.
3. Update the package version of Python in `package_info.json` file.
4. 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:
1. Generate services with `Gradle`:
```
gradle --no-daemon clean generateProto
```
You can find the generated files by following path: `src/gen/main/services/python`
2. 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
Raw data
{
"_id": null,
"home_page": "https://github.com/th2-net/th2-grpc-generator-template",
"name": "th2-grpc-generator-template",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "",
"author": "TH2-devs",
"author_email": "th2-devs@exactprosystems.com",
"download_url": "https://files.pythonhosted.org/packages/8a/aa/ae3d97e95d21a3e69be07c1b73d8dd814b68f023dca9a6aed40fe8098cf8/th2_grpc_generator_template-1.4.0.tar.gz",
"platform": "",
"description": "# th2 gRPC generator template library (1.4.0)\n\nThis is the template project for creating custom gRPC libraries. It contains an example of proto messages and services. <br>\nThe tool generates code from `.proto` files and uploads built packages (`.proto` files and generated code) to the specified repositories.\n\n## How to transform the template\n1. 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).\n2. Place your custom `.proto` files in the created directory. Pay attention to both the `package` specifier and to the `import` statements.\n3. Edit `release_version` and `vcs_url` properties in `gradle.properties` file.\n4. Edit `rootProject.name` variable in `settings.gradle` file. This will be the name of the Java package.\n5. 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).\n6. Edit parameters of `setup.py` in `setup` function invocation such as: `author`, `author_email`, `url`. Do not edit the other's parameters.\n7. Edit `README.md` file according to the new project.\n\nNote that the name of the created directory under `src/main/proto` directory is used in Python (it's a package name).\n\n## How to maintain a project\n1. Perform the necessary changes.\n2. Update the package version of Java in `gradle.properties` file.\n3. Update the package version of Python in `package_info.json` file.\n4. Commit everything.\n\n## How to run project\n\n### Java\nIf you wish to manually create and publish a package for Java, run the following command:\n```\ngradle --no-daemon clean build publish artifactoryPublish \\\n -Purl=${URL} \\ \n -Puser=${USER} \\\n -Ppassword=${PASSWORD}\n```\n`URL`, `USER` and `PASSWORD` are parameters for publishing.\n\n### Python\nIf you wish to manually create and publish a package for Python:\n1. Generate services with `Gradle`:\n ```\n gradle --no-daemon clean generateProto\n ```\n You can find the generated files by following path: `src/gen/main/services/python`\n2. Generate code from `.proto` files and publish everything using `twine`:\n ```\n pip install -r requirements.txt\n pip install twine\n python setup.py generate\n python setup.py sdist\n twine upload --repository-url ${PYPI_REPOSITORY_URL} --username ${PYPI_USER} --password ${PYPI_PASSWORD} dist/*\n ```\n `PYPI_REPOSITORY_URL`, `PYPI_USER` and `PYPI_PASSWORD` are parameters for publishing.\n \n## Release notes\n\n### 1.4.0\n\n+ Implement stubs creation for Python",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "th2_grpc_generator_template",
"version": "1.4.0",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8aaaae3d97e95d21a3e69be07c1b73d8dd814b68f023dca9a6aed40fe8098cf8",
"md5": "55b9ee344ba37b453a2d4a0418749bba",
"sha256": "a0f8ce1d36583bbcda217b28422dcd9141ebb521c966024e6acf857b2e6cd18a"
},
"downloads": -1,
"filename": "th2_grpc_generator_template-1.4.0.tar.gz",
"has_sig": false,
"md5_digest": "55b9ee344ba37b453a2d4a0418749bba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 7882,
"upload_time": "2021-06-29T14:57:48",
"upload_time_iso_8601": "2021-06-29T14:57:48.511260Z",
"url": "https://files.pythonhosted.org/packages/8a/aa/ae3d97e95d21a3e69be07c1b73d8dd814b68f023dca9a6aed40fe8098cf8/th2_grpc_generator_template-1.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2021-06-29 14:57:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "th2-net",
"github_project": "th2-grpc-generator-template",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "th2-grpc-generator-template"
}