Skip to content
This repository was archived by the owner on Mar 21, 2025. It is now read-only.

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 subscribe to this conversation on GitHub. Already have an account? Sign in.
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