% \iffalse meta-comment
%
%% File: l3oldmodules.dtx Copyright (C) 2014-2017 The LaTeX3 Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
% license or (at your option) any later version.  The latest version
% of this license is in the file
%
%    https://www.latex-project.org/lppl.txt
%
% This file is part of the "l3kernel bundle" (The Work in LPPL)
% and all files in that bundle must be distributed together.
%
% -----------------------------------------------------------------------
%
% The development version of the bundle can be found at
%
%    https://github.com/latex3/latex3
%
% for those people who are interested.
%
%<*driver|oldmodules>
%</driver|oldmodules>
%<*driver>
\documentclass[full,kernel]{l3doc}
\begin{document}
  \DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
%
% \title{Obsolete individual modules}
%
% \author{^^A
%  The \LaTeX3 Project\thanks
%    {^^A
%      E-mail:
%        \href{mailto:latex-team@latex-project.org}
%          {latex-team@latex-project.org}^^A
%    }^^A
% }
%
%
% \date{Released 2017/12/16}
%
% \maketitle
%
% \section{Introduction}
%
% \begin{documentation}
%   The source code for \texttt{expl3} is organized by modules, e.g.,
%   integer processing is found in \texttt{l3int.dtx}, etc. Initially
%   each such module was used to generate a corresponding
%   \texttt{.sty} that was then loaded as part of the \texttt{expl3}
%   package.
%
%   It was however also possible to load only individual modules (they
%   would then load other modules as necessary.  This scheme was done
%   to ease testing and updates during the time the kernel code saw a
%   lot of update.
%
%   However, keeping dependencies between modules current became a
%   complex task and in fact most modules would require most other
%   modules so that in the end everything or nearly everything was
%   loaded anyway.
%
%   We therefore decided to stop providing individual module packages
%   but instead generate all code into a single file that is then
%   loaded as part of the \texttt{expl3} package. This decision was
%   announced a while back and with the recent \texttt{expl3}
%   distributions it because a reality.
%
%   To help user that do have code or documents referencing the old
%   module packages, we provide (for the time being) skeleton packages
%   that generate an error message and then load the \texttt{expl3} so
%   that the user can continue.
%   Eventually these packages will get fully removed.
% \end{documentation}
%
% \section{Implementation}
%
% \begin{implementation}
%
%    First store the current package name in a macro for later use.
%    \begin{macrocode}
%<*oldmodules>
\def\old@liii@module@name
%<l3basics>{l3basics}
%<l3bootstrap>{l3bootstrap}
%<l3box>{l3box}
%<l3candidates>{l3candidates}
%<l3clist>{l3clist}
%<l3coffins>{l3coffins}
%<l3color>{l3color}
%<l3expan>{l3expan}
%<l3file>{l3file}
%<l3fp>{l3fp}
%<l3int>{l3int}
%<l3keys>{l3keys}
%<l3msg>{l3msg}
%<l3names>{l3names}
%<l3prg>{l3prg}
%<l3prop>{l3prop}
%<l3quark>{l3quark}
%<l3regex>{l3regex}
%<l3seq>{l3seq}
%<l3skip>{l3skip}
%<l3sort>{l3sort}
%<l3str>{l3str}
%<l3tl>{l3tl}
%<l3tl-analysis>{l3tl-analysis}
%<l3tl-build>{l3tl-build}
%<l3token>{l3token}
%    \end{macrocode}
%
%    Then identify the current package:
%    \begin{macrocode}
\ProvidesPackage\old@liii@module@name
  [%
    2017/03/18 Obsolete L3 package
  ]
%    \end{macrocode}
%    Describe the current situation on the terminal, then generate an
%    error to ensure that the message is actually seen.
%    \begin{macrocode}
\typeout{*****************************************************************}
\typeout{** }
\typeout{** Package \old@liii@module@name\space is obsolete and has been removed!}
\typeout{** }
\typeout{** Its functionality is now only provided as part of the expl3 package.}
\typeout{** }
%<!l3regex&!l3sort&!l3tl-analysis&!l3tl-build>\typeout{** After showing you an error message you can hit <return> we will continue}
%<!l3regex&!l3sort&!l3tl-analysis&!l3tl-build>\typeout{** for now by loading expl3 for you. However, the old packages will be}
%<!l3regex&!l3sort&!l3tl-analysis&!l3tl-build>\typeout{** removed entirely at the end of 2017.}
%<l3regex|l3sort|l3tl-analysis|l3tl-build>\typeout{** The old packages will be removed entirely at the end of 2018.}
\typeout{** }
\typeout{** Therefore, please replace '\string\usepackage{\old@liii@module@name}'}
\typeout{** with '\string\usepackage{expl3}' in your documents as soon as possible.}
\typeout{** }
\typeout{*******************************************************************}
%<!l3regex&!l3sort&!l3tl-analysis&!l3tl-build>\PackageError
%<l3regex|l3sort|l3tl-analysis|l3tl-build>\PackageWarning
  \old@liii@module@name{This package is obsolete ---
   use 'expl3' instead}
%<!l3regex&!l3sort&!l3tl-analysis&!l3tl-build>  \@ehc
%    \end{macrocode}
%    Finally load \texttt{expl3} so that the user can continue for now.
%    \begin{macrocode}
\RequirePackage{expl3}
%</oldmodules>
%    \end{macrocode}
%
% \end{implementation}

