Skip to content

Conversation

@rocketstack-matt
Copy link
Member

@rocketstack-matt rocketstack-matt commented Nov 18, 2025

Addresses #1437

Type of Change

  • πŸ› Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • πŸ’₯ Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • πŸ“š Documentation update
  • 🎨 Code style/formatting changes
  • ♻️ Refactoring (no functional changes)
  • ⚑ Performance improvements
  • βœ… Test additions or updates
  • πŸ”§ Chore (maintenance, dependencies, CI, etc.)

Affected Components

  • CLI (cli/)
  • Shared (shared/)
  • CALM Widgets (calm-widgets/)
  • CALM Hub (calm-hub/)
  • CALM Hub UI (calm-hub-ui/)
  • Documentation (docs/)
  • VS Code Extension (calm-plugins/vscode/)
  • Dependencies
  • CI/CD

Commit Message Format βœ…

Testing

  • I have tested my changes locally
  • I have added/updated unit tests
  • All existing tests pass

Checklist

  • My commits follow the conventional commit format
  • I have updated documentation if necessary
  • I have added tests for my changes (if applicable)
  • My changes follow the project's coding standards

Copilot AI review requested due to automatic review settings November 18, 2025 16:06
@rocketstack-matt rocketstack-matt requested a review from a team as a code owner November 18, 2025 16:06
@github-actions github-actions bot added the calm label Nov 18, 2025
@rocketstack-matt rocketstack-matt mentioned this pull request Nov 18, 2025
9 tasks
Copilot finished reviewing on behalf of rocketstack-matt November 18, 2025 16:08
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces Draft 1437, which makes the CALM protocol field extensible and optional in relationship definitions. The change enables support for emerging protocols (like GraphQL, gRPC) without requiring schema updates, while maintaining backward compatibility with existing CALM models.

Key Changes:

  • Protocol definition changed from strict enum to anyOf pattern (enum values OR any string)
  • Protocol property removed from relationship schema (remains optional via additionalProperties: true)
  • Three example files demonstrating enum protocol, custom string protocol, and no protocol

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
calm/draft/1437/core.json New draft schema implementing extensible protocol definition and optional protocol property
calm/draft/1437/README.md Documentation explaining the proposal, rationale, and compatibility impact
calm/draft/1437/prototype/relationship-example-enum.json Example using predefined enum protocol value (HTTPS)
calm/draft/1437/prototype/relationship-example-with-string.json Example using custom string protocol value (GraphQL)
calm/draft/1437/prototype/relationship-example-no-protocol.json Example with no protocol field present

πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

],
"additionalProperties": true
},
"protocol": {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the benefit of making this a enum or string, rather than just a string?

Is it to encourage standard capitalization of some common values, and give examples of those common values?

Otherwise it might be an unnecessary complication of the schema definition.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following the same convention we adopted when we made the same change for node-type

@markscott-ms
Copy link
Contributor

Discussed in #1798 .

This PR makes protocol more extensible. It is a non-breaking change.

Change protocol to be just a 'string', but agreed to include in release 1.1.

aamanrebello
aamanrebello previously approved these changes Nov 24, 2025
rocketstack-matt and others added 18 commits November 24, 2025 16:33
Add comprehensive documentation for CALM Copilot Chatmode and Voice Mode
features to address GitHub issue finos#1755.

Changes:
- Add copilot-chatmode.md: Complete guide for setting up AI-powered
  development assistance with GitHub Copilot Chat, including setup,
  usage, specialized tools, and troubleshooting
- Add voice-mode.md: Comprehensive guide for hands-free interaction
  using VS Code Speech extension, covering installation, microphone
  setup, usage, best practices, accessibility, and platform-specific
  instructions for Windows/macOS/Linux
- Update index.md: Add links to new Copilot Chatmode and Voice Mode docs
- Update using-the-cli.md: Add copilot-chatmode command reference and
  AI-Powered Development section

Resolves: finos#1755
Bumps the npm_and_yarn group with 1 update in the /calm-models directory: [glob](https://github.com/isaacs/node-glob).


Updates `glob` from 10.4.5 to 10.5.0
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](isaacs/node-glob@v10.4.5...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <[email protected]>
* fix(deps): update minor updates

* chore(deps): update JaCoCo version and enhance dependency grouping in Renovate config

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matthew Bain <[email protected]>
Co-authored-by: rocketstack-matt <[email protected]>
Add experimental CALM Explorer tool for interactive visualization and exploration
of FINOS CALM (Common Architecture Language Model) architecture diagrams.

Key features:
- Interactive graph visualization with ReactFlow
- JSON editor with Monaco
- GitHub integration for loading CALM files
- Support for CALM patterns and nested containers
- Dagre-based automatic layout

Configuration changes:
- Add package-lock.json for CI compatibility
- Update workspace configuration for experimental/calm-explorer
- Add GitHub Actions workflow for building and testing
- Configure proper package naming (@finos/calm-explorer)
@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Nov 24, 2025

CLA Missing ID CLA Not Signed

One or more co-authors of this pull request were not found. You must specify co-authors in commit message trailer via:

Co-authored-by: name <email>

Supported Co-authored-by: formats include:

  1. Anything <[email protected]> - it will locate your GitHub user by id part.
  2. Anything <[email protected]> - it will locate your GitHub user by login part.
  3. Anything <public-email> - it will locate your GitHub user by public-email part. Note that this email must be made public on Github.
  4. Anything <other-email> - it will locate your GitHub user by other-email part but only if that email was used before for any other CLA as a main commit author.
  5. login <any-valid-email> - it will locate your GitHub user by login part, note that login part must be at least 3 characters long.

Please update your commit message(s) by doing git commit --amend and then git push [--force] and then request re-running CLA check via commenting on this pull request:

/easycla

@linux-foundation-easycla
Copy link

CLA Missing ID CLA Not Signed

One or more co-authors of this pull request were not found. You must specify co-authors in commit message trailer via:

Co-authored-by: name <email>

Supported Co-authored-by: formats include:

  1. Anything <[email protected]> - it will locate your GitHub user by id part.
  2. Anything <[email protected]> - it will locate your GitHub user by login part.
  3. Anything <public-email> - it will locate your GitHub user by public-email part. Note that this email must be made public on Github.
  4. Anything <other-email> - it will locate your GitHub user by other-email part but only if that email was used before for any other CLA as a main commit author.
  5. login <any-valid-email> - it will locate your GitHub user by login part, note that login part must be at least 3 characters long.

Please update your commit message(s) by doing git commit --amend and then git push [--force] and then request re-running CLA check via commenting on this pull request:

/easycla

@markscott-ms markscott-ms changed the title feat(calm): make protocol extensible and optional CALM Schema 1.2 - make protocol extensible and optional Nov 27, 2025
@markscott-ms markscott-ms changed the base branch from release-1.1 to release-1.2 November 27, 2025 20:19
@markscott-ms
Copy link
Contributor

Let's get #1872 into main, then sync main into release-1.2 branch, then get this merged in.

Why are there so many files???

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants