Git Product home page Git Product logo

grapes's Introduction

Grapes

Keep an eye on the dependencies of your software production with Grapes!

  • Uses a Grapes client to track the dependencies of your projects. Integrate them to your continuous integration get information at real time.
  • Generates reports thanks to Grapes server to track the corporate projects dependencies, the third parties libraries, the embedded licenses ...

Grapes gives you the opportunity to centralized the dependency information of your production. Tracking the dependencies and the life cycle of your binaries production becomes simpler even for distributed teams and production sites.

For more information visit our wiki. If you have any question about Grapes, you can check our FAQ. You can also contact the Grapes team, and reach the community by subscribing to the Google Groups.

Give a try to Grapes, more information about the demo instance on this wiki page.

N.B: This project is under Apache 2 license.

grapes's People

Contributors

drautureau avatar hgomez avatar jdcoffre avatar mganuci avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grapes's Issues

Need Tycho support.

We are using Tycho to allow us to use maven to build artifacts for our eclipse RCP GUI products - this allows a 'manifest-first' approach to dependency declaration. Some of these artifacts are also being used in the server runtime, which is (for the moment) a pure maven build. While we can get grapes to follow the dependencies in the pure maven build and generate the reports, it seems to be having problems following the tycho dependencies, which originate in the manifest rather than the pom. Is there any support currently in grapes to work with tycho? Has anyone else any experience working with tycho and grapes together?

Potential NPE while performing module deletion

When module are deleted from the database, it could brake dependency reports of ancestors. The aim of this task is to generate dependencies from module dependency information when the artifact is not stored in the database.

Add Organization @ post module time

While a module is post, a check should be perform if an organization could match the module. If yes, the organization should be set in the module.

Autocompletion for library formular in the Dependency Management

When we fill formular of a library, we need to many field each time. This operation is very fastidious when we have several libraries to treat. I would be very interesting to put in place auto completion system to suggest existing values when we fill fields. After settings can change between 2 major version of a library like the licence. In this case it could be intersting to suggest value of the previous version and the user will be able to change them if there are not correct for the new one.

Grapes should also take into consideration maven plugin dependencies

At this moment only the pom's root dependencies element is being taken into consideration. Since some plugins require dependencies to be declared within their definition, these will be ignored by grapes unless these are duplicated.

Even if we duplicate them, there is still the problem that some assemblies rely on what is defined in the pom's root dependencies, so a lot of refactoring would be required just for the sake of duplicating the plugin dependencies into the root dependencies.

Compute an artifact hit score

Feature

As a developer
I want to know how many times an artifact has been downloaded
In order to select the artifact which meet my needs and which is the most used by the developer community.

Acceptance Criteria

The user can list some artifacts and sort them by download score.

Restrict notification rights

If a user has notification rights, he can send all the information he want to the server. The aim of this task is to be able to restrict the notification to some modules.

As a Grapes notifier, I should be able to send modules if the module ID match a regular expression. If the Regexp does not match the module I am sending, I should get a 401 error. Default behavior (no regexp define), I should have no restriction on notification.

Make grapes-utils able to manage organizations

Since the implementation of Organization concept on server side, there is no way on client side to get the corporate groupid prefixes of a module.

As a client using grapes-utils, I want to be able to get the organization of a module.

knowing module ancestors with any version

Grapes let us know who depends on my module given a specific version.
But it would be usefull to know who depends on my module whatever its version is.
So I can check which versions of my module are used, and who are the users of my module in one request.

Use regexp to identify licenses at notification time

When a notification if done to the server, license names can be very different even for on single license: ASL 2.0 == Apache License 2.0.

To avoid to duplicate the licenses on Grapes server side, it would be great to use a regexp to identify licenses. The resolution will be performed at the notification time.

getting modules that my module depends on

Is it possible to know which modules my module depends on? instead of knowing the artifacts....
Examples
GET /module//dependencies returns
{
[ "name" : "depmodule1", ...],
[ "name" : "depmodule2", ...],
...
}
Could be cool to have also the module ancestors this way.
This way we can navigate from modules to modules with the same API.

Compute an artifact coupling score

Feature

As a developer
I want to know how much dependencies will I pull if I use this artifact
In order to select the artifact which meet my needs and which has the lower level of coupling.

Acceptance Criteria

The user can list some artifacts and sort them by coupling score.

Add module build info

Add a Map<String,String> field to modules that contains information about the module. The stored information should be free. Users should be able to put the information they want.

As a user, I want to be able to store/retrieve key/value information related to a module.

Handle manual Jongo object ID

Currently, the objects stored in Mongo database use auto generated Ids. These technical Ids are used by Mongo to differentiates elements of the database. These Ids are automatically indexed by the database and it is very efficient to retrieve elements using these Ids.

The problem is that there is no way for Grapes to forecast the Id of an element. Until now, to retrieve an element, Grapes applies a certain amount of filters.

The aim of this task is to handle element Ids manually (as it is described here http://jongo.org) to be able to get database element by Ids which will enhance the performances, lighten the code and reduce the number of DB calls at runtime.

Manage license in the grapes maven plugin

Currently the grapes maven plug-in only sends information about dependencies. A feature should be added to send license information of the built project and its dependencies.

Implement a jenkins plugin

A Jenkins plug-in should be implemented to notify Grapes directly from Jenkins.
A first step would be to create a plug-in for maven jobs. This way we could re-use Grapes Maven plug-in.

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.