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

[node.js] provide a dash-licenses wrapper for Eclipse Foundation projects #278

Conversation

marcdumais-work
Copy link
Contributor

@marcdumais-work marcdumais-work commented Oct 30, 2023

This contribution provides a wrapper, to make it easier to integrate and run dash-licenses, in Eclipse Foundation projects repositories. It's mainly aiming to cover JavaScript and TypeScript projects, but might be usable in others too.

Once published to npm, the wrapper can be installed as a devDependency and used to run license checks locally on a developer's laptop and also as part of GitHub CI, using a provided example workflow file.

See nodejs-wrapper/README.md for more details

…ects

This contribution provides a wrapper, to make it easier to integrate and run
dash-licenses, in Eclipse Foundation projects repositories. It's mainly aiming
to cover JavaScript and TypeScript projects, but might be usable in others too.

Once published to `npm`, the wrapper can be installed as a devDependency and
used to run license checks locally on a developer's laptop and also as part
of GitHub CI, using a provided example `workflow` file.

See nodejs-wrapper/README.md for more details

Fixes eclipse-dash#96

Signed-off-by: Marc Dumais <[email protected]>
@waynebeaton
Copy link
Collaborator

I'm thinking that I want to put this into a separate repository. Thoughts?

Why is it dual-licensed?

@marcdumais-work
Copy link
Contributor Author

I'm thinking that I want to put this into a separate repository. Thoughts?

Yes, that works for me. The content of directory nodejs-integration would become the root of that new repository.

Why is it dual-licensed?

I wanted to discuss this. In this first draft I went with the exact license that this work is based-on - the dash-licenses integration in the main Theia repo. I was not sure, generally, if the secondary license should necessarily "transfer", in such a case. There is also a second possibility: I can demonstrate using git history that the Theia repo script this is based-on, "check_3pp_licenses.js", has been 100% contributed by my employer, and this contribution here as well, and so I believe re-licensing this contribution would be an easy option, if it helped, to drop the secondary licence. WDYT?

I also was wondering how comfortable you are with publishing a package to npm? It's not complicated but an account is needed. Perhaps this project already has an one? ATM there is no infrastructure to publish as part of CI, so this would need be done manually.

@waynebeaton
Copy link
Collaborator

The $1M question... will you be able to help maintain and support this content? I believe that the committer team currently lacks the skills require to maintain this.

@marcdumais-work
Copy link
Contributor Author

The $1M question... will you be able to help maintain and support this content? I believe that the committer team currently lacks the skills require to maintain this.

That's something I'd like to do. Let me check with my management and get back to you with a more definitive answer.

Signed-off-by: Marc Dumais <[email protected]>
@marcdumais-work
Copy link
Contributor Author

@waynebeaton I got permission to help maintain/support this contribution!

The Theia project, from which the main script here is from originally,
has a secondary license (GPL-2.0-only WITH Classpath-exception-2.0).
It's useful there for distribution/integration of Theia by 3rd parties,
but would apparently serve no purpose for a build and test dependency
such as the dash-licenses-wrapper.

As of this writing, the original script, "check_3pp_licenses.js" [1] has
been contributed-to only by Ericsson employees, and so we have the
power to re-license if necessary (in the case where it's not proper to
drop the second part of the original license expression:
"OR GPL-2.0-only WITH Classpath-exception-2.0").

[1]: Paul Marechal, Vincent Fugnitto and myself:
   https://github.com/eclipse-theia/theia/blame/v1.43.0/scripts/check_3pp_licenses.js
Signed-off-by: Marc Dumais <[email protected]>
@marcdumais-work
Copy link
Contributor Author

@waynebeaton will you be providing a new repository, that I can open this PR against?

In the meantime I am adding some tests and making improvements.

About the dual license: the more I think about it the more I conclude that the "OR" part of "EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0" can be interpreted literally, meaning it should be allowable to use only EPL-2.0 for this contribution. Can you say whether you disagree, in which case I can get someone to sign-off on re-licensing the part copied from Theia, used as starting point for this contribution (the copied part was contributed in whole by myself and colleagues).

@waynebeaton
Copy link
Collaborator

I created a new repository on GitLab (I'd like to move all of the Eclipse Dash work there eventually).

https://gitlab.eclipse.org/eclipse/technology/dash/license-tool/nodejs-wrapper

I agree with your conclusion regarding the license. My current thinking is that we should just leave the license expression in headers as they exist.

@marcdumais-work
Copy link
Contributor Author

I created a new repository on GitLab (I'd like to move all of the Eclipse Dash work there eventually).

Thanks!

https://gitlab.eclipse.org/eclipse/technology/dash/license-tool/nodejs-wrapper

I am less familiar with Gitlab - do you know if there's a built-in CI execution environment that we can use? Maybe something similar to GitHub workflows, that takes its config from the repo itself? Else I think any Merge Request would require fetching the code to test it locally, and rule-out future automated npm publishing.

@waynebeaton
Copy link
Collaborator

Well rats. It didn't occur to me that there would be CI implications.

If this is just easier on GitHub, then let's make the repository there. Agreed?

That's going to require some webmaster intervention...

@marcdumais-work
Copy link
Contributor Author

If this is just easier on GitHub, then let's make the repository there. Agreed?

That's going to require some webmaster intervention...

sounds good, thanks!

@waynebeaton
Copy link
Collaborator

I've created https://github.com/eclipse-dash and have asked the IT team to configure the org for Eclipse project use.

@waynebeaton
Copy link
Collaborator

We have a new repo. I believe that it's all configured.

https://github.com/eclipse-dash/nodejs-wrapper

Can you move this contribution there?

@marcdumais-work
Copy link
Contributor Author

Closing in favor of eclipse-dash/nodejs-wrapper#1

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

Successfully merging this pull request may close these issues.

2 participants