wireforge 0.1.0__tar.gz → 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. {wireforge-0.1.0 → wireforge-0.2.0}/LICENSE +7 -2
  2. {wireforge-0.1.0 → wireforge-0.2.0}/MANIFEST.in +2 -1
  3. {wireforge-0.1.0/codegen/wireforge.egg-info → wireforge-0.2.0}/PKG-INFO +23 -8
  4. {wireforge-0.1.0 → wireforge-0.2.0}/README.md +17 -6
  5. {wireforge-0.1.0 → wireforge-0.2.0}/cmake/package/WireForgeConfigVersion.cmake +1 -1
  6. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/__init__.py +1 -1
  7. wireforge-0.2.0/codegen/wireforge/c_interface.py +937 -0
  8. wireforge-0.2.0/codegen/wireforge/c_model.py +1230 -0
  9. wireforge-0.2.0/codegen/wireforge/c_names.py +210 -0
  10. wireforge-0.2.0/codegen/wireforge/c_test_project.py +290 -0
  11. wireforge-0.2.0/codegen/wireforge/c_tests.py +1564 -0
  12. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cli.py +47 -8
  13. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/compat.py +2 -0
  14. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cpp.py +19 -0
  15. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cpp_tests.py +74 -1
  16. wireforge-0.2.0/codegen/wireforge/dbc.py +683 -0
  17. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/expr.py +77 -0
  18. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/fmt.py +6 -2
  19. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/generate.py +99 -32
  20. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/loader.py +8 -1
  21. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/mcp_server.py +2 -1
  22. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/model.py +6 -0
  23. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/resources.py +5 -0
  24. wireforge-0.2.0/codegen/wireforge/scaling.py +141 -0
  25. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/server/app.py +14 -3
  26. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/service.py +107 -23
  27. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/test_project.py +13 -10
  28. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/validate.py +16 -0
  29. {wireforge-0.1.0 → wireforge-0.2.0/codegen/wireforge.egg-info}/PKG-INFO +23 -8
  30. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/SOURCES.txt +42 -1
  31. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/requires.txt +4 -0
  32. wireforge-0.2.0/protocols/crsf/README.md +22 -0
  33. wireforge-0.2.0/protocols/crsf/project.yaml +128 -0
  34. wireforge-0.2.0/protocols/j1939/README.md +25 -0
  35. wireforge-0.2.0/protocols/j1939/project.yaml +78 -0
  36. wireforge-0.2.0/protocols/mavlink1/README.md +26 -0
  37. wireforge-0.2.0/protocols/mavlink1/app/include/mavsum/crc.h +48 -0
  38. wireforge-0.2.0/protocols/mavlink1/app/include/mavsum/crc.hpp +84 -0
  39. wireforge-0.2.0/protocols/mavlink1/plugins/__init__.py +1 -0
  40. wireforge-0.2.0/protocols/mavlink1/plugins/mavlink_crc.py +29 -0
  41. wireforge-0.2.0/protocols/mavlink1/project.yaml +110 -0
  42. wireforge-0.2.0/protocols/modbus_rtu/README.md +17 -0
  43. wireforge-0.2.0/protocols/modbus_rtu/project.yaml +116 -0
  44. wireforge-0.2.0/protocols/modbus_rtu/vectors/spec_examples.yaml +42 -0
  45. wireforge-0.2.0/protocols/modbus_tcp/README.md +14 -0
  46. wireforge-0.2.0/protocols/modbus_tcp/project.yaml +73 -0
  47. wireforge-0.2.0/protocols/modbus_tcp/vectors/spec_examples.yaml +34 -0
  48. wireforge-0.2.0/protocols/ubx/README.md +24 -0
  49. wireforge-0.2.0/protocols/ubx/app/include/ubx/fletcher8.hpp +54 -0
  50. wireforge-0.2.0/protocols/ubx/app/include/ubxsum/fletcher8.h +25 -0
  51. wireforge-0.2.0/protocols/ubx/plugins/__init__.py +1 -0
  52. wireforge-0.2.0/protocols/ubx/plugins/ubx_fletcher.py +20 -0
  53. wireforge-0.2.0/protocols/ubx/project.yaml +154 -0
  54. wireforge-0.2.0/protocols/ubx/vectors/examples.yaml +12 -0
  55. {wireforge-0.1.0 → wireforge-0.2.0}/pyproject.toml +5 -1
  56. wireforge-0.2.0/runtime/include/wireforge/c/bits.h +177 -0
  57. wireforge-0.2.0/runtime/include/wireforge/c/bytes.h +269 -0
  58. wireforge-0.2.0/runtime/include/wireforge/c/codec.h +453 -0
  59. wireforge-0.2.0/runtime/include/wireforge/c/crc.h +53 -0
  60. wireforge-0.2.0/runtime/include/wireforge/c/expr.h +39 -0
  61. wireforge-0.2.0/runtime/include/wireforge/c/frame.h +222 -0
  62. wireforge-0.2.0/runtime/include/wireforge/c/link.h +213 -0
  63. wireforge-0.2.0/runtime/include/wireforge/c/ring.h +90 -0
  64. wireforge-0.2.0/runtime/include/wireforge/c/status.h +54 -0
  65. wireforge-0.2.0/runtime/include/wireforge/c/validation.h +104 -0
  66. wireforge-0.2.0/runtime/include/wireforge/c/wireforge.h +22 -0
  67. {wireforge-0.1.0 → wireforge-0.2.0}/schema/project.schema.json +37 -2
  68. {wireforge-0.1.0 → wireforge-0.2.0}/setup.py +7 -1
  69. wireforge-0.1.0/ui/dist/assets/index-6Pomu6U4.js → wireforge-0.2.0/ui/dist/assets/index-BSyIeLp5.js +10 -10
  70. {wireforge-0.1.0 → wireforge-0.2.0}/ui/dist/index.html +1 -1
  71. {wireforge-0.1.0 → wireforge-0.2.0}/cmake/package/WireForgeConfig.cmake +0 -0
  72. {wireforge-0.1.0 → wireforge-0.2.0}/cmake/package/WireForgeGenerate.cmake +0 -0
  73. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/bundle.py +0 -0
  74. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/ci_check.py +0 -0
  75. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/codec.py +0 -0
  76. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/coverage_points.py +0 -0
  77. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cpp_codec.py +0 -0
  78. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cpp_interface.py +0 -0
  79. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/differential.py +0 -0
  80. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/docs_markdown.py +0 -0
  81. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/findings.py +0 -0
  82. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/golden.py +0 -0
  83. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/hlr_import.py +0 -0
  84. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/impact.py +0 -0
  85. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/importers.py +0 -0
  86. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/issues.py +0 -0
  87. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/layout.py +0 -0
  88. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/lifecycle.py +0 -0
  89. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/lifecycle_results.py +0 -0
  90. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/lifecycle_rules.py +0 -0
  91. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/lifecycle_runtime.py +0 -0
  92. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/llr.py +0 -0
  93. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/llr_ids.py +0 -0
  94. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/plain.py +0 -0
  95. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/py.typed +0 -0
  96. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/reqif.py +0 -0
  97. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/results.py +0 -0
  98. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/runtime_reqs.py +0 -0
  99. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/schema.py +0 -0
  100. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/server/__init__.py +0 -0
  101. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/server/oidc.py +0 -0
  102. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/server/storage.py +0 -0
  103. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/templates/command/project.yaml +0 -0
  104. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/templates/raw/project.yaml +0 -0
  105. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/templates/telemetry/project.yaml +0 -0
  106. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/test_cases.py +0 -0
  107. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/trace.py +0 -0
  108. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/vcs.py +0 -0
  109. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/vectors.py +0 -0
  110. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/versioning.py +0 -0
  111. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/wireshark.py +0 -0
  112. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/wireshark_runtime.lua +0 -0
  113. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/dependency_links.txt +0 -0
  114. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/entry_points.txt +0 -0
  115. {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/top_level.txt +0 -0
  116. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/LICENSE +0 -0
  117. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/array_access.hpp +0 -0
  118. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/bit_utils.hpp +0 -0
  119. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/byte_io.hpp +0 -0
  120. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/checksum.hpp +0 -0
  121. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/codec_support.hpp +0 -0
  122. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/config.hpp +0 -0
  123. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/delegate.hpp +0 -0
  124. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/dispatcher.hpp +0 -0
  125. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/expr_support.hpp +0 -0
  126. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/frame_decoder.hpp +0 -0
  127. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/frame_layout.hpp +0 -0
  128. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/link.hpp +0 -0
  129. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/lock.hpp +0 -0
  130. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/ring_buffer.hpp +0 -0
  131. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/span.hpp +0 -0
  132. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/static_vector.hpp +0 -0
  133. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/status.hpp +0 -0
  134. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/transport.hpp +0 -0
  135. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/validation.hpp +0 -0
  136. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/version.hpp +0 -0
  137. {wireforge-0.1.0 → wireforge-0.2.0}/runtime/requirements.yaml +0 -0
  138. {wireforge-0.1.0 → wireforge-0.2.0}/schema/deviations.schema.json +0 -0
  139. {wireforge-0.1.0 → wireforge-0.2.0}/schema/fragment.schema.json +0 -0
  140. {wireforge-0.1.0 → wireforge-0.2.0}/schema/llr_ids.schema.json +0 -0
  141. {wireforge-0.1.0 → wireforge-0.2.0}/schema/runtime_requirements.schema.json +0 -0
  142. {wireforge-0.1.0 → wireforge-0.2.0}/setup.cfg +0 -0
  143. {wireforge-0.1.0 → wireforge-0.2.0}/ui/dist/assets/index-GVdDyUAG.css +0 -0
@@ -9,8 +9,13 @@ Licensed Work: WireForge (this repository), excluding the contents of the
9
9
  is (c) 2026 Oguzhan KAYNAK.
10
10
  Additional Use Grant: You may use the Licensed Work for development, testing,
11
11
  evaluation, and other non-production purposes free of
12
- charge. Any production use of the Licensed Work requires
13
- a commercial license from the Licensor.
12
+ charge. Running the Licensed Work in continuous
13
+ integration to validate projects, compare them with
14
+ earlier revisions, and generate, build and run their
15
+ tests is a non-production purpose, including for
16
+ commercial products. Any other production use of the
17
+ Licensed Work requires a commercial license from the
18
+ Licensor.
14
19
  Change Date: 2036-10-17
15
20
  Change License: MIT
16
21
 
@@ -3,6 +3,7 @@
3
3
  include LICENSE README.md
4
4
  include runtime/LICENSE runtime/requirements.yaml
5
5
  recursive-include schema *.json
6
- recursive-include runtime/include *.hpp
6
+ recursive-include runtime/include *.hpp *.h
7
7
  recursive-include cmake/package *
8
+ recursive-include protocols *
8
9
  recursive-include ui/dist *
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wireforge
3
- Version: 0.1.0
4
- Summary: Schema-driven wire-format toolkit: C++17 code generation, validation, server and MCP.
3
+ Version: 0.2.0
4
+ Summary: Schema-driven wire-format toolkit: C++17 and C99 code generation, validation, server and MCP.
5
5
  Author: Oguzhan KAYNAK
6
6
  License-Expression: BUSL-1.1 AND MIT
7
7
  Requires-Python: >=3.10
@@ -36,14 +36,18 @@ Requires-Dist: openpyxl>=3.1; extra == "dev"
36
36
  Requires-Dist: joserfc>=1.0; extra == "dev"
37
37
  Requires-Dist: types-openpyxl; extra == "dev"
38
38
  Requires-Dist: pymodbus==3.16.1; extra == "dev"
39
+ Requires-Dist: cantools==45.0.0; extra == "dev"
40
+ Requires-Dist: pyubx2==1.3.8; extra == "dev"
41
+ Requires-Dist: pymavlink==2.4.50; extra == "dev"
42
+ Requires-Dist: crsf-parser==0.3.2; extra == "dev"
39
43
  Dynamic: license-file
40
44
 
41
45
  # WireForge
42
46
 
43
- Schema-driven wire-format toolkit for C++17: describe binary messages in YAML (by hand, in the web UI, through the CLI
44
- or an AI agent) and generate allocation-free C++ serializers, validators, framers and dispatchers together with a
45
- GoogleTest project that proves them against a reference codec and gates the generated code at 100 % line, branch and
46
- function coverage.
47
+ Schema-driven wire-format toolkit for C++17 and C99: describe binary messages in YAML (by hand, in the web UI, through
48
+ the CLI or an AI agent) and generate allocation-free serializers, validators, framers and dispatchers (C++17, or C99
49
+ with `--language c`) together with a GoogleTest project that proves them against a reference codec and gates the
50
+ generated code at 100 % line, branch and function coverage.
47
51
 
48
52
  - The wire format is imposed by the remote party: generated code never adds bytes.
49
53
  - Runtime and generated code use only pre-allocated storage: no heap, no exceptions, no RTTI required.
@@ -75,17 +79,28 @@ qualification, which depend on the whole project and its assessor (docs/DO178C.m
75
79
  | Fitting into a DO-178C process, tool integration | docs/DO178C.md, docs/integration/ |
76
80
  | Server, web UI, MCP | docs/SERVER.md, docs/UI.md, docs/MCP.md |
77
81
  | Secure deployment and operation | docs/SERVER.md, "Deployment and operation" |
78
- | Importers (CSV/Excel ICD, C headers) | docs/IMPORT.md |
82
+ | Importers (CSV/Excel ICD, C headers, CAN databases) | docs/IMPORT.md |
83
+ | Published protocols (Modbus, CRSF, J1939, MAVLink 1, UBX; `wireforge init --protocol`) | docs/GUIDE.md, `protocols/` |
79
84
  | Quality, safety, traceability | quality/QUALITY_POLICY.md, docs/SAFETY.md, docs/CODING_RULES.md |
80
85
  | Architecture and design decisions | docs/ARCHITECTURE.md, docs/DECISIONS.md |
81
86
 
82
87
  Development: see CONTRIBUTING.md (`pip install -e ".[dev]"`, `cmake --preset dev && cmake --build --preset dev && ctest
83
88
  --preset dev`, all gates: `quality/run_all.sh`).
84
89
 
90
+ ## GitHub Action
91
+ `oguzhankynk/wireforge` is also a GitHub Action that validates a project, checks wire compatibility with the base of a
92
+ pull request and runs the generated tests (docs/integration/github_actions.md):
93
+
94
+ ```yaml
95
+ - uses: oguzhankynk/wireforge@v0.2.0
96
+ with: { project: icd }
97
+ ```
98
+
85
99
  ## License
86
100
  The `runtime/` library is MIT-licensed (see runtime/LICENSE): code generated by WireForge belongs to you and depends
87
101
  only on this MIT-licensed runtime, so shipping it in your product carries no restriction.
88
102
 
89
103
  Everything else (the CLI, code generator, server, web UI, and MCP server) is licensed under the Business Source
90
104
  License 1.1 (see LICENSE): free for development, testing, and evaluation; a commercial license is required for
91
- production use. It converts to MIT on 2036-10-17. Contact the Licensor for commercial licensing.
105
+ production use, except that running it in continuous integration (validation, comparison with earlier
106
+ revisions, generated tests) is free, also in commercial product repositories. It converts to MIT on 2036-10-17. Contact the Licensor for commercial licensing: kaynak.oguzhan0@gmail.com.
@@ -1,9 +1,9 @@
1
1
  # WireForge
2
2
 
3
- Schema-driven wire-format toolkit for C++17: describe binary messages in YAML (by hand, in the web UI, through the CLI
4
- or an AI agent) and generate allocation-free C++ serializers, validators, framers and dispatchers together with a
5
- GoogleTest project that proves them against a reference codec and gates the generated code at 100 % line, branch and
6
- function coverage.
3
+ Schema-driven wire-format toolkit for C++17 and C99: describe binary messages in YAML (by hand, in the web UI, through
4
+ the CLI or an AI agent) and generate allocation-free serializers, validators, framers and dispatchers (C++17, or C99
5
+ with `--language c`) together with a GoogleTest project that proves them against a reference codec and gates the
6
+ generated code at 100 % line, branch and function coverage.
7
7
 
8
8
  - The wire format is imposed by the remote party: generated code never adds bytes.
9
9
  - Runtime and generated code use only pre-allocated storage: no heap, no exceptions, no RTTI required.
@@ -35,17 +35,28 @@ qualification, which depend on the whole project and its assessor (docs/DO178C.m
35
35
  | Fitting into a DO-178C process, tool integration | docs/DO178C.md, docs/integration/ |
36
36
  | Server, web UI, MCP | docs/SERVER.md, docs/UI.md, docs/MCP.md |
37
37
  | Secure deployment and operation | docs/SERVER.md, "Deployment and operation" |
38
- | Importers (CSV/Excel ICD, C headers) | docs/IMPORT.md |
38
+ | Importers (CSV/Excel ICD, C headers, CAN databases) | docs/IMPORT.md |
39
+ | Published protocols (Modbus, CRSF, J1939, MAVLink 1, UBX; `wireforge init --protocol`) | docs/GUIDE.md, `protocols/` |
39
40
  | Quality, safety, traceability | quality/QUALITY_POLICY.md, docs/SAFETY.md, docs/CODING_RULES.md |
40
41
  | Architecture and design decisions | docs/ARCHITECTURE.md, docs/DECISIONS.md |
41
42
 
42
43
  Development: see CONTRIBUTING.md (`pip install -e ".[dev]"`, `cmake --preset dev && cmake --build --preset dev && ctest
43
44
  --preset dev`, all gates: `quality/run_all.sh`).
44
45
 
46
+ ## GitHub Action
47
+ `oguzhankynk/wireforge` is also a GitHub Action that validates a project, checks wire compatibility with the base of a
48
+ pull request and runs the generated tests (docs/integration/github_actions.md):
49
+
50
+ ```yaml
51
+ - uses: oguzhankynk/wireforge@v0.2.0
52
+ with: { project: icd }
53
+ ```
54
+
45
55
  ## License
46
56
  The `runtime/` library is MIT-licensed (see runtime/LICENSE): code generated by WireForge belongs to you and depends
47
57
  only on this MIT-licensed runtime, so shipping it in your product carries no restriction.
48
58
 
49
59
  Everything else (the CLI, code generator, server, web UI, and MCP server) is licensed under the Business Source
50
60
  License 1.1 (see LICENSE): free for development, testing, and evaluation; a commercial license is required for
51
- production use. It converts to MIT on 2036-10-17. Contact the Licensor for commercial licensing.
61
+ production use, except that running it in continuous integration (validation, comparison with earlier
62
+ revisions, generated tests) is free, also in commercial product repositories. It converts to MIT on 2036-10-17. Contact the Licensor for commercial licensing: kaynak.oguzhan0@gmail.com.
@@ -1,5 +1,5 @@
1
1
  # Version of the WireForge CMake package; compatible within the same major version.
2
- set(PACKAGE_VERSION "0.1.0")
2
+ set(PACKAGE_VERSION "0.2.0")
3
3
  if(PACKAGE_FIND_VERSION VERSION_GREATER PACKAGE_VERSION)
4
4
  set(PACKAGE_VERSION_COMPATIBLE FALSE)
5
5
  else()
@@ -1,3 +1,3 @@
1
1
  """WireForge: schema-driven wire-format toolkit."""
2
2
 
3
- __version__ = "0.1.0"
3
+ __version__ = "0.2.0"