Skip to content

Commit

Permalink
doc: integrate website repo into documentation/website (#1591)
Browse files Browse the repository at this point in the history
This removes the `website` submodule and instead integrates the entire
history of the `website` repository into the same location,
documentation/website.

The website repo is tightly tied to Open Dylan and so it belongs in the
same repo, in my opinion to a much larger extent than many of the
libraries in the `sources/lib` directory or DUIM or CORBA. Having it in
the opendylan repo will simplify maintaining the website; changes for
which I will be submitting a separate PR.

I followed [the second part of the answer by "gyim"
here](https://stackoverflow.com/questions/1759587/how-to-un-submodule-a-git-submodule)
to integrate the website repo after locally modifying the website repo
such that all of its files were located under a `documentation/website`
directory. To verify correctness I mainly checked that the logs for the
integrated website directory were temporally interleaved with the rest
of the opendylan repo.
  • Loading branch information
cgay authored May 13, 2024
2 parents 91d18e1 + 6f745e1 commit c5297fb
Show file tree
Hide file tree
Showing 153 changed files with 12,443 additions and 4 deletions.
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,6 @@
[submodule "sources/lib/meta"]
path = sources/lib/meta
url = https://github.com/dylan-lang/meta.git
[submodule "documentation/website"]
path = documentation/website
url = https://github.com/dylan-lang/website
[submodule "sources/app/deft"]
path = sources/app/deft
url = https://github.com/dylan-lang/deft
Expand Down
1 change: 0 additions & 1 deletion documentation/website
Submodule website deleted from 5fc6b8
3 changes: 3 additions & 0 deletions documentation/website/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
build
\#*
*~
48 changes: 48 additions & 0 deletions documentation/website/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Makefile for Sphinx documentation
#

# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
BUILDDIR = build

# Internal variables.
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(SPHINXOPTS) source
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(SPHINXOPTS) source

.PHONY: help clean html gettext changes linkcheck

all: html

help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"

clean:
-rm -rf $(BUILDDIR)/*

html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."

gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."

changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."

linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."

95 changes: 95 additions & 0 deletions documentation/website/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
This is the Open Dylan website.

It is built using `Sphinx <https://www.sphinx-doc.org/>`_. All content is
written using ReStructured Text with Sphinx extensions.

Preparation
===========

Installing system dependencies
------------------------------

Some system dependencies need to be satisfied first:

- Python 3 and its package manager pip3. (It may also be installed as just
"pip", but check whether that installs Python 2 packages.)
- Git
- Make

On a Debian-derivative, they're quite easy to fetch::

sudo apt install python3 python3-pip git make

Getting the source
------------------

The next step is fetching the repository and its submodule::

git clone --recursive https://github.com/dylan-lang/website.git # or your fork

Note that for now the "opendylan" repository is a submodule and it (along with
its own submodules) is rather large.

Installing Sphinx and the Furo Theme
------------------------------------

Now you need the Python dependencies. The easiest way to do this is to use
``pip3``::

sudo pip3 install -U Sphinx furo

You may also need ``python-dateutil``.

sudo pip3 install python-dateutil

Building
========

Building the website is easy on a system with ``make``::

make html

If you are on Windows, there is a ``make.bat`` as well. It currently requires
that you run it with an argument::

make.bat html # Best of luck! This hasn't been tested in ages.

The generated site will be in ``build/html``. For the stylesheets and
JavaScript to load correctly, we suggest running a local webserver
pointing to this directory::

python3 -m http.server --directory build/html

or you can eat our own Dylan dogfood and run our HTTP server! ::

git clone --recursive https://github.com/dylan-lang/http
cd http
make install
cd ...back to website dir...
http-server --directory build/html

Link Validation
---------------

Sphinx also makes it easy to check that all of the links to external sites
are valid. You can run the link checker by::

make linkcheck

Site Maintenance
================

New Binary Release of Open Dylan
--------------------------------

#. Update the appropriate info on the download page.


Updating Documentation
----------------------

The `update-opendylan.org.sh` script is run by cron to update the
documentation in various repositories by essentially doing a git pull
and make html.

*TODO:* more info here.
63 changes: 63 additions & 0 deletions documentation/website/make.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
@ECHO OFF

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set BUILDDIR=build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
set I18NSPHINXOPTS=%SPHINXOPTS% source

if "%1" == "" goto help

if "%1" == "help" (
:help
echo.Please use `make ^<target^>` where ^<target^> is one of
echo. html to make standalone HTML files
echo. gettext to make PO message catalogs
echo. changes to make an overview over all changed/added/deprecated items
echo. linkcheck to check all external links for integrity
goto end
)

if "%1" == "clean" (
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
del /q /s %BUILDDIR%\*
goto end
)

if "%1" == "html" (
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
goto end
)

if "%1" == "gettext" (
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
goto end
)

if "%1" == "changes" (
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
if errorlevel 1 exit /b 1
echo.
echo.The overview file is in %BUILDDIR%/changes.
goto end
)

if "%1" == "linkcheck" (
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
if errorlevel 1 exit /b 1
echo.
echo.Link check complete; look for any errors in the above output ^
or in %BUILDDIR%/linkcheck/output.txt.
goto end
)

:end
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@techreport{Bachrach:1999,
author = {Bachrach, Jonathan and Playford, Keith},
title = {D-Expressions: Lisp Power, Dylan Style},
year = {1999},
source = {http://people.csail.mit.edu/jrb/Projects/dexprs.pdf},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@techreport{Bachrach:2000,
author = {Bachrach, Jonathan and Burke, Glemm},
title = {Partial Dispatch: Optimizing Dynamically-Dispatched Multimethod Calls with Compile-Time Types and Runtime Feedback},
year = {2000},
source = {http://people.csail.mit.edu/jrb/Projects/pd.pdf},
}
34 changes: 34 additions & 0 deletions documentation/website/source/_static/documentation/barrett1996.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
@article{Barrett:1996:MSL:236338.236343,
author = {Barrett, Kim and Cassels, Bob and Haahr, Paul and Moon, David A. and Playford, Keith and Withington, P. Tucker},
title = {A monotonic superclass linearization for Dylan},
journal = {SIGPLAN Not.},
volume = {31},
issue = {10},
month = {October},
year = {1996},
issn = {0362-1340},
pages = {69--82},
numpages = {14},
url = {http://doi.acm.org/10.1145/236338.236343},
doi = {http://doi.acm.org/10.1145/236338.236343},
acmid = {236343},
publisher = {ACM},
address = {New York, NY, USA},
}

@inproceedings{Barrett:1996:MSL:236337.236343,
author = {Barrett, Kim and Cassels, Bob and Haahr, Paul and Moon, David A. and Playford, Keith and Withington, P. Tucker},
title = {A monotonic superclass linearization for Dylan},
booktitle = {Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications},
series = {OOPSLA '96},
year = {1996},
isbn = {0-89791-788-X},
location = {San Jose, California, United States},
pages = {69--82},
numpages = {14},
url = {http://doi.acm.org/10.1145/236337.236343},
doi = {http://doi.acm.org/10.1145/236337.236343},
acmid = {236343},
publisher = {ACM},
address = {New York, NY, USA},
}
17 changes: 17 additions & 0 deletions documentation/website/source/_static/documentation/dumas1995.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@article{Dumas:1995:DWP:203241.203253,
author = {Dumas, Joseph and Parsons, Paige},
title = {Discovering the way programmers think about new programming environments},
journal = {Commun. ACM},
volume = {38},
issue = {6},
month = {June},
year = {1995},
issn = {0001-0782},
pages = {45--56},
numpages = {12},
url = {http://doi.acm.org/10.1145/203241.203253},
doi = {http://doi.acm.org/10.1145/203241.203253},
acmid = {203253},
publisher = {ACM},
address = {New York, NY, USA},
}
17 changes: 17 additions & 0 deletions documentation/website/source/_static/documentation/gray1998.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@article{Gray:1998:MLM:274946.274957,
author = {Gray, David N. and Hotchkiss, John and LaForge, Seth and Shalit, Andrew and Weinberg, Toby},
title = {Modern languages and Microsoft's component object model},
journal = {Commun. ACM},
volume = {41},
issue = {5},
month = {May},
year = {1998},
issn = {0001-0782},
pages = {55--65},
numpages = {11},
url = {http://doi.acm.org/10.1145/274946.274957},
doi = {http://doi.acm.org/10.1145/274946.274957},
acmid = {274957},
publisher = {ACM},
address = {New York, NY, USA},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@misc{housel_peter_s_2020_3742567,
author = {Housel, Peter S.},
title = {LLVM Code Generation for Open Dylan},
month = apr,
year = 2020,
publisher = {Zenodo},
doi = {10.5281/zenodo.3742567},
url = {https://doi.org/10.5281/zenodo.3742567}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@techreport{Kidd:2001:ECG:867862,
author = {Kidd, Eric},
title = {Efficient Compression of Generic Function Dispatch Tables},
year = {2001},
source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Adartmouthcs%3Ancstrl.dartmouthcs%2F%2FTR2001-404},
publisher = {Dartmouth College},
address = {Hanover, NH, USA},
}
17 changes: 17 additions & 0 deletions documentation/website/source/_static/documentation/mehnert2007.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@inproceedings{Mehnert:2007:DLM:1622123.1622148,
author = {Mehnert, Hannes and Bogk, Andreas},
title = {A domain-specific language for manipulation of binary data in Dylan},
booktitle = {Proceedings of the 2007 International Lisp Conference},
series = {ILC '07},
year = {2009},
isbn = {978-1-59593-618-9},
location = {Cambridge, United Kingdom},
pages = {22:1--22:8},
articleno = {22},
numpages = {8},
url = {http://doi.acm.org/10.1145/1622123.1622148},
doi = {http://doi.acm.org/10.1145/1622123.1622148},
acmid = {1622148},
publisher = {ACM},
address = {New York, NY, USA},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@inproceedings{Mehnert:2009,
author = {Mehnert, Hannes},
title = {Automatically generated type-safe GTK+ binding for Dylan},
booktitle = {Proceedings of the 2009 International Lisp Conference},
series = {ILC '09},
year = {2009},
location = {Cambridge, MA, USA},
}
17 changes: 17 additions & 0 deletions documentation/website/source/_static/documentation/mehnert2010.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@inproceedings{Mehnert:2010:EDT:1869643.1869645,
author = {Mehnert, Hannes},
title = {Extending Dylan's type system for better type inference and error detection},
booktitle = {Proceedings of the 2010 international conference on Lisp},
series = {ILC '10},
year = {2010},
isbn = {978-1-4503-0470-2},
location = {Reno/Tahoe, Nevada, USA},
pages = {1--10},
numpages = {10},
url = {http://doi.acm.org/10.1145/1869643.1869645},
doi = {http://doi.acm.org/10.1145/1869643.1869645},
acmid = {1869645},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {compilers, dylan, dynamic typing, generic functions, gradual typing, lisp, multimethods, multiple dispatch, object-orientation, static typing, type inference},
}
Loading

0 comments on commit c5297fb

Please sign in to comment.