Skip to content

Commit 85ffd66

Browse files
authored
Prepare for release 0.1.0b0 (#752)
1 parent a26a51f commit 85ffd66

File tree

12 files changed

+52
-13
lines changed

12 files changed

+52
-13
lines changed

.readthedocs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: 2
33
build:
44
os: ubuntu-22.04
55
tools:
6-
python: "3.10"
6+
python: "3.12"
77

88
sphinx:
99
configuration: docs/conf.py

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77
## [Unreleased]
8+
9+
## [v0.1.0b0]
810
### Added
911
* Added rudimentary support for `clojure.stacktrace` with `print-cause-trace` (part of #721)
1012
* Added support for `bytes` literals using a `#b` prefix (#732)
@@ -393,6 +395,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
393395
### Added
394396
- Basilisp language and compiler base.
395397

398+
[v0.1.0b0]: https://github.com/chrisrink10/basilisp/compare/v0.1.0a2..v0.1.0b0
396399
[v0.1.0a2]: https://github.com/chrisrink10/basilisp/compare/v0.1.0a1..v0.1.0a2
397400
[v0.1.0a1]: https://github.com/chrisrink10/basilisp/compare/v0.1.dev15..v0.1.0a1
398401
[v0.1.dev15]: https://github.com/chrisrink10/basilisp/compare/v0.1.dev14..v0.1.dev15

docs/compiler.rst

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ Debugging
176176

177177
The compiler generates Python code by generating Python AST nodes, rather than emitting the raw Python code as text.
178178
This is convenient for the compiler, but inspecting Python AST nodes manually for bugs can be a bit of a challenge even with a debugger.
179-
For this reason, the Basilisp compiler can also use the `astor <https://github.com/berkerpeksag/astor>`_ library to generate raw Python code for visual inspection.
179+
For this reason, the Basilisp compiler can also use the `ast.unparse <https://docs.python.org/3/library/ast.html#ast.unparse>`_ (`astor <https://github.com/berkerpeksag/astor>`_ in versions of Python prior to 3.9) library to generate raw Python code for visual inspection.
180180

181181
Currently, the compiler is configured to automatically generate Python code for all namespaces.
182182
This code generation isn't slow, but it does add an appreciable amount of time to the compilation of each individual namespace.
@@ -185,4 +185,16 @@ This setting will be changed to be off by default once Basilisp is in a stable r
185185

186186
.. code-block:: bash
187187
188-
export BASILISP_EMIT_GENERATED_PYTHON=false
188+
export BASILISP_EMIT_GENERATED_PYTHON=false
189+
190+
Logging
191+
^^^^^^^
192+
193+
Basilisp ships with a disabled Python ``logger`` set to ``WARNING``.
194+
For development, it may be useful to enable the logger or to change its log level.
195+
The former can be configured via the environment variable ``BASILISP_USE_DEV_LOGGER``, while the latter may be set by ``BASILISP_LOGGING_LEVEL``.
196+
197+
.. code-block:: bash
198+
199+
export BASILISP_USE_DEV_LOGGER=true
200+
export BASILISP_LOGGING_LEVEL=INFO

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
#
5757
# This is also used if you do content translation via gettext catalogs.
5858
# Usually you set "language" from the command line for these cases.
59-
language = None
59+
language = "en"
6060

6161
# List of patterns, relative to source directory, that match files and
6262
# directories to ignore when looking for source files.

docs/contributing.rst

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ Developers should generate their own lock file and update it regularly during de
4545

4646
Additionally, `pyenv <https://github.com/pyenv/pyenv>`_ is recommended to manage versions of Python readily on your local development environment.
4747
Setup of ``pyenv`` is somewhat more specific to your environment, so see the documentation in the repository for more information.
48+
Developers should install all supported versions of Python and configure them for the project using ``pyenv local`` in the Basilisp source directory.
49+
The ``.python-version`` file is included in the project ``.gitignore``.
4850

4951
.. _getting_started_development:
5052

@@ -57,24 +59,42 @@ To prepare your `poetry` environment, you need to install dependencies:
5759
5860
poetry install
5961
60-
Afterwards, you can start up the REPL for development with a simple:
62+
Afterwards, you can open a new Poetry shell to start up the REPL for development.
63+
The ``make repl`` target _may_ be sufficient for local development, though developers working on the Basilisp compiler or standard library are encouraged to enable a more verbose set of configurations for detecting issues during development.
64+
The command below enables the highest level of logging and disables namespace caching, both of which can help reveal otherwise hidden issues during development.
6165

6266
.. code-block:: bash
6367
64-
make repl
68+
poetry shell
69+
BASILISP_USE_DEV_LOGGER=true BASILISP_LOGGING_LEVEL=TRACE BASILISP_DO_NOT_CACHE_NAMESPACES=true basilisp repl
70+
71+
Developers working on the Basilisp compiler should periodically update their dependencies to ensure no incompatibilities have been introduced into the codebase with new dependency versions.
72+
73+
.. code-block:: bash
74+
75+
poetry update
6576
6677
.. _linting_testing_and_type_checking:
6778

6879
Linting, Running Tests, and Type Checking
6980
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
7081

7182
Basilisp automates linting, running tests, and type checking using `Tox <https://github.com/tox-dev/tox>`_.
72-
All three steps can be performed using a provided ``make`` target:
83+
All three steps can be performed across all supported versions of CPython using a provided ``make`` target:
7384

7485
.. code-block:: bash
7586
7687
make test
7788
89+
To run a more targeted CI check directly from within the Poetry shell, developers can use ``tox`` commands directly.
90+
For instance, to run only the tests for ``basilisp.io`` on Python 3.12, you could use the following command:
91+
92+
.. code-block:: bash
93+
94+
tox run -e py312 -- tests/basilisp/test_io.lpy
95+
96+
Developers are encouraged to investigate the available configurations in ``tox.ini`` to determine which CI targets they will have at their disposal.
97+
7898
Testing is performed using `PyTest <https://github.com/pytest-dev/pytest/>`_.
7999
Type checking is performed by `MyPy <http://mypy-lang.org/>`_.
80100
Linting is performed using `PyLint <https://github.com/pylint-dev/pylint>`_ and `Ruff <https://github.com/astral-sh/ruff>`_.

docs/differencesfromclojure.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,10 @@ Core Libraries
192192
Basilisp includes ports of some of the standard libraries from Clojure which should generally match the source in functionality.
193193

194194
* :lpy:ns:`basilisp.data` is a port of ``clojure.data``
195+
* :lpy:ns:`basilisp.edn` is a port of ``clojure.edn``
196+
* :lpy:ns:`basilisp.io` is a port of ``clojure.java.io``
195197
* :lpy:ns:`basilisp.set` is a port of ``clojure.set``
198+
* :lpy:ns:`basilisp.shell` is a port of ``clojure.java.shell``
196199
* :lpy:ns:`basilisp.string` is a port of ``clojure.string``
197200
* :lpy:ns:`basilisp.test` is a port of ``clojure.test``
198201
* :lpy:ns:`basilisp.walk` is a port of ``clojure.walk``

docs/features.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Features
55

66
Here are a few of Basilisp's great features:
77

8-
* Immutable data structures, backed by `Pyrsistent <https://github.com/tobgu/pyrsistent>`_
8+
* Immutable data structures, backed by `Immutables <https://github.com/MagicStack/immutables>`_ and `Pyrsistent <https://github.com/tobgu/pyrsistent>`_
99
* Strong emphasis on functional programming concepts
1010
* Access to the vast array of existing Python libraries
1111
* Seamless :ref:`interoperability <python_interop>` between Python code and Basilisp code

docs/gettingstarted.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Basilisp source files should always have a ``.lpy`` extension.
7878
Python ``__init__.py`` files are not required anywhere in Basilisp projects (including for nested namespaces), though you may need to use them if your project mixes Python and Basilisp sources.
7979

8080
Basilisp apps can use any of Python's myriad dependency management options, including `pip <https://pip.pypa.io/en/stable/>`_, `Pipenv <https://pipenv.pypa.io/en/latest/>`_, and `Poetry <https://python-poetry.org/>`_.
81-
Basilisp itself uses Poetry and that is the recommended
81+
Basilisp itself uses Poetry and that is the recommended dependency management tool for new Basilisp projects.
8282

8383
.. _bootstrapping:
8484

docs/reader.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,8 @@ Basilisp takes advantage of this in :lpy:ns:`basilisp.io`.
487487
:lpy38+ (.unlink (as-path f) ** :missing-ok (if silently true false)))
488488
silently))
489489
490+
.. _python_platform_reader_features:
491+
490492
Platform Reader Features
491493
^^^^^^^^^^^^^^^^^^^^^^^^
492494

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "basilisp"
3-
version = "0.1.0a2"
3+
version = "0.1.0b0"
44
description = "A Clojure-like lisp written for Python"
55
authors = ["Christopher Rink <[email protected]>"]
66
license = "Eclipse Public License 1.0 (EPL-1.0)"

src/basilisp/contrib/bencode.lpy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
- ``int``
8787
- ``str``, which is first decided to UTF-8 ``bytes``
8888
- keywords and symbols, which are first converted to strings (including namespace,
89-
separated by '/') and then converted using the rules for ``str``s
89+
separated by '/') and then converted using the rules for ``str`` s
9090
- Python ``list``
9191
- ``tuple``
9292
- Basilisp lists and vectors

src/basilisp/io.lpy

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@
7878

7979
(defn- clean-writer-mode
8080
[opts]
81-
(let [append? (:append opts)
82-
mode (:mode opts "")
81+
(let [mode (:mode opts "")
8382
clean-mode (cond
8483
(:append opts) (str "a" mode)
8584
(not (str/includes? mode "w")) (str "w" mode)

0 commit comments

Comments
 (0)