Giter Site home page Giter Site logo

Comments (6)

agibson-bluecat avatar agibson-bluecat commented on July 17, 2024 2

@Bobgy I think it would be nice to allow manual path overrides by the user in case they have dependencies which use non-standard paths for their license files. This way the behaviour of go-licenses could be predictable (even for repos with dual licenses), and we wouldn't need to wait for go-licenses to add support for every license location that any module uses.

For example, I'm having an issue with the dependency github.com/hashicorp/cronexpr. This repo has dual licenses available at /GPLv3 and /APLv2. go-licenses doesn't recognize any license file in this repo, so it ends up outputting:

github.com/hashicorp/cronexpr,Unknown,Unknown

To make the go-licenses tool's behaviour as predictable as possible, I think something like the following would be a nice feature:

go-licenses csv . --override-license-paths overrides.json

Where the contents of overrides.json is a set of repo -> path kv pairs:

{
    "github.com/hashicorp/cronexpr": "/APLv2",
    ......
}

Another way to support this would be to allow multiple inline --override-path arguments, for example:

go-licenses csv . --override-path 'github.com/hashicorp/cronexpr=/APLv2' --override-path ......

What do you think?

from go-licenses.

Bobgy avatar Bobgy commented on July 17, 2024

It's very complex to programmatically understand the difference between dual-licensed (user can choose a license) vs contains code for both licenses (user must comply with both).

Yes, I think reporting both and show a warning to ask users to check can be a good step forward.

Open for suggestions and contribution.

from go-licenses.

Bobgy avatar Bobgy commented on July 17, 2024

Makes perfect sense to me.

Regarding how to override, ideally we support both an arg as well as a config file.

viper seems to be a go to option to achieve that.

from go-licenses.

Bobgy avatar Bobgy commented on July 17, 2024

Welcome contributions in this direction!

from go-licenses.

Bobgy avatar Bobgy commented on July 17, 2024

JFYI, https://stackoverflow.com/a/58470849 seems to be a code example to achieve that

from go-licenses.

Bobgy avatar Bobgy commented on July 17, 2024

Also note more complex cases exist:

  • One package has multiple licenses
  • One module has multiple packages with licenses
  • One module has non standard and unrecognizable license, so specifying license path may not be enough

We don't need to solve all of them at once, but for any proposed solution, it's better to quickly think how it may be extended for future requirements.

from go-licenses.

Related Issues (20)

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.