diff options
| -rw-r--r-- | processing/chapter.tex | 96 | 
1 files changed, 87 insertions, 9 deletions
| diff --git a/processing/chapter.tex b/processing/chapter.tex index 4f8f029..a32f170 100644 --- a/processing/chapter.tex +++ b/processing/chapter.tex @@ -795,7 +795,7 @@ It is also not a method of the \python{Data} class, it is a bare function.  %  Join accepts multiple data objects and attempts to join them together.  %
  To do this, the variable and channel names must agree.  %
 -% TODO: join example
 +% TODO: join example (from Darien on slack)
  \section{Fitting}  % ==============================================================================
 @@ -832,20 +832,98 @@ Can be used directly...  Loops through...
  Returns model and outs...
 -\section{Construction and maintenance}  % =========================================================
 +\section{Construction, maintenance, and distribution}  % ==========================================
 +
 +While WrightTools has already been useful to the work done in the WrightGroup over the last 3
 +years, the true potential of the package is in potential future uses.  %
 +WrightTools is designed to be extended and continuously enhanced to serve an ever-wider set of
 +users and spectroscopies.  %
 +Despite it's name, WrightTools is built to be used even by those outside of the Wright Group.  %
 +Currently WrightTools may be only 75\% of what a typical multidimensional spectroscopist needs, but
 +if those scientists work to enhance the package with what \emph{they} need, they may also solve
 +problems for others such that the usefulness of the software gradually increases.  %
 +
 +In order for this dream to come true, WrightTools must be constructed and maintained by
 +collaborative tools such that users feel comfortable contributing to future enhancements.  %
 +It has not been easy to build this software as a group of 3 to 5 contributors, and the coordination
 +problems will be harder as more users and developers join.  %
 +To this end, the following section discusses strategies for keeping WrightTools collaborative and
 +useful.  %
 +
 +\subsection{Licensing}  % ------------------------------------------------------------------------
 +
 +In order to even talk about collaborative development, one must at least have an open source
 +license.  %
 +According to US copyright law, software is fully copyright protected by default.  % TODO: cite
 +Those writing software must explicitly license their project in order to ensure that users have
 +basic rights to copy edit and distribute code.  %
 +A whole set of licenses have been written to use for this purpose.  %
 +Briefly, strong copyleft licenses do not allow for software to be modified or enhancements without
 +sharing those enhancements under the same licenses.  %
 +These ``viral'' licenses are meant to force companies and individuals who would otherwise not open
 +source to share their code.  %
 +The strongest copyleft licenses do not even allow others to link against the licensed software
 +without themselves being copyleft.  %
 +This strategy has been moderately successful, but is becoming less popular.  % TODO: cite
 +Open source licenses are less opinionated, merely granting users the right to copy, modify,
 +distribute, and publish code without restriction except perhaps credit to the source.  %
 +
 +% TODO: link GPL, LGPL etc
 +
 +WrightTools is MIT licensed (otherwise called the Expat license).  %
 +This license is incredibly permissive and puts as few restrictions as possible on the end users.  %
 +Because the license is short, it is reproduced below.  %
 -\subsection{Collaborative development}  % ---------------------------------------------------------
 +\begin{dquote}
 +  The MIT License (MIT)
 -\subsection{Version control}  % -------------------------------------------------------------------
 +  Copyright (c) 2016-2018 WrightTools Developers.
 -\subsection{Unit tests}  % ------------------------------------------------------------------------
 +  Permission is hereby granted, free of charge, to any person obtaining a copy
 +  of this software and associated documentation files (the "Software"), to deal
 +  in the Software without restriction, including without limitation the rights
 +  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 +  copies of the Software, and to permit persons to whom the Software is
 +  furnished to do so, subject to the following conditions:
 +
 +  The above copyright notice and this permission notice shall be included in all
 +  copies or substantial portions of the Software.
 +
 +  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
 +  NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 +  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 +  DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 +  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 +\end{dquote}
 +
 +As an aside, since Python is an interpreted language the source code of a library \emph{must} be
 +distributed for that library to work.  %
 +In this way, ``closed-source Python'' is a kind of oxymoron.  %
 +However many Python libraries end up being interfaces to compiled code that could in theory be
 +closed-source.  %
 +The Scientific Python Stack have MIT-compatible licenses, including BSD-like licenses.  %
 +
 +\subsection{Distribution}  % ----------------------------------------------------------------------
 -\section{Distribution and licensing} \label{pro:sec:disbribution}  % ==============================
 +How does WrightTools get onto end-users machines?  %
 +Distribution...
 -WrightTools is MIT licensed.  %
 +WrightTools is distributed on PyPI and conda-forge.  %
 -WrightTools is distributed on PyPI and conda-forge.
 +WrightTools uses semantic versioning.  %
 +
 +% TODO: citations to WrightTools on PyPI and conda-forge
 +
 +\subsection{Collaborative development}  % ---------------------------------------------------------
 +
 +Git...
 +
 +\subsection{Unit tests}  % ------------------------------------------------------------------------
 +
 +Unit testing...
  \section{Future directions}  % ====================================================================
 -Single variable decomposition.
\ No newline at end of file +Single variable decomposition.  %
 +
 +Usage in next-generation simulation packages.  %
\ No newline at end of file | 
