Commit Graph

1035 Commits

Author SHA1 Message Date
Brad King 86578eccf2 Simplify CMake per-source license notices
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool.  Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience.  Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.

Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices.  It also references version control
history for more precise information.  Therefore we no longer need to spell
out the list of Contributors in each source file notice.

Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing".  The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.

Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically.  Manually fix up shebang lines and trailing
newlines in a few files.  Manually update the notices in a few files that the
script does not handle.
2016-09-27 15:14:44 -04:00
Daniel Pfeifer a2af850ba6 fix a batch of include-what-you-use violations 2016-08-17 01:08:13 +02:00
Kitware Robot d9fd2f5402 Revise C++ coding style using clang-format
Run the `Utilities/Scripts/clang-format.bash` script to update
all our C++ code to a new style defined by `.clang-format`.
Use `clang-format` version 3.8.

* If you reached this commit for a line in `git blame`, re-run the blame
  operation starting at the parent of this commit to see older history
  for the content.

* See the parent commit for instructions to rebase a change across this
  style transition commit.
2016-05-16 16:05:19 -04:00
Brad King 7cbab17871 Change version scheme to use only two components for feature levels
Historically CMake used three version components for the feature level.
We released new features while incrementing only the third version
component.  Since commit v2.8.2~105^2~4 (New version scheme to support
branchy workflow, 2010-04-23) we used the fourth version component for
bug-fix releases and the development date:

 <major>.<minor>.<patch>[.<tweak>][-rc<n>] = Release
 <major>.<minor>.<patch>.<date>[-<id>]     = Development

This solidified use of three components for the feature level, and was
necessary to continue releasing 2.x versions because:

* Some existing projects performed floating-point comparisons of
  ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} to 2.x numbers
  so ``x`` could never be higher than 9.

* Version 2.9.<date> was used briefly in post-2.8.0 development in
  CVS prior to the transition to Git, so using it in releases may
  have caused confusion.

Now that we are moving to 3.x versions, these two restrictions go away.
Therefore we now change to use only two components for the feature
level and use the scheme:

 <major>.<minor>.<patch>[-rc<n>] = Release
 <major>.<minor>.<date>[-<id>]   = Development
2014-02-19 09:30:13 -05:00
Brad King 5bfffd6f29 New version scheme to support branchy workflow
Prepare to switch to the workflow described by "git help workflows".  In
this workflow, the "master" branch is always used to integrate topics
ready for release.  Brand new work merges into a "next" branch instead.
We need a new versioning scheme to work this way because the version on
"master" must always increase.

We no longer use an even/odd minor number to distinguish releases from
development versions.  Since we still support cvs checkout of our source
tree we cannot depend on "git describe" to compute a version number
based on the history graph.  We can use the CCYYMMDD nightly date stamp
to get a monotonically increasing version component.

The new version format is "major.minor.patch.(tweak|date)".  Releases
use a tweak level in the half-open range [0,20000000), which is smaller
than any current or future date.  For tweak=0 we do not show the tweak
component, leaving the format "major.minor.patch" for most releases.
Development versions use date=CCYYMMDD for the tweak level.  The
major.minor.patch part of development versions on "master" always
matches the most recent release.

For example, a first-parent traversal of "master" might see

        v2.8.1      2.8.1.20100422    v2.8.2
           |              |              |
  ----o----o----o----o----o----o----o----o----

Since the date appears in the tweak component, the next release can
increment the patch level (or any more significant component) to be
greater than any version leading to it.  Topic branches not ready for
release are published only on "next" so we know that all versions on
master lead between two releases.
2010-04-23 09:44:23 -04:00
Brad King 96afb12087 Convert CMake to OSI-approved BSD License
This converts the CMake license to a pure 3-clause OSI-approved BSD
License.  We drop the previous license clause requiring modified
versions to be plainly marked.  We also update the CMake copyright to
cover the full development time range.
2009-09-28 11:43:28 -04:00
Brad King 98c51ff6dc ENH: Overhaul CMake version numbering
This moves the version numbers into an isolated configured header so
that not all of CMake needs to rebuild when the version changes.

Previously we had spaces, dashes and/or the word 'patch' randomly chosen
before the patch number.  Now we always report version numbers in the
traditional format "<major>.<minor>.<patch>[-rc<rc>]".

We still use odd minor numbers for development versions.  Now we also
use the CCYYMMDD date as the patch number of development versions, thus
allowing tests for exact CMake versions.
2009-03-05 15:17:07 -05:00
Bill Hoffman 7b45050c5d ENH: remove beta stuff from version 2008-06-13 10:15:13 -04:00
Brad King 0ea6a8d1a4 ENH: Simplified CMake version information using KWSys DateStamp feature. Reduced duplicate code in bootstrap script. 2007-11-14 21:17:53 -05:00
Andy Cedilnik 3cbfc4c914 STYLE: Nightly Version update 2007-11-13 23:13:18 -05:00
Andy Cedilnik 45a8e26fe1 STYLE: Nightly Version update 2007-11-12 23:03:25 -05:00
Andy Cedilnik 7bb9c3f955 STYLE: Nightly Version update 2007-11-11 23:05:55 -05:00
Andy Cedilnik eb113eaff0 STYLE: Nightly Version update 2007-11-10 23:11:06 -05:00
Andy Cedilnik 7859d9332d STYLE: Nightly Version update 2007-11-09 23:16:01 -05:00
Andy Cedilnik 38d15310a3 STYLE: Nightly Version update 2007-11-08 23:03:35 -05:00
Andy Cedilnik 274a5e94ea STYLE: Nightly Version update 2007-11-07 23:08:44 -05:00
Andy Cedilnik 768680f4d5 STYLE: Nightly Version update 2007-11-06 22:55:39 -05:00
Andy Cedilnik d0a7608bb1 STYLE: Nightly Version update 2007-11-05 22:32:45 -05:00
Andy Cedilnik 7bd73d3e0d STYLE: Nightly Version update 2007-11-04 22:00:40 -05:00
Andy Cedilnik f70eb07d99 STYLE: Nightly Version update 2007-11-03 23:04:09 -04:00
Andy Cedilnik c139a096c7 STYLE: Nightly Version update 2007-11-02 23:00:21 -04:00
Andy Cedilnik 676320f161 STYLE: Nightly Version update 2007-11-01 22:50:39 -04:00
Andy Cedilnik 158d9e2e68 STYLE: Nightly Version update 2007-10-31 22:48:26 -04:00
Andy Cedilnik 0386e711b8 STYLE: Nightly Version update 2007-10-30 23:04:35 -04:00
Andy Cedilnik c516724393 STYLE: Nightly Version update 2007-10-29 22:58:41 -04:00
Andy Cedilnik 37bd33ecea STYLE: Nightly Version update 2007-10-28 22:58:53 -04:00
Andy Cedilnik c2274dccdc STYLE: Nightly Version update 2007-10-27 23:05:50 -04:00
Andy Cedilnik ff5271760e STYLE: Nightly Version update 2007-10-26 23:11:13 -04:00
Andy Cedilnik 480b97a8e2 STYLE: Nightly Version update 2007-10-25 22:53:11 -04:00
Andy Cedilnik fec600550e STYLE: Nightly Version update 2007-10-24 23:20:39 -04:00
Andy Cedilnik 328615716c STYLE: Nightly Version update 2007-10-23 23:07:43 -04:00
Andy Cedilnik 5c8401f72e STYLE: Nightly Version update 2007-10-22 23:10:52 -04:00
Andy Cedilnik 98a48314c7 STYLE: Nightly Version update 2007-10-21 23:39:26 -04:00
Andy Cedilnik b06f9980e8 STYLE: Nightly Version update 2007-10-20 23:04:48 -04:00
Andy Cedilnik b6826affe8 STYLE: Nightly Version update 2007-10-19 23:03:58 -04:00
Andy Cedilnik 64c124be23 STYLE: Nightly Version update 2007-10-18 22:59:57 -04:00
Andy Cedilnik 83a3d37ff6 STYLE: Nightly Version update 2007-10-17 22:55:05 -04:00
Andy Cedilnik 15ff54bc8b STYLE: Nightly Version update 2007-10-16 22:51:25 -04:00
Andy Cedilnik fb4905aa62 STYLE: Nightly Version update 2007-10-15 22:43:54 -04:00
Andy Cedilnik fa513be657 STYLE: Nightly Version update 2007-10-14 22:40:48 -04:00
Andy Cedilnik eec2b7a2cb STYLE: Nightly Version update 2007-10-13 22:48:52 -04:00
Andy Cedilnik 7009e0745e STYLE: Nightly Version update 2007-10-12 22:45:37 -04:00
Andy Cedilnik 7fb4397f3c STYLE: Nightly Version update 2007-10-11 22:45:12 -04:00
Andy Cedilnik 0bd06d61b1 STYLE: Nightly Version update 2007-10-10 22:32:01 -04:00
Andy Cedilnik bacc31a4aa STYLE: Nightly Version update 2007-10-09 22:36:44 -04:00
Andy Cedilnik b02cbf5fad STYLE: Nightly Version update 2007-10-08 22:39:45 -04:00
Andy Cedilnik 999208dbd2 STYLE: Nightly Version update 2007-10-07 22:35:48 -04:00
Andy Cedilnik bdc1de21d1 STYLE: Nightly Version update 2007-10-06 22:42:35 -04:00
Andy Cedilnik 67398e26d2 STYLE: Nightly Version update 2007-10-05 22:31:12 -04:00
Andy Cedilnik b5ca9ba3c8 STYLE: Nightly Version update 2007-10-04 22:43:06 -04:00