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

Proposal to Move Hedera Core Network Software to LFDT #20

Open
wants to merge 29 commits into
base: gh-pages
Choose a base branch
from

Conversation

hendrikebbers
Copy link

Proposal for Hedera added.

@hendrikebbers hendrikebbers requested a review from a team as a code owner August 14, 2024 11:42
@hendrikebbers hendrikebbers force-pushed the hedera-hashgraph branch 2 times, most recently from c2eeb5f to 77f8443 Compare August 14, 2024 14:44
@swcurran swcurran changed the title Proposal added Proposal to Move Hedera Core Network Software to LFDT Aug 14, 2024
@swcurran
Copy link
Contributor

I tweaked the title to make it clear in emails what the PR is about. Also — a previous commit requires DCO signoff — DCO - Developer Certificate of Origin - https://github.com/apps/dco. Details about how to fix are in the “Details” link beside the failed check.

Copy link
Contributor

@tkuhrt tkuhrt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the proposal. I made a few minor suggested edits and added some questions.

HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
Today, Snyk is used to create automatic dependency and license overviews of the subprojects.
The attached file [`dependencies-client-sdks.csv`](../assets/hedera-licenses-sdks.csv) contains a list of all
dependencies of our SDK projects.
Next to that, the attached file [`licenses.cvs`](../assets/hedera-licenses.csv) contains an overview of all licenses that
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seeing a few dependencies that are non-permissive (e.g., GPL) in the list. Is there an intention to replace these dependencies with a permissive license dependency?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you provide a list of all licences in hedera-licenses.csv that are problematic? By doing so we can identify the dependencies and define actions for each of them.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a list of licenses from hedera-licenses-sdk.csv:

  • ""
  • "Apache-2.0, MIT"
  • "BSD-2-Clause, MIT, Apache-2.0"
  • "BSD-3-Clause, GPL-2.0"
  • "BSD-3-Clause, MIT"
  • "BSD-3-Clause, Unlicense, Unknown"
  • "CDDL-1.1, GPL-2.0-with-classpath-exception"
  • "GPL-3.0, LGPL-3.0"
  • "MIT, CC0-1.0"
  • "WTFPL, MIT"
  • 0BSD
  • Apache-2.0
  • BSD-2-Clause
  • BSD-3-Clause
  • CC-BY-3.0
  • CC-BY-4.0
  • CC0-1.0
  • EDL-1.0
  • GPL-2.0
  • ISC
  • LGPL-2.1
  • LGPL-3.0
  • MIT
  • MPL-2.0
  • Public-Domain
  • Python-2.0
  • Unknown
  • Unlicense

The dependencies with "" or Unknown licenses are something that should be researched to determine what the actual license is.

The lines that have "GPL-2.0" and "CDDL-1.1" are also of concern as these are non-permissive licenses. There may be others, as I am not familiar with all of these licenses.

Also, are those lines that contain multiple licenses "one-of" or something else?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a list of licenses from hedera-licenses.csv:

  • "0BSD, BSD-2-Clause"
  • "AFL-2.1, BSD-2-Clause"
  • "AFL-2.1, BSD-3-Clause"
  • "Apache-2.0, BSD-2-Clause"
  • "Apache-2.0, BSD-2-Clause, BSD-3-Clause, BSL-1.0, CC0-1.0, MIT"
  • "Apache-2.0, BSD-2-Clause, BSD-3-Clause, EDL-1.0, EPL-2.0, GPL-2.0-with-classpath-exception, MIT, Public-Domain, W3C"
  • "Apache-2.0, BSD-2-Clause, MIT, Protobuf"
  • "Apache-2.0, BSD-3-Clause"
  • "Apache-2.0, BSD-3-Clause, MIT"
  • "Apache-2.0, EPL-1.0"
  • "Apache-2.0, EPL-2.0, GPL-3.0"
  • "Apache-2.0, GPL-2.0, MPL-1.1"
  • "Apache-2.0, LGPL-2.1"
  • "Apache-2.0, LGPL-2.1, MPL-1.1"
  • "Apache-2.0, LGPL-3.0"
  • "Apache-2.0, LGPL-3.0-or-later"
  • "Apache-2.0, LGPL-3.0-or-later, MIT"
  • "Apache-2.0, MIT"
  • "Apache-2.0, MPL-1.1"
  • "BSD-1-Clause, BSD-2-Clause"
  • "BSD-1-Clause, BSD-2-Clause-Views"
  • "BSD-2-Clause, BSD-3-Clause"
  • "BSD-2-Clause, BSD-3-Clause, BSD-3-Clause-No-Military-License"
  • "BSD-2-Clause, BSD-3-Clause, HPND"
  • "BSD-2-Clause, GPL-2.0-only"
  • "BSD-2-Clause, GPL-3.0"
  • "BSD-2-Clause, MIT, Apache-2.0"
  • "BSD-3-Clause, Apache-2.0"
  • "BSD-3-Clause, GPL-2.0"
  • "BSD-3-Clause, LGPL-2.1"
  • "BSD-3-Clause, MIT"
  • "CC-BY-4.0, MIT"
  • "CC0-1.0, GPL-2.0-with-classpath-exception"
  • "CDDL-1.1, GPL-2.0-with-classpath-exception"
  • "CPL-1.0, EPL-1.0, IPL-1.0"
  • "EDL-1.0, EPL-1.0"
  • "EDL-1.0, EPL-2.0"
  • "EPL-1.0, EDL-1.0"
  • "EPL-1.0, GPL-2.0, LGPL-2.1"
  • "EPL-1.0, LGPL-2.1"
  • "EPL-2.0, GPL-2.0-with-classpath-exception"
  • "FTL, GPL-2.0"
  • "GPL-2.0, MIT"
  • "GPL-2.0-with-classpath-exception, CDDL-1.1"
  • "GPL-2.0-with-classpath-exception, MIT"
  • "GPL-3.0, LGPL-3.0"
  • "GPL-3.0, MIT"
  • "MIT, Apache-2.0"
  • "MIT, BSD-2-Clause"
  • "MIT, BSD-3-Clause"
  • "MIT, CC0-1.0"
  • "MIT, GPL-2.0"
  • "MIT, GPL-3.0-or-later"
  • "MIT, Unlicense"
  • "MIT, WTFPL"
  • "MIT, X11"
  • "MIT, Zlib"
  • "MPL-2.0, EPL-1.0"
  • "Ruby, BSD-2-Clause"
  • "Ruby, GPL-2.0"
  • "Unlicense, Apache-2.0"
  • "WTFPL, MIT"
  • AGPL-3.0
  • ANTLR-PD
  • Apache-2.0
  • BSD 0.00
  • BSD-2-Clause
  • BSD-3-Clause
  • BSL-1.0
  • BlueOak-1.0.0
  • CC-BY-3.0
  • CC-BY-3.0-US
  • CC-BY-4.0
  • CC0-1.0
  • CDDL-1.0
  • CDDL-1.1
  • CPL-1.0
  • EDL-1.0
  • EPL-1.0
  • EPL-2.0
  • EUPL-1.1
  • GPL-2.0
  • GPL-2.0-with-classpath-exception
  • GPL-3.0
  • ISC
  • LGPL-2.1
  • LGPL-3.0
  • MIT
  • MIT-0
  • MPL-2.0
  • ODC-By-1.0
  • OpenSSL
  • Public-Domain
  • Python-2.0
  • Unicode-DFS-2016
  • Unknown
  • Unlicense
  • WTFPL
  • ZPL-2.1
  • Zlib

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should check with LF Legal team on these licenses. cc: @hartm

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if this conversation goes off GH, please keep me cc'd, I have a bit of background on this topic

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracy, the licenses you reference have modifiers that may be ok with your lawyers, the one I think might be an issue is the CDDL:GPL-2.0-with-classpath-exception, CDDL-1.1, but as it is dual licensed the exception may make it ok.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tkuhrt thank you for the input.

HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
Since all the subprojects are part of separate repositories and even created in different programming languages,
their dependencies differ. Based on that, it doesn’t make sense to provide a global list of dependencies.
All dependencies and related licenses can be identified by automatic project analysis.
Today, Snyk is used to create automatic dependency and license overviews of the subprojects.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question:
How is the Snyk generated report analyzed or assessed? Is the tool also configured to flag (potentially as part of the CI process) the new dependency introduction that do not follow expected license?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will check and come back with more details.

HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
As shown, the Hedera ecosystem already contains several sub-projects that must be part of `PROJECT`.
All those sub-projects are necessary to deploy and run a full Hashgraph-based network and interact with that network.
All mentioned projects are currently part of the Hashgraph organization at GitHub.
Supplemental repositories include supporting tooling to deploy and validate a network built using the above codebases.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question:
Are these supplementary repositories currently part of the open-source hashgraph GitHub org? If yes, is there a plan to bring them as well to the LFDT?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hashgraph org currently contains way more repositories as we mentioned in this proposal. The mentioned repos here are the ones that we want to migrate "at the start". So yes, we plan to bring them to the LFDT. We will add more detail regarding the mentioned repos.

Comment on lines 163 to 167
While the GitHub Action workflow definitions are stored as part of the repository, we use custom action runners on
hardware in the Google Cloud.
The default GitHub action runners can not be used due to the complexity of `PROJECT`, especially for the services sub-project.
To continue the development of `PROJECT` based on best practices and continuous integration, we propose to set up
clones of the current hardware and action runners.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • additional questions:
  1. What about the infrastructure for these runners, where will those be installed and run?
  2. Does any developer making contributions to the project have access to run these?

To continue the development of `PROJECT` based on best practices and continuous integration, we propose to set up
clones of the current hardware and action runners.
The Hedera Hashgraph projects define teams with specific authorities.
Those configurations should be migrated, and maintainers and committers for each sub-project should be defined.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, please also work towards a process for maintainer's journey within the project.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@arsulegai I already updated the text regarding the action runners. Can you please check if the new version fits you?

Copy link
Author

@hendrikebbers hendrikebbers Aug 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a process for maintainer's journey

What do you mean with that comment?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hendrikebbers , I was referring to setting up a document for new contributors. They will use this document to learn how can they become one the maintainers someday with their persistent contribution efforts.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@arsulegai I already updated the text regarding the action runners. Can you please check if the new version fits you?

Thank you for clarifying that Hedera will continue to provide these runners on Google Cloud. It would be helpful to state the reason for this requirement either in a project's improvement plan or as an issue within the project's repositories. Future developers or contributors can reference the document to understand and eventually remove these runners' dependency.

HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
@arsulegai arsulegai requested a review from a team August 15, 2024 07:36
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
- Nikhil Vadgama (DLT Science Foundation) [<[email protected]>](mailto:[email protected])

# Abstract
This proposal outlines the plan to move Hedera’s core network software to the Linux Foundation’s Decentralized Trust Foundation.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would be good to clarify what core network software means, in particular whether this will provide a complete set of components to stand up a Hedera network?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All projects that are necessary to deploy and run a full network and interact with that network.

HIPs/hedera-hashgraph.md Outdated Show resolved Hide resolved
@ryjones ryjones requested review from a team and removed request for awaiken August 22, 2024 14:20
@tkuhrt
Copy link
Contributor

tkuhrt commented Aug 22, 2024

@hendrikebbers : It looks like DCO needs to be fixed. You can follow the instructions on the checks tab for details on how to fix.

@tkuhrt
Copy link
Contributor

tkuhrt commented Aug 22, 2024

APPROVED at the August 22, 2024 TOC meeting

@ryjones
Copy link
Member

ryjones commented Aug 22, 2024

@hendrikebbers if you could do a rebase and make this one or two commits that would be awesome; good time to fix the DCO, too. :)

hendrikebbers and others added 6 commits August 27, 2024 10:08
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Co-authored-by: Tracy Kuhrt <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Co-authored-by: Tracy Kuhrt <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
hendrikebbers and others added 16 commits August 27, 2024 10:08
Co-authored-by: Tracy Kuhrt <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Co-authored-by: Arun S M <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Co-authored-by: Arun S M <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Co-authored-by: Arun S M <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Co-authored-by: Arun S M <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Hendrik Ebbers <[email protected]>
Signed-off-by: Ry Jones <[email protected]>
@ryjones
Copy link
Member

ryjones commented Aug 27, 2024

@hendrikebbers @tkuhrt @jimthematrix please check this - I did some cherry-picks to fix up DCO issues

@ryjones
Copy link
Member

ryjones commented Sep 22, 2024

@hendrikebbers @tkuhrt @jimthematrix is this in a state where it can be merged, given the name is public now?

@tkuhrt
Copy link
Contributor

tkuhrt commented Sep 26, 2024

@hendrikebbers @tkuhrt @jimthematrix is this in a state where it can be merged, given the name is public now?

It would be good if we changed the names of the files from hedera* to hiero*. Then we can merge it.

@petermetz
Copy link

@hendrikebbers @tkuhrt @jimthematrix is this in a state where it can be merged, given the name is public now?

It would be good if we changed the names of the files from hedera* to hiero*. Then we can merge it.

+1 - Later on it will only get more difficult to change the name.

@ryjones ryjones requested a review from tkuhrt September 27, 2024 16:59
Signed-off-by: Ry Jones <[email protected]>
@ryjones
Copy link
Member

ryjones commented Sep 27, 2024

@tkuhrt @petermetz I updated them. The repo names themselves I did not update.

@ryjones
Copy link
Member

ryjones commented Sep 27, 2024

@hendrikebbers please review the change I made.

@ryjones
Copy link
Member

ryjones commented Sep 27, 2024

@jimthematrix please re-review so it can be merged

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

Successfully merging this pull request may close these issues.

10 participants