Skip to content

Commit

Permalink
xregistry rename
Browse files Browse the repository at this point in the history
  • Loading branch information
clemensv committed Jun 26, 2023
1 parent 51600ec commit c4394b1
Show file tree
Hide file tree
Showing 190 changed files with 2,024 additions and 1,296 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,16 @@ jobs:
uses: battila7/get-version-action@v2
- name: Set version environment variable
run: |
echo "CEREGISTRY_VERSION=${{steps.get_version.outputs.version-without-v}}" > $GITHUB_ENV
echo "xregistry_VERSION=${{steps.get_version.outputs.version-without-v}}" > $GITHUB_ENV
- name: Build Python package
run: |
python -m pip install --upgrade pip build wheel
python -m build --sdist --wheel --outdir dist
# install Node dependencies including vsce and run vsce package in ceregistry_vscode, putting output in dist
# install Node dependencies including vsce and run vsce package in xregistry_vscode, putting output in dist
- name: Build VSCode extension
run: |
npm install -g @vscode/vsce
cd ceregistry_vscode
cd xregistry_vscode
npm --no-git-tag-version version ${{steps.get_version.outputs.version-without-v}}
npm install
vsce package
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
tmp/
ceregistry/_version.py
xregistry/_version.py
*.egg-info/
build/
**/.vscode/**
Expand Down
34 changes: 17 additions & 17 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
{
"args": ["--extensionDevelopmentPath=${workspaceFolder}"],
"name": "Launch Extension",
"preLaunchTask": "tsc: build - ceregistry_vscode/tsconfig.json",
"preLaunchTask": "tsc: build - xregistry_vscode/tsconfig.json",
"outFiles": ["${workspaceFolder}/out/**/*.js"],
"request": "launch",
"type": "extensionHost"
Expand All @@ -24,7 +24,7 @@
"name": "Python: Code Generator EventHubs",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language cs --style azfunctioneventhubs --definitions .\\samples\\message-definitions\\contoso-erp.cereg --projectname Contoso.ERP.Events --output c:\\temp\\output\\testeh"
Expand All @@ -33,7 +33,7 @@
"name": "Python: Code Generator C# SB",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language cs --style azfunctionservicebus --definitions .\\samples\\message-definitions\\contoso-erp.cereg --projectname Contoso.ERP.Events --output c:\\temp\\output\\testsb"
Expand All @@ -42,7 +42,7 @@
"name": "Python: Code Generator C# HTTP",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language cs --style azfunctionhttp --definitions .\\samples\\message-definitions\\contoso-erp.cereg --projectname Contoso.ERP.Events --output c:\\temp\\output\\testhttp"
Expand All @@ -51,7 +51,7 @@
"name": "Python: Code Generator C# Consumer",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language cs --style consumer --definitions .\\samples\\protocols\\http-consumer-endpoint.cereg --projectname Contoso.ERP.Events --output c:\\temp\\output\\testconsumer"
Expand All @@ -60,7 +60,7 @@
"name": "Python: Code Generator openAPI Producer",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language openapi --style producer --definitions .\\samples\\protocols\\http-producer-endpoint.cereg --projectname Contoso.ERP.Events --output c:\\temp\\output\\testopenapi"
Expand All @@ -69,7 +69,7 @@
"name": "Python: Code Generator openAPI Subscriber",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language openapi --style subscriber --definitions .\\samples\\message-definitions\\contoso-erp.cereg --projectname Contoso.ERP.Events --output c:\\temp\\output\\testopenapi2"
Expand All @@ -78,7 +78,7 @@
"name": "Python: Code Generator Java producer",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language java --style producer --definitions .\\samples\\message-definitions\\contoso-erp.cereg --projectname Contoso.ERP.Events --output c:\\temp\\output\\testjavap"
Expand All @@ -87,7 +87,7 @@
"name": "Python: Code Generator Java producer Proto",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language java --style producer --definitions .\\samples\\message-definitions\\minimal-proto.cereg --projectname Contoso.ERP.Events --output c:\\temp\\output\\testjavaproto"
Expand All @@ -96,7 +96,7 @@
"name": "Python: Code Generator Java producer Avro",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language java --style producer --definitions .\\samples\\message-definitions\\minimal-avro.cereg --projectname Contoso.ERP.Events --output c:\\temp\\output\\testjavaavro"
Expand All @@ -106,7 +106,7 @@
"name": "Python: Code Generator Java consumer",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": false,
"args": "generate --language java --style consumer --definitions .\\samples\\message-definitions\\contoso-erp.cereg --projectname Contoso.ERP.Events --output tmp/testjavac"
Expand All @@ -115,7 +115,7 @@
"name": "Python: Code Generator Java consumer Proto",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language java --style consumer --definitions .\\samples\\message-definitions\\minimal-proto.cereg --projectname Contoso.ERP.Events --output tmp/testjavacproto"
Expand All @@ -124,7 +124,7 @@
"name": "Python: Code Generator Java consumer Avro",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --language java --style consumer --definitions .\\samples\\message-definitions\\minimal-avro.cereg --projectname Contoso.ERP.Events --output tmp/testjavacavro"
Expand All @@ -133,7 +133,7 @@
"name": "Python: Code Generator Fropp",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate --definitions e:\\code\\cedisco-sb\\namespace-clemensv-erp.cereg --output e:\\code\\cedisco-sb\\tmp --language fropp --style producer --templates e:\\code\\cedisco-sb\\ --projectname foo"
Expand All @@ -142,7 +142,7 @@
"name": "Python: Code Generator Help",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "generate -h"
Expand All @@ -151,7 +151,7 @@
"name": "Python: List JSON",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "list --format json"
Expand All @@ -160,7 +160,7 @@
"name": "Python: Validate",
"type": "python",
"request": "launch",
"program": "-m ceregistry",
"program": "-m xregistry",
"console": "integratedTerminal",
"justMyCode": true,
"args": "validate --definitions E:\\Code\\cedisco-codegen\\test\\cs\\http_end_to_end_proto\\http_end_to_end_proto.cereg"
Expand Down
2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1 +1 @@
recursive-include ceregistry/templates *.jinja *.json
recursive-include xregistry/templates *.jinja *.json
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ and eventing objects. This project is a client for interacting with a CloudEvent
can, as one feature, generate code from the discovery metadata held in the registry.

A current, formal document schema for discovery documents (.cereg) is embedded in this
project at [ceregistry/schemas/xregistry_messaging_catalog.json](ceregistry/schemas/xregistry_messaging_catalog.json).
project at [xregistry/schemas/xregistry_messaging_catalog.json](xregistry/schemas/xregistry_messaging_catalog.json).

> The schema in this prototype reflects changes not yet merged into the formal
> spec docs in the CloudEvents project repo.
Expand Down Expand Up @@ -233,10 +233,10 @@ If you want to develop locally and/or run the included tests follow the instruct

## Usage

The tool is invoked as `ceregistry` and supports the following subcommands:
- `ceregistry generate`: Generate code
- `ceregistry validate`: Validate a definition
- `ceregistry list`: List available templates
The tool is invoked as `xregistry` and supports the following subcommands:
- `xregistry generate`: Generate code
- `xregistry validate`: Validate a definition
- `xregistry list`: List available templates

### Generate

Expand Down Expand Up @@ -290,7 +290,7 @@ Especially noteworthy might be the support for both AsyncAPI and OpenAPI.

The tool can generate AsyncAPI definitions for producer endpoints with:
```shell
ceregistry generate --language=openapi --style=producer --projectname=MyProjectProducer --definitions=definitions.cereg --output=MyProjectProducer
xregistry generate --language=openapi --style=producer --projectname=MyProjectProducer --definitions=definitions.cereg --output=MyProjectProducer
```

This will yield a `MyProjectProducer/MyProjectProducer.yml' file that can be used to generate a
Expand All @@ -299,7 +299,7 @@ producer client for the given endpoint.
Similarly, the tool can generate OpenAPI definitions for subscriber endpoints with:

```shell
ceregistry generate --language=openapi --style=subscriber --projectname=MyProjectSubscriber --definitions=definitions.cereg --output=MyProjectSubscriber
xregistry generate --language=openapi --style=subscriber --projectname=MyProjectSubscriber --definitions=definitions.cereg --output=MyProjectSubscriber
```

This will yield a `MyProjectSubscriber/MyProjectSubcriber.yml' file that can be
Expand All @@ -311,15 +311,15 @@ with the CloudEvents Subscription API.
The tool can generate AsyncAPI definitions with:

```shell
ceregistry generate --language=asyncapi --style=producer --projectname=MyProjectProducer --definitions=definitions.cereg --output=MyProjectProducer
xregistry generate --language=asyncapi --style=producer --projectname=MyProjectProducer --definitions=definitions.cereg --output=MyProjectProducer
```

For AsyncAPI, the tool support an extension parameter ce_content_mode that can be used to control the CloudEvents content mode of the generated AsyncAPI definition. The default is "structured" and the other supported value is "binary". The AsyncAPI template supports HTTP, MQTT, and AMQP 1.0 endpoints and injects the appropriate headers for the selected content mode for each protocol.

Use it like this:

```shell
ceregistry generate --language=asyncapi --style=producer --projectname=MyProjectProducer --definitions=definitions.cereg --output=MyProjectProducer --template-args ce_content_mode=binary
xregistry generate --language=asyncapi --style=producer --projectname=MyProjectProducer --definitions=definitions.cereg --output=MyProjectProducer --template-args ce_content_mode=binary
```

#### Custom Templates
Expand Down
2 changes: 1 addition & 1 deletion docs/authoring_templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ generate serializer code, you don't need to provide any templates in the
`_schemas`. If you don't need to share macros across styles, you don't need to
provide any templates in the `_common` directory.

The full set of templates for the C# language is [here](../ceregistry/templates/cs).
The full set of templates for the C# language is [here](../xregistry/templates/cs).

## Template Info

Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ build-backend = "flit_scm:buildapi"
requires = ["flit_core>=3.2", "flit_scm", "wheel"]

[project]
name = "ceregistry"
name = "xregistry"
dynamic = ["version"]
authors = [
{ name = "Clemens Vasters", email = "[email protected]"}
Expand All @@ -28,7 +28,7 @@ dependencies = [
]

[project.scripts]
ceregistry = "ceregistry.cli:main"
xregistry = "xregistry.cli:main"

[tool.setuptools_scm]
write_to = "ceregistry/_version.py"
write_to = "xregistry/_version.py"
16 changes: 8 additions & 8 deletions test/asyncapi/producer/test_asyncapi_producer.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,39 +7,39 @@
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../..'))
sys.path.append(os.path.join(project_root))

import ceregistry
import xregistry

# this test invokes the ceregistry command line tool to generate a C# proxy and a consumer
# this test invokes the xregistry command line tool to generate a C# proxy and a consumer
# and then builds the proxy and the consumer and runs a prepared test that integrates both
def test_asyncapi_producer():
# clean the output directory
output_dir = os.path.join(project_root, 'tmp/test/asyncapi/asyncapi_producer'.replace('/', os.path.sep))
if os.path.exists(output_dir):
shutil.rmtree(output_dir)
# generate the producer
sys.argv = ['ceregistry', 'generate',
sys.argv = ['xregistry', 'generate',
'--style', 'producer',
'--language', 'asyncapi',
'--definitions', os.path.join(os.path.dirname(__file__), 'asyncapi_producer.cereg'),
'--output', output_dir,
'--projectname', 'ContosoErpProducerBinary',
'--template-args', 'ce_content_mode=binary']
if ceregistry.cli() != 0:
raise Exception("ceregistry failed")
if xregistry.cli() != 0:
raise Exception("xregistry failed")
# run dotnet build on the csproj here that references the generated files already
cmd = 'asyncapi validate ' + os.path.join(output_dir, "ContosoErpProducerBinary.yml")
subprocess.check_call(cmd.split(" ") if platform.system() == "Windows" else cmd, cwd=os.path.dirname(__file__), stdout=sys.stdout, stderr=sys.stderr, shell=True)

# generate the producer
sys.argv = ['ceregistry', 'generate',
sys.argv = ['xregistry', 'generate',
'--style', 'producer',
'--language', 'asyncapi',
'--definitions', os.path.join(os.path.dirname(__file__), 'asyncapi_producer.cereg'),
'--output', output_dir,
'--projectname', 'ContosoErpProducerStructured',
'--template-args', 'ce_content_mode=structured']
if ceregistry.cli() != 0:
raise Exception("ceregistry failed")
if xregistry.cli() != 0:
raise Exception("xregistry failed")
# run dotnet build on the csproj here that references the generated files already
cmd = 'asyncapi validate ' + os.path.join(output_dir, "ContosoErpProducerStructured.yml")
subprocess.check_call(cmd.split(" ") if platform.system() == "Windows" else cmd, cwd=os.path.dirname(__file__), stdout=sys.stdout, stderr=sys.stderr, shell=True)
Expand Down
2 changes: 1 addition & 1 deletion test/core/test_exit.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '../..'))
sys.path.append(os.path.join(project_root))

from ceregistry.commands.generate_code import *
from xregistry.commands.generate_code import *

def test_exit():
env = jinja2.Environment(extensions=[ExitExtension])
Expand Down
2 changes: 1 addition & 1 deletion test/core/test_jinja_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '../..'))
sys.path.append(os.path.join(project_root))

from ceregistry.commands.generate_code import *
from xregistry.commands.generate_code import *

def test_pascal():
assert pascal("foo") == "Foo"
Expand Down
12 changes: 6 additions & 6 deletions test/cs/amqp_end_to_end/test_amqp_end_to_end.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,30 @@
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../..'))
sys.path.append(os.path.join(project_root))

import ceregistry
import xregistry

# this test invokes the ceregistry command line tool to generate a C# proxy and a consumer
# this test invokes the xregistry command line tool to generate a C# proxy and a consumer
# and then builds the proxy and the consumer and runs a prepared test that integrates both
def run_test():
# clean the output directory
if os.path.exists(os.path.join(project_root, 'tmp/test/cs/amqp_end_to_end/')):
shutil.rmtree(os.path.join(project_root, 'tmp/test/cs/amqp_end_to_end/'))
# generate the producer
sys.argv = ['ceregistry', 'generate',
sys.argv = ['xregistry', 'generate',
'--style', 'producer',
'--language', 'cs',
'--definitions', os.path.join(os.path.dirname(__file__), 'amqp_end_to_end.cereg'),
'--output', os.path.join(project_root, 'tmp/test/cs/amqp_end_to_end/producer/'),
'--projectname', 'Contoso.ERP.Producer']
ceregistry.cli()
xregistry.cli()
# generate the consumer
sys.argv = [ 'ceregistry', 'generate',
sys.argv = [ 'xregistry', 'generate',
'--style', 'consumer',
'--language', 'cs',
'--definitions', os.path.join(os.path.dirname(__file__), 'amqp_end_to_end.cereg'),
'--output', os.path.join(project_root, 'tmp/test/cs/amqp_end_to_end/consumer/'),
'--projectname', 'Contoso.ERP.Consumer']
ceregistry.cli()
xregistry.cli()
# run dotnet build on the csproj here that references the generated files already
subprocess.check_call(['dotnet', 'run'], cwd=os.path.dirname(__file__), stdout=sys.stdout, stderr=sys.stderr)

Expand Down
Loading

0 comments on commit c4394b1

Please sign in to comment.