> > > Please, no. The inclusion of the third-party code into the project > repository has non-trivial licensing implications. >
I do not think (but correct me if I am wrong) that this is the case. I think once the licence is OK, it has very little implications. The implications are mostly when you redistribute the code, not when you add it to your repository with the appropriate LICENCE information. I don't think ASF cares too much about what is committed in the repo, but what is important (and what as PMC I am responsible for) is what gets into the official release: http://www.apache.org/legal/release-policy.html. I would love to hear what legal has to say about it, but judging from some recent discussions this is very clear from legal point of view they only care about the releases See the answer of Roman who is the "VP, Legal Affairs of ASF: https://issues.apache.org/jira/browse/LEGAL-549?focusedCommentId=17255359&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17255359 Quote: > The most important thing, however, is that this doesn't seem to be a LEGAL issue at all. > How you release what's cooking is your projects business and while there may be helpful practices to learn from all that ASF cares about is that: > > 1. there's a tarball(s) that gets voted on > 2. that tarball(s) gets published on ASF infra The .github code should pretty much never be released as source code release in the ASF infra tarball. So as long the licence allows to copy the code, placing it in you repo has no legal implications. > GitHub Action should be treated not that different from any other project > dependency. > If infra team forbids action reuse from external repositories, then they > should forbid third-party dependencies as well. > You keep repeating it, but it is simply not true. We discussed it already and GitHub actions have far more access than any other dependency because they have potentially uncontrolled access to write to your project. This is unlike any other dependencies which you must explicitly give that permission to. You seem to skip over that fact constantly. This is not an opinion, this is a fact, reality that you must start facing. I am not sure why you do not see this - the answers from INFRA were very clear about it. We are talking about the case that at any point in time your 3rd-party dependency can start making changes to your Github Repository. None of the other dependencies can do that (barring the problem with write access to the repo with checkout which I already reported as critical security to GitHub and I hope they close that). The last problem you can also mitigate by setting 'persist-credentials' to false (which I did). I am sure INFRA will work on a solution to enforce some of those best practices soon as well and you will have no choice by obeying them. > > GitHub Action has virtually the same grants as any other build system > plugin performing the build. > Nope. They have more. They can have implicit (hidden in action.xml) access to write GITHUB_TOKEN which is not controllable by your workflow and is granted on Github Actions scheduler level, not explicitly by the workflow. This is far MORE than any of the dependencies and you seem to ignore this reality constantly. > > Go ahead, shutdown internet connectivity at the ASF build servers, and > require every ASF release to be buildable with access to the ASF repository > only. > Nobody (except you) asks nor proposes that. > > Jarek>Rather than cloning the whole repository to a new repo in 'apache' > they copied and committed the action code into .github/actions/ folder in > their project > > That sounds like a lot of duplication. > So? What's the problem with that > > If the action is cloned to the single Apache repository, then it can be > reused across all the Apache projects. > There are always two sides of reuse. One is removal of duplication but another is coupling that it involves. People often forget that coupling has a hidden cost. In this case, if I DELETE the repo, I will immediately impact all other projects using them. That's hell of a coupling. And to be honest this is precisely what I am going to do. Once we move the actions as subrepos I am going to remove the forks I created. I am going to warn those that I know used it but there might be more people who used it since that I am not aware of. This is a much bigger cost than copying a few hundreds lines of code. Actions are usually rather small On the other hand, if the action is copied to each subfolder, then each > project would have to copy the same > thing again and again :( > So ? Actions are mostly static. We upgraded our actions (besides the intensive effort when I was developing it) maybe 2 or 3 times over the last year. And subrepo greatly helps with that. > > I expect subrepo might result in less than trivial merge conflicts. > Not really. Subrepo only works on the subfolder. If you just "use" the actions, there are never any conflicts, if you switch to a new version, you just bring in the squashed commit (single commit!) of the changes since the last time you got it. The conflict might arise only when you start modifying the action locally but this is the risk you might want to take if you do local modifications and do not care about merging it upstream (which I always do when I modify the code), and subrepo helps with that as well. It separates out the changes you've made from those that were brought from upstream and gives you tools to make a commit in your fork from those changes that you can immediately turn into PR to that upstream repo. Been there, done that. > > Vladimir > -- +48 660 796 129