aboutsummaryrefslogtreecommitdiff
path: root/processing
diff options
context:
space:
mode:
authorBlaise Thompson <blaise@untzag.com>2018-03-26 19:52:39 -0500
committerBlaise Thompson <blaise@untzag.com>2018-03-26 19:52:39 -0500
commit8c899a01c80fdceab395e5c11389ca8334c67864 (patch)
treefe221fa54a057dbc9c8341775c3e9b4c2dfecea9 /processing
parentd29370edbb0eeb56ec3aabff437c048b7d9ee178 (diff)
2018-01-26 19:52
Diffstat (limited to 'processing')
-rw-r--r--processing/chapter.tex96
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