Skip to content

Commit

Permalink
Merge pull request #2604 from Kodiologist/release
Browse files Browse the repository at this point in the history
Release Hy 1.0.0
  • Loading branch information
Kodiologist authored Sep 22, 2024
2 parents 3053e8b + 71eb02d commit 44dcfa0
Show file tree
Hide file tree
Showing 11 changed files with 27 additions and 35 deletions.
2 changes: 0 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ jobs:
shell: bash
run: |
if [[ ${{ matrix.python }} = pyodide ]] ; then
pip install 'pydantic < 2'
# https://github.com/pyodide/pyodide/pull/3971
npm install pyodide
pip install pyodide-build
pyodide venv .venv-pyodide
Expand Down
10 changes: 5 additions & 5 deletions NEWS.rst
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
.. default-role:: code

Unreleased
=============================
1.0.0 ("Afternoon Review", released 2024-09-22)
======================================================================

New Features
------------------------------
* Python 3.13 is now supported.
Supports Python 3.8 – Python 3.13

See also the announcement post for this release (to be linked).

Bug Fixes
------------------------------
Expand Down
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ To install the latest release of Hy, just use the command `pip3 install
--user hy`. Then you can start an interactive read-eval-print loop (REPL) with
the command `hy`, or run a Hy program with `hy myprogram.hy`.

Hy is tested on all released and currently maintained versions of CPython (on
Linux, Windows, and Mac OS), and on recent versions of PyPy and Pyodide.

* [The Hy homepage](http://hylang.org)
* [Try Hy with a web console](http://hylang.org/try-hy)

Expand Down
2 changes: 1 addition & 1 deletion docs/_static/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ a:visited, div.related a:visited
code
{background-color: #dfd}

.highlight .s
.highlight .s, .highlight .s2
{color: #060}
.highlight .ss
{color: #040}
Expand Down
8 changes: 5 additions & 3 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@

project = 'Hy'
copyright = '%s the authors' % time.strftime('%Y')
html_title = f'Hy {hy.__version__} manual'
version = '.'.join(hy.__version__.split('.')[:-1])
# The short dotted version identifier
release = hy.__version__
release = hy.__version__ + ('' if hy.nickname is None else f' ({hy.nickname})')
# The full version identifier, including alpha, beta, and RC tags
html_title = f'Hy {release} manual'
# Ultimately this will only appear on the page itself. The actual HTML title
# will be simplified in post-processing.

hyrule_version = 'v0.6.0'
hyrule_version = 'v0.7.0'

source_suffix = '.rst'
master_doc = 'index'
Expand Down
6 changes: 2 additions & 4 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,18 @@ Hy is a Lisp dialect that's embedded in Python. Since Hy transforms its Lisp
code into Python abstract syntax tree (AST) objects, you have the whole
beautiful world of Python at your fingertips, in Lisp form.

.. Changes to the below paragraphs should be mirrored on Hy's homepage
.. Changes to the below paragraph should be mirrored on Hy's homepage
and the README.
To install the latest release of Hy, just use the command ``pip3 install
--user hy``. Then you can start an interactive read-eval-print loop (REPL) with
the command ``hy``, or run a Hy program with ``hy myprogram.hy``.

Hy is tested on all released and currently maintained versions of CPython (on
Linux, Windows, and Mac OS), and on recent versions of PyPy and Pyodide.

.. toctree::
:maxdepth: 3

whyhy
versioning
tutorial
syntax
semantics
Expand Down
10 changes: 1 addition & 9 deletions docs/tutorial.rst
Original file line number Diff line number Diff line change
Expand Up @@ -401,14 +401,6 @@ you have no interest in writing your own Python code, because it will introduce
you to the semantics, and you'll need a reading knowledge of Python syntax to
understand example code for Python libraries.

Refer to the rest of this manual for Hy-specific features. Like Hy itself, the
manual is incomplete, but :ref:`contributions <hacking>` are always welcome.
See `the wiki <https://github.com/hylang/hy/wiki/Compatibility-tips>`_ for tips
Refer to the rest of this manual for Hy-specific features. See `the wiki <https://github.com/hylang/hy/wiki/Compatibility-tips>`_ for tips
on getting Hy to work with other software. For an official full-blown example
Hy program, see `Infinitesimal Quest 2 + ε <http://hylang.org/simalq>`_.

Bear in mind that Hy is still unstable, and with each release along the
way to Hy 1.0, there are new breaking changes. Refer to `the NEWS file
<https://github.com/hylang/hy/blob/master/NEWS.rst>`_ for how to update your
code when you upgrade Hy, and be sure you're reading the version of this manual
(shown at the top of each page) that matches the version of Hy you're running.
9 changes: 9 additions & 0 deletions docs/versioning.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
============================
Versioning and compatibility
============================

Starting with Hy 1.0.0, Hy is `semantically versioned <https://semver.org>`_. Refer to `the NEWS file <https://github.com/hylang/hy/blob/master/NEWS.rst>`_ for a summary of user-visible changes brought on by each version, and how to update your code in case of breaking changes. Be sure you're reading the version of this manual (shown at the top of each page) that matches the version of Hy you're running.

Hy is tested on `all released and currently maintained versions of CPython <https://devguide.python.org/versions>`_ (on Linux, Windows, and Mac OS), and on recent versions of PyPy and Pyodide. We usually find that for Hy, unlike most Python packages, we need to change things to fully support each new 3.x release of Python. We may drop compatibility with a version of Python after the CPython guys cease maintaining it, and note that we construe such a change as non-breaking, so we won't bump Hy's major version for it. But we will at least bump the minor version, and ``python_requires`` in Hy's ``setup.py`` should prevent you from installing a Hy version that won't work with your Python version.

Starting with Hy 1.0.0, each version of Hy also has a nickname, such as "Afternoon Review". Nicknames are used in alphabetical order, with a nickname starting with "Z" then wrapping around to "A". Nicknames are provided mostly for the amusement of the maintainer, but can be useful as a conspicuous sign that you're not using the version you expected. In code, you can get the current nickname as a string (or ``None``, for unreleased commits of Hy) with ``hy.nickname``.
1 change: 1 addition & 0 deletions hy/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
__version__ = 'unreleased'
nickname = None


def _initialize_env_var(env_var, default_val):
Expand Down
3 changes: 2 additions & 1 deletion hy/repl.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,8 +431,9 @@ def run(self):
return 0

def banner(self):
return "Hy {version} using {py}({build}) {pyversion} on {os}".format(
return "Hy {version}{nickname} using {py}({build}) {pyversion} on {os}".format(
version=hy.__version__,
nickname="" if hy.nickname is None else f' ({hy.nickname})',
py=platform.python_implementation(),
build=platform.python_build()[0],
pyversion=platform.python_version(),
Expand Down
8 changes: 1 addition & 7 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,20 +64,14 @@ def run(self):
url="http://hylang.org/",
platforms=["any"],
classifiers=[
"Development Status :: 4 - Beta",
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: DFSG approved",
"License :: OSI Approved :: MIT License", # Really "Expat". Ugh.
"Operating System :: OS Independent",
"Programming Language :: Hy",
"Programming Language :: Lisp",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: Implementation :: PyPy",
"Environment :: WebAssembly :: Emscripten",
"Topic :: Software Development :: Code Generators",
Expand Down

0 comments on commit 44dcfa0

Please sign in to comment.