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

Option to specify external configuration in a principled way #197

Closed
vjovanov opened this issue Feb 2, 2022 · 3 comments
Closed

Option to specify external configuration in a principled way #197

vjovanov opened this issue Feb 2, 2022 · 3 comments
Assignees
Milestone

Comments

@vjovanov
Copy link
Member

vjovanov commented Feb 2, 2022

We need to provide a way to specify externally the reachability configuration for the dependencies of the project. The format of the external configuration folder is TBD
but it will follow a convention that allows mapping from a dependency's artifact ID to the config files.

The first proposal for the DSL entry:

graalvmNative {
    metadataRepository {
        enabled = true // default false until official repo release, true and optional later
        // path and version are mutually exclusive
        version = "0.0.1" // this would be the only mandatory field
        path = "/home/usr/dev/conf-repo|http://my.repo/|http://my.repo/repo-1.1.1.zip" // custom location or a local folder for development. default: empty which redirects to the configuration repo.
        ignoreDependencies = ["com.google.guava:guava"] // dependencies for which the repo is ignored. The version is omitted. 
    }
    binaries {
        main { 
        }
    }
}

In the first version, the configuration would be provided locally. Later we can use the GitHub releases, repository clones, or any other future mechanism.

@vjovanov vjovanov self-assigned this Feb 2, 2022
@vjovanov vjovanov changed the title Make an MVP that uses a locally cloned configuration repo and applies the netty config from it Option to specify external configuration in a principled way Feb 3, 2022
@melix
Copy link
Collaborator

melix commented Mar 18, 2022

Fixed by #204 for Gradle. The name of the configuration block is currently jvmReachabilityMetadataRepository, which is a bit mouthful but accurate. We can shorten this to metadataRepository if needed.

graalvmNative {
    jvmReachabilityMetadataRepository {
        enabled = true // default false until official repo release, true and optional later
        // path and version are mutually exclusive
        version = "0.0.1" // this would be the only mandatory field
        path = "/home/usr/dev/conf-repo|http://my.repo/|http://my.repo/repo-1.1.1.zip" // custom location or a local folder for development. default: empty which redirects to the configuration repo.
        ignoreDependencies = ["com.google.guava:guava"] // dependencies for which the repo is ignored. The version is omitted. 
    }
    binaries {
        main { 
        }
    }
}

@sdeleuze
Copy link
Collaborator

+1 for using metadataRepository, in the context of being nested inside graalvmNative and properly documented that seems good enough to me.

@melix melix added this to the 0.9.11 milestone Mar 21, 2022
@melix melix assigned melix and unassigned vjovanov Mar 21, 2022
@sdeleuze sdeleuze modified the milestones: 0.9.11, 0.9.12 Mar 25, 2022
@lazar-mitrovic
Copy link
Collaborator

Fixed by #204, #240 and #247.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants