Peter, Broadly speaking there are a few ways code becomes part of the project as I understand it.
1) An author, an individual contributor, provides a source code contribution to the Apache project that is an original work of that author. This could be a patch attached to a JIRA or as a pull request via github, etc.. The author of the code is the contributor themselves and they're doing it as a contribution to the ASF and to that apache project specifically. You'd use our standard source header and it would be ALv2 licensed entirely and can have dependencies from any of the approved legal [1] licenses of type A or B. 2) An author, an individual contributor, provides a source code contribution to the Apache project that is one or the other or a combination of of a work of the original author and includes copied code from some other location. The original work of the author is just like #1 above. The part they copy/pasted must be cited in the nifi source NOTICE consistent with how we handle [2] licensing which is meant to be consistent with ASF guidance and it must strictly be source code that is clearly from the approved legal type category A [3]. For whole class files copied in or for mostly fully copied items you must keep the headers they had - not just add the standard ASF ones as per [4]. Or you, if you're the original author/agent/owner of the code can provide written permission to do so [4]. 3) The author or representative of the author can submit code to the Apache IP Clearance process as called out in [2] with the intent of moving the work to the Apache project for follow on care and feeding. This should start with a discuss thread to the community they wish to transfer the project to and if that goes well result in a VOTE thread with the project agreeing to take it on. The code must be ALv2 (i believe) and at that point would likely have packages changed, headers changed, etc as part of the IP clearance and actual import process. I'm sure there can be some variations here but i'm not quite sure to be honest. The IP clearance page describes the software grant agreement process and such in detail towards the bottom as well. #1 is super common and is the majority all day every day case we can handle within the project easily. #2 is less common but clear in handling and can easily be done within the project. #3 has never happened in NiFi as of yet but can be achieved if needed. #1 does not appear to be an option (as far as I can tell) here since it is already written elsewhere and has different headers/etc.. presumably and is not Copyright of ASF/etc.. #2 still is possible here. You can just copy paste in relevant code and we can maintain in nifi land from here forward. It would require NOTICE updates to reference the source code and any necessary NOTICE entries such as Copyrights. But, it would be forking the code which is presumably a fork of NiFi so could be a bit strange to manage the provenance of. Would you keep maintaining it in the other repo too? These sorts of things would need to be sorted out. #3 is possible and requires your organization (presuming they own the code) to help the community work through the IP clearance process if the community decides it is a good thing to transfer over. I am probably wrong on some of this and perhaps even significant bits. But I think generally the above serves as a decent starting point for discussion and understanding. [1] https://www.apache.org/legal/resolved.html [2] http://incubator.apache.org/ip-clearance/ [3] https://www.apache.org/legal/resolved.html#category-a [4] https://www.apache.org/legal/src-headers.html Thanks Joe On Tue, Jun 12, 2018 at 3:41 PM, Horváth Péter Gergely <[email protected]> wrote: > Hi All, > > I would like to make some contribution to NiFi out of a project that was > released on GitHub under Apache-2.0. NiFi Test [1] would allow a NiFi > instance to be started programmatically and unit-tests to be written > against flow files. > > The code base has been properly released as open source under the terms of > Apache-2.0 and now each file has the original licence header, something > like this; > > Copyright (c) 2018 XXXXX, All Rights Reserved. > Licensed under the Apache License, Version 2.0 (the "License"); > ... > > Based on my understanding this means that I have the green light to adapt > and contribute such pieces of codes into NiFi, since the license is the > same (Apache-2.0), and hence they are compatible. > > The question is: once I have a piece of software that was originally > released by someone else but was adapted to NiFi, what should be the license > header? > > Shall it retain the original copyright lines or should it contain the > generic NiFi license headers: > > Licensed to the Apache Software Foundation (ASF) under one or more > contributor license agreements. See the NOTICE file distributed with > this work for additional information regarding copyright ... > > > I am not sure I understand what is the appropriate approach here: can > someone shed some light on this, please? > > Thank you, > Peter > > [1] https://github.com/ThinkBigAnalytics/nifi-test
