% \iffalse meta-comment
%
%% File: l3oldmodules.dtx Copyright (C) 2014 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
%%
%%    http://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 released version of this bundle is available from CTAN.
%%
%% -----------------------------------------------------------------------
%%
%% The development version of the bundle can be found at
%%
%%    http://www.latex-project.org/svnroot/experimental/trunk/
%%
%% for those people who are interested.
%%
%%%%%%%%%%%
%% NOTE: %%
%%%%%%%%%%%
%%
%%   Snapshots taken from the repository represent work in progress and may
%%   not work or may contain conflicting material!  We therefore ask
%%   people _not_ to put them into distributions, archives, etc. without
%%   prior consultation with the LaTeX3 Project.
%%
%% -----------------------------------------------------------------------
%
%<*driver|oldmodules>
\def\ExplFileDate{2014/09/06}
%</driver|oldmodules>
%<*driver>
\documentclass[full]{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 \ExplFileDate}

% \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}
%<l3seq>{l3seq}
%<l3skip>{l3skip}
%<l3str>{l3str}
%<l3tl>{l3tl}
%<l3token>{l3token}
%    \end{macrocode}
%
%    Then identify the current package:
%    \begin{macrocode}
\ProvidesPackage\old@liii@module@name
  [%
    \ExplFileDate\space v-no-info
    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 in the expl3 package}
\typeout{** }
\typeout{** After showing you an error message you can hit <return> we will continue}
\typeout{** for now by loading expl3 for you. However, at some point in the future}
\typeout{** the old packages will be removed.}
\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{*******************************************************************}
\PackageError\old@liii@module@name{This package is obsolete ---
   use 'expl3' instead}\@ehc
%    \end{macrocode}
%    Finally load \texttt{expl3} so that the user can continue for now.
%    \begin{macrocode}
\RequirePackage{expl3}
%</oldmodules>
%    \end{macrocode}
%
% \end{implementation}
%
% \endinput
