Giter Club home page Giter Club logo

freshli-agent-java's People

Contributors

dependabot[bot] avatar github-actions[bot] avatar mscottford avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

freshli-agent-java's Issues

Generate binary image using jlink

By using jlink to create a custom JRE and embedding it into the executable, we won't need to ship the JRE in the production Docker image for freshli. And that should result in smaller builds.

Docs: https://badass-runtime-plugin.beryx.org/releases/latest/

  • Add build task for generating custom runtime image with jlink
  • Update README.md with instructions for running the new task
  • Update acceptance test suite to run against the binary as built with jlink. (This is needed to confirm that we included the correct parts of the JRE. If we've missed anything then we should get runtime errors when those tests execute.)

Implement a `--version` argument

It can be difficult to determine if specific changes are included in the executable that someone has installed. To help with that difficulty, we need to add versions.

This should just output the application's version without any other information.

Implement `validating-package-urls`

This is a command that can be used to provide a list of packages for which the agent is able to retrieve their history by calling the retrieve-release-history command.

Create versioned releases

It can be difficult to determine if specific changes are included in the executable that someone has installed. To help with that difficulty, we need to add versions.

Versions should be incremented each time the main branch is updated. A matching Git tag should be created each time a version is created. The dependency-history-maven repository provides a good example of this in action. Note that dependency-history-maven is being deployed to Maven Central, but we don't want to publish this program there.

Windows support

We need to make sure that the application can be built, tested, and run on Windows. This is going to require some changes because various assumptions have been made that are not platform independent. Not the least of which is the OS file separator character (\ on Windows, but / on macOS and Linux). There are likely other issues as well.

Implement `retrieve-release-history`

retrieve-release-history

Used to get the release history for a specific package.

freshli-agent-java retrieve-release-history --list-valid-purls | package-url

What this command does?

Queries Maven repositories for the list of releases for a specific package. Lists each release version and the date it was released in a tabular format. The full package release history will be provided in the output regardless of the version that is specified in the package-url parameter.

Command Options:

  • --list-valid-purls
    Outputs pkg:maven, which is the only PURL type that this command supports. This option is used by other commands that need to figure out which Package URLs this command supports.
  • package-url
    A valid Package URL. The specified package's release history will be displayed in the command's output. If the package-url does not start with pkg:maven then this command will display an error.

Add a global parameter for cache database location and send to dependency-history-maven

To enable the use of the freshli CLI cache, the path to that cache needs to be provided as a global parameter, similar to how it is specified for the freshli executable. This location needs to be then provided to the dependency-history-maven project once it's support for caching to SQLite databases has been built (see corgibytes/dependency-history-maven#24). The caching support in dependency-history-maven will be configured to write to a table named AgentJavaHttpCache.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.