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

Commits to relicense Daffodil to Apache v2 #25

Merged

Conversation

stevedlawrence
Copy link
Member

Now that all necessary SGA's are in place (Tresys, NCSA, IBM), we can relicense Daffodil to Apache v2 and change the package name to org.apache.daffodil. This work is split up into four commits to make it easier to review. Each commit contains a detailed description, but the high level changes are:

  1. Move directory structure to org/apache/daffodil. Everything here is a 100% rename so shouldn't be too difficult to review
  2. Change package names and xml namespaces to org.apache. Mostly changes package/imports, but does include some code for xmlns backwards compatability
  3. Remove unused files and cruft--less to worry about with relicensing
  4. Relicense to Apache v2. Adds NOTICE/LICENSE files. Changes license of all files (except where we aren't supposed to, e.g. Passera/scala files)
  5. Run dos2unix on all files.

DAFErrorExpr(functionQNameString, functionQName, args)
}

case (RefQName(_, "error", DAF_APACHE), args) => {
Copy link
Member Author

Choose a reason for hiding this comment

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

Actual code change other than package rename.

text
}
}
}
Copy link
Member Author

Choose a reason for hiding this comment

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

Actual code change other than package rename. Provides backwards compatibility for schemas using old imports.

val EXT_NS_APACHE = NS(DAFFODIL_EXTENSION_NAMESPACE_APACHE.uri)

private val DAFFODIL_INTERNAL_NAMESPACE = NS(DAFFODIL_EXTENSIONS_NAMESPACE_ROOT_APACHE + ":int")
val INT_PREFIX= "dafint"
Copy link
Member Author

Choose a reason for hiding this comment

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

Actual code change other than package rename. Provides backwards compatability with old Daffodil xml namespaces.

@@ -0,0 +1,20 @@
Apache Daffodil
Copy link
Member Author

Choose a reason for hiding this comment

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

New NOTICE file for the source.

@@ -1,69 +1,370 @@
Copyright (c) 2010 NCSA. All rights reserved.
Copy link
Member Author

Choose a reason for hiding this comment

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

New LICENSE file for the source.

@@ -0,0 +1,88 @@
Apache Daffodil
Copy link
Member Author

Choose a reason for hiding this comment

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

New NOTICE file for CLI releases.

@@ -0,0 +1,541 @@

Copy link
Member Author

Choose a reason for hiding this comment

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

New LICENSE file for CLI releases.

@@ -1,15 +0,0 @@
Because the CLI tests spawn a sub-shell and exec the daffodil program
Copy link
Member Author

Choose a reason for hiding this comment

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

This content was consolidated into daffodil-cli/README.md since Apache Rat doesn't realize this filename as a readme and complains about missing apache license. However, the content probably doesn't actually belong in the Daffodi CLI Readme, since that is more about how to run the CLI released in zip/tar/rpm. This probably really belongs in the root README cli since that talks about how to run cli tests and it more related to source that a release.

Copy link
Contributor

@mbeckerle mbeckerle left a comment

Choose a reason for hiding this comment

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

+1

@@ -1,9 +0,0 @@
#!/bin/bash
Copy link
Contributor

Choose a reason for hiding this comment

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

Review tool won't let me add a comment on the prior file (index.html) because the diff is too large.

We should publish the HTML version of the spec on the apache daffodil web site for users. Right now the fact that this is published on our NCSA deliverables is the only place it is accessible to my knowledge.

Copy link
Member Author

Choose a reason for hiding this comment

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

It's currently published on the apache website at http://daffodil.apache.org/docs/dfdl/ linked under the docs menu item.

NOTICE Outdated
- XMLSchema.xsd (https://www.w3.org/2001/XMLSchema.xsd)
- xml.xsd (https://www.w3.org/2001/xml.xsd)
- datatypes.dtd (https://www.w3.org/2001/datatypes.dtd)
- XMLSchema_for_DFDL.xsd (https://www.w3.org/2001/XMLSchema.dtd)
Copy link
Member Author

Choose a reason for hiding this comment

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

A discussion recently popped up on the Apache incubator list about what belongs in the NOTICE file:

https://lists.apache.org/thread.html/911ba67907cbca6925851e448ac8a7e73a921cb59efb8ca028e15845@%3Clegal-discuss.apache.org%3E

This specifically mentions the W3C license. As I understand it, the conclusion is that we should be careful what goes in a NOTICE file since it is sortof viral. And since the W3C License does not specifically call out how attribute should be made (like the Apache v2 license), it is not required to be put in the NOTICE file. The same content is already in the LICENSE file which is sufficient for attribution, so this should be removed. Same with the content in daffodil-cli/NOTICE.

Copy link
Contributor

@jadams-tresys jadams-tresys left a comment

Choose a reason for hiding this comment

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

+1

This does not change content, this just moves files to the new
org.apache namespace directory layout. All changes should appear
like a 100% rename.

DAFFODIL-1859
- Update package names to be org.apache.daffodil. This breaks API
  backwards compatibility, but only requires a small change to update
  imports and our user base is relatively small right now, so this
  should not affect too many people.
- Add new xml 'daf' namespace for daffodil.apache.org. Backwards
  compatibility is maintained with the previous namespace, and provides
  a pattern for adding new namespace versions for when that may be
  needed. All tests are updated to use the new namespace.
- Some external schema files might reference built-in-formats.xsd in an
  xs:include tag, using the old edu/illinos/ncsa/ directory structure.
  Backwards compatability is maintained by automatically replacing and
  schemaLocations to edu/illinois/ncsa/daffodil/ with
  org/apache/daffodil. A warning id displaying saying the path is
  deprecated.

DAFFODIL-1859
Over the years many files have been added to the repo that are longer
needed in the repo. This includes the DFDL specificaiton, old test
files, out of date documentation, scripts that have since been replaced
by the CLI, and schemas that have been moved to external repositories.
This removes these files from this repository.

DAFFODIL-1859
- Add LICENSE and NOTICE files for both the repo and the tar/zip/rpm
  that can be generated
- Add the Apache v2 license header where appropriate (some Scala library,
  Passera, and Open Grid Forum files maintain their existing permissive
  licensing)
- Update tests that had line number changes due to the new license header
- Add .rat-excludes file for use with Apache Rat so that it ignores test
  files and files we expect to not have a non-Apache license
- Remove sbt license generator plugin. It cannot generate the type of
  license file we want and adds extra sbt complexity for licenses it
  does not know about or packages for which it can't automatically
  determine the license. Easier to just manually maintain license files.

DAFFODIL-1859
The previous change to add the Apache license header always used unix
style line endings. If any files used dos style, they would have mixed
line endings and can be difficult to edit and read. This makes
everything consistent to use unix style line endings. There are no
changes in this patch except for line-endings.

DAFFODIL-1859
@stevedlawrence stevedlawrence merged commit 50dc6d3 into apache:master Feb 8, 2018
@stevedlawrence stevedlawrence deleted the daffodil-1859-apache-license branch February 8, 2018 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants