Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support a celerity.json project configuration file #30

Closed
Tracked by #62
alexrp opened this issue Feb 19, 2023 · 0 comments
Closed
Tracked by #62

Support a celerity.json project configuration file #30

alexrp opened this issue Feb 19, 2023 · 0 comments
Labels
area: build Issues related to the build system. area: common Issues related to the shared utility APIs. area: driver Issues related to the command line driver. area: tests Issues related to the test suite. area: tooling Issues related to the tooling layer.
Milestone

Comments

@alexrp
Copy link
Member

alexrp commented Feb 19, 2023

Something like:

{
    "name": "my-app", // Unique project identifier.
    "path": "src", // Optional path containing the project's own source files. Defaults to src.
    "kind": "executable", // Optional project kind (executable, library). Defaults to executable.
    "license": "0BSD", // Optional SPDX license expression.
    "version": "1.0.0", // Optional Semantic Versioning 2.0.0 version. Defaults to 0.0.0.

    // List of module search paths. The runtime will match the module path against the
    // prefixes listed here and then look up the remainder of the module path in the
    // specified directory.
    //
    // So e.g. LibA::Foo would find LibA here and then locate dep/lib-a/src/foo.cel,
    // whereas Company::LibB::Bar::Baz would locate dep/lib-b/src/bar/baz.cel.
    "paths": {
        "MyApp": "src", // Only necessary if the app itself uses e.g. MyApp::Main.
        "LibA": "dep/lib-a/src",
        "Company::LibB": "dep/lib-b/src",
    },

    // Overrides default lint severities.
    "lints": {
        "unused-local-symbol": null, // Don't run this pass at all.
        "test-without-assert": "none", // Hide diagnostics from this pass.
        "unreachable-code": "error" // Promote diagnostics from this pass to errors.
    }
}

The tooling APIs will pick this up and use it appropriately for the various celerity CLI commands.

Note that nothing about this file will flow transitively; we're intentionally keeping things super simple. A top-level executable project will have to declare module search paths for all dependencies, direct or transitive, that it needs. Also, the file is completely optional.

@alexrp alexrp added state: deliberation Issues that require design work and/or discussion. type: feature area: tooling Issues related to the tooling layer. labels Feb 19, 2023
@alexrp alexrp added this to the v1.0 milestone Feb 19, 2023
@alexrp alexrp self-assigned this Feb 19, 2023
@alexrp alexrp added state: approved Enhancements and tasks that have been approved. and removed state: deliberation Issues that require design work and/or discussion. labels Feb 23, 2023
@alexrp alexrp added area: driver Issues related to the command line driver. area: tests Issues related to the test suite. labels Mar 21, 2023
@alexrp alexrp mentioned this issue Mar 27, 2023
2 tasks
@alexrp alexrp added area: build Issues related to the build system. area: common Issues related to the shared utility APIs. labels Mar 30, 2023
alexrp added a commit that referenced this issue Apr 1, 2023
@alexrp alexrp closed this as completed in e954494 Apr 1, 2023
@alexrp alexrp removed the state: approved Enhancements and tasks that have been approved. label Apr 1, 2023
@alexrp alexrp removed their assignment Jan 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: build Issues related to the build system. area: common Issues related to the shared utility APIs. area: driver Issues related to the command line driver. area: tests Issues related to the test suite. area: tooling Issues related to the tooling layer.
Development

No branches or pull requests

1 participant