Skip to content

Commit 0f58ed5

Browse files
authored
Temporarily add CHANGELOG_HISTORY.rst (#2333)
1 parent 5d8efa2 commit 0f58ed5

File tree

1 file changed

+10
-259
lines changed

1 file changed

+10
-259
lines changed

doc/_archive/release_notes.rst renamed to CHANGELOG_HISTORY.rst

Lines changed: 10 additions & 259 deletions
Original file line numberDiff line numberDiff line change
@@ -1,267 +1,18 @@
1-
.. _release_notes:
21

3-
Release Notes
4-
=============
2+
Release Note History
3+
====================
54

6-
Keep up-to-date with the latest changes to the Arcade library by the release notes.
5+
Change log from order arcade versions.
76

8-
Version 3.0.0
9-
-------------
10-
11-
*Unreleased*
12-
13-
You can grab pre-release versions from PyPi. See the available versions from the
14-
`Arcade PyPi Release History <https://pypi.org/project/arcade/#history>`_.
15-
16-
Version 3.0.0 is a major update to Arcade. It is not 100% compatible with the 2.6 API.
17-
18-
Breaking Changes
19-
~~~~~~~~~~~~~~~~
20-
21-
These are the API changes which could require updates to existing code based on
22-
the 2.6 API. Some of these things may be repeated in the "Updates" section of
23-
these release notes, however we have compiled the breaking changes here for an
24-
easy reference. There may be other behavior changes that could break specific
25-
scenarios, but this section is limited to changes which directly changed the
26-
API in a way that is not compatible with how it was used in 2.6.
27-
28-
* :py:meth:`arcade.Sprite.angle` has changed to clockwise. So everything rotates different now.
29-
* Signature for Sprite creation has changed.
30-
* The deprecated ``update()`` function has been removed from the
31-
:py:class:`~arcade.Window`, :py:class:`~arcade.View`,
32-
:py:class:`~arcade.Section`, and :py:class:`~arcade.SectionManager` classes.
33-
Instead, please use the :py:meth:`~arcade.Window.on_update()` function.
34-
It works the same as the ``update`` function, but has a ``delta_time``
35-
parameter which holds the time in seconds since the last update.
36-
* The ``update_rate`` parameter of :py:class:`~arcade.Window` can no longer be set to ``None``. Previously it defaulted
37-
to ``1 / 60`` however could be set to ``None``. The default is still the same, but setting it to None will not do anything.
38-
* Sprites created from the :py:class:`~arcade.tilemap.TileMap` class would previously set a key in the ``Sprite.properties`` dictionary
39-
named ``type``. This key has been renamed to ``class``. This is in keeping with Tiled's renaming of the key and following the Tiled
40-
format/API as closely as possible.
41-
* The ``arcade.text_pillow`` and ``arcade.text_pyglet`` modules have been completely removed. The Pillow implementation is gone, and the
42-
Pyglet one has been renamed to just ``arcade.text``. These modules were largely internal, but it is possible to have referenced them directly.
43-
* Due to the above change and removal of the Pillow text implementation, the :py:func:`~arcade.create_text_sprite` previously referred to
44-
the Pillow text implementation, and there was no easy way to create a sprite from Text with the pyglet implementation. This function has
45-
been re-worked to use the pyglet based text system. It has no API breaking changes, but the underlying functionality has changed a lot, so
46-
if you are using this function it may be worth checking the docs for it again. The main concern for a difference here would be if you
47-
are also using any custom :py:class:`~arcade.TextureAtlas`.
48-
* The GUI package has been changed significantly.
49-
* Buffered shapes (shape list items) have been moved to their own sub-module.
50-
* `use_spatial_hash` parameter for `SpriteList` and `TileMap` is now a `bool` instead of `Optional[bool]`
51-
* :py:meth:`~arcade.draw_text()` and :py:class:`~arcade.text.Text` arguments have changed. The `start_x` and `start_y` parameters have been
52-
removed. The `x` and `y` parameters are now required. `align!=left` does not interfere with `multiline` parameter anymore.
53-
* GUI
54-
55-
* Removed :py:class:`~arcade.gui.widgets.UIWrapper` this is now general available in :py:class:`~arcade.gui.widgets.UILayout`
56-
* Removed :py:class:`~arcade.gui.widgets.UIBorder` this is now general available in :py:class:`~arcade.gui.widgets.UIWidget`
57-
* Removed :py:class:`~arcade.gui.widgets.UIPadding` this is now general available in :py:class:`~arcade.gui.widgets.UIWidget`
58-
* Removed :py:class:`~arcade.gui.widgets.UITexturePane` this is now general available in :py:class:`~arcade.gui.widgets.UIWidget`
59-
* Removed :py:class:`~arcade.gui.widgets.UIAnchorWidget` replaced by :py:class:`~arcade.gui.widgets.UIAnchorLayout`
60-
61-
62-
Featured Updates
63-
~~~~~~~~~~~~~~~~
64-
65-
* Arcade now supports mixing Pyglet and Arcade drawing. This means
66-
you can, for example, use Pyglet batches. Pyglet batches can draw thousands
67-
of Pyglet objects with the cost and performance time of only a few.
68-
* The code behind the texture atlas Arcade creates for each SpriteList has
69-
been reworked to be faster and more efficient. Reversed/flipped sprites are
70-
no longer duplicated.
71-
* Added a new system for handling background textures (ADD MORE INFO)
72-
* Arcade now supports OpenGL ES 3.1/3.2 and have been
73-
tested on the Raspberry Pi 4. Any model using the Cortex-A72
74-
CPU should work. Note that you need fairly new Mesa drivers
75-
to get the new V3D drivers.
76-
77-
Changes
78-
~~~~~~~
79-
80-
* :py:class:`~arcade.Window`
81-
82-
* Removal of the ``update`` function in favor of :py:meth:`~arcade.Window.on_update()`
83-
* ``update_rate`` parameter in the constructor can no longer be set to ``None``. Must be a float.
84-
* Added ``draw_rate`` parameter to constructor
85-
:py:meth:`~arcade.Window.__init__`, this will control the interval that the
86-
:py:meth:`~arcade.Window.on_draw()` function is called at. This can be used
87-
with the pre-existing ``update_rate`` parameter which controls
88-
:py:meth:`~arcade.Window.on_update()` to achieve separate draw and update rates.
89-
90-
* :py:class:`~arcade.View`
91-
92-
* Removal of the ``update`` function in favor of :py:meth:`~arcade.View.on_update()`
93-
94-
* :py:class:`~arcade.Section` and :py:class:`~arcade.SectionManager`
95-
96-
* Removal of the ``update`` function in favor of :py:meth:`arcade.Section.on_update()`
97-
98-
* GUI
99-
100-
* :py:class:`~arcade.gui.widgets.UIWidget`
101-
102-
* Supports padding, border and background (color and texture)
103-
* Visibility: visible=False will prevent rendering of the widget. It will also not receive any UI events
104-
* Dropped :py:meth:`~arcade.gui.widget.UIWidget.with_space_around()`
105-
* ``UIWidget.with_`` methods do not wrap the widget anymore, they only change the attributes
106-
* Fixed an blending issue when rendering the gui surface to the screen
107-
* Support nine patch information to draw background texture
108-
* Performance improvements
109-
* Removed some attributes from public interface, use ``UIWidget.with_`` methods
110-
* ``UIWidget.border_width``
111-
* ``UIWidget.border_color``
112-
* ``UIWidget.bg_color``
113-
* ``UIWidget.bg_texture``
114-
* ``UIWidget.padding_top``
115-
* ``UIWidget.padding_right``
116-
* ``UIWidget.padding_bottom``
117-
* ``UIWidget.padding_left``
118-
* Update and add example code.
119-
* Iterable (providing direct children)
120-
121-
* New widgets:
122-
123-
* :py:class:`~arcade.gui.widgets.dropdown.UIDropdown`
124-
* :py:class:`~arcade.gui.widgets.image.UIImage`
125-
* :py:class:`~arcade.gui.widgets.slider.UISlider`
126-
* :py:class:`~arcade.gui.widgets.constructs.UIButtonRow` (`PR1580 <https://github.com/pythonarcade/arcade/pull/1580>`_ and `PR1253 <https://github.com/pythonarcade/arcade/pull/1253>`_)
127-
128-
* :py:class:`~arcade.gui.UIInteractiveWidget` only reacts to left mouse button events
129-
130-
* Arcade :py:class:`~arcade.gui.property.Property`:
131-
132-
* Properties are observable attributes (supported: primitive, list and dict).
133-
Listener can be bound with :py:meth:`~arcade.gui.property.bind`
134-
135-
* All :py:class:`~arcade.gui.UILayout`s support ``size_hint``, ``size_hint_min``, ``size_hint_max``.
136-
137-
* :py:class:`~arcade.gui.UIBoxLayout`
138-
* :py:class:`~arcade.gui.UIAnchorLayout`
139-
* :py:class:`~arcade.gui.UIGridLayout` (`PR1478 <https://github.com/pythonarcade/arcade/pull/1478>`_)
140-
141-
* Replaces deprecated usage of :py:func:`~arcade.draw_text`
142-
143-
* Misc Changes
144-
145-
* :py:meth:`arcade.color_from_hex_string` changed to follow the CSS hex string standard
146-
* Windows Text glyph are now created with DirectWrite instead of GDI
147-
* Removal of various deprecated functions and parameters
148-
* OpenGL examples moved to
149-
`examples/gl <https://github.com/pythonarcade/arcade/tree/development/arcade/examples/gl>`_
150-
from ``experiments/examples``
151-
152-
* Sprites
153-
154-
* The method signature for :py:meth:`arcade.Sprite.__init__` has been changed. (May break old code.)
155-
* The sprite code has been cleaned up and broken into parts.
156-
* :py:meth:`arcade.Sprite.angle` now rotates clockwise. Why it ever rotated
157-
the other way, and why it lasted so long, we do not know.
158-
159-
* Controller Input
160-
161-
* Previously controllers were usable via the ``arcade.joysticks`` module. This
162-
module is still available in 3.0.
163-
However, it should largely be seen as deprecated for most people who want
164-
basic controller support. This module existed basically just as an alias to
165-
the Pyglet joysticks module. We now have a new ``arcade.controller`` module,
166-
which is similarly just an alias to Pyglet's newer
167-
Controller API. This change should make a much wider selection of controllers
168-
able to work with Arcade, and provide newer functionality and be
169-
easier to use for most cases than the joystick module. The joystick module
170-
may still be useful if you need specialty controllers such as racing
171-
wheels or flight sticks. All existing example code has been updated to use
172-
the new controller API.
173-
174-
* Text
175-
176-
* Complete removal of the old PIL based text system. In Arcade 2.6 we had largely switched to the newer Pyglet based system, however
177-
there were still remnants of the PIL implementation around. Namely the :py:func:`~arcade.create_text_sprite` function which has been
178-
updated to use the Pyglet system. There's no API breaking change here but if you are using the function it would be worth reading the
179-
new docs for it, as there are some different considerations surrounding use of a custom :py:class:`~arcade.TextureAtlas` if you are also
180-
doing that. This function should now be much much faster than the old PIL implementation. The texture generation happens almost entirely on
181-
the GPU now.
182-
* As part of this move, the ``arcade.text_pillow`` module has been removed completely, and the ``arcade.text_pyglet`` module has been re-named
183-
just be ``arcade.text``.
184-
* :py:func:`~arcade.draw_text` and :py:class:`~arcade.Text` both now accept a ``start_z`` parameter. This will allow advanced usage to set the Z
185-
position of the underlying Label. This parameter defaults to 0 and does not change any existing usage.
186-
187-
* :py:mod:`arcade.draw_commands`:
188-
189-
* Added :py:func:`arcade.draw_commands.draw_lbwh_rectangle_textured`
190-
191-
* Replaces the now-deprecated :py:func:`arcade.draw_commands.draw_lrwh_rectangle_textured`
192-
* Usage is exactly the same
193-
194-
* OpenGL
195-
196-
* Support for OpenGL ES 3.1 and 3.2. 3.2 is fully supported, 3.1 is only supported if the ``EXT_geometry_shader`` extension
197-
is provided by the driver. This is part of the minimum spec in 3.2 so it is guaranteed to be there. This is the only optional
198-
extension that Arcade needs to function with 3.1.
199-
200-
As an example, the Raspberry Pi 4b only supports OpenGL ES 3.1, however does provide this extension, so is fully compatible
201-
with Arcade.
202-
* Textures now support immutable storage for OpenGL ES compatability.
203-
* Arcade is now using Pyglet's projection and view matrix.
204-
All functions setting matrices will update the Pyglet window's
205-
``view`` and ``projection`` attributes. Arcade shaders is also using Pyglet's ``WindowBlock`` UBO.
206-
* Uniforms are now set using ``glProgramUniform`` instead of ``glUniform``
207-
when the extension is available.
208-
* Fixed many implicit type conversions in the shader code for wider support.
209-
* Added ``front_face`` property on the context for configuring front face winding order of triangles
210-
* Added ``cull_face`` property on the context for configuring what triangle face to cull
211-
* Added support for bindless textures
212-
* Added support for 64 bit integer uniforms
213-
* Added support for 64 float uniforms
214-
215-
* :py:class:`~arcade.tilemap.TileMap`
216-
217-
* Added support Tiles defined as a sub-rectangle of an image. See
218-
`Tiled 1.9 Release Notes <https://www.mapeditor.org/2022/06/25/tiled-1-9-released.html>`_ for more information on
219-
this feature.
220-
* Changed the ``Sprite.properties`` key "type" to "class" to stay in line with Tiled's re-naming of this key in their
221-
API.
222-
* You can now define a custom texture atlas for SpriteLists created in a TileMap. You can provide a map default to
223-
the ``texture_atlas`` parameter of the :py:class:`~arcade.tilemap.Tilemap` class or the
224-
:py:func:`~arcade.tilemap.load_tilemap` function. This will be used by default on all
225-
layers, however it can be overridden on a per-layer basis as defined by the new ``texture_atlas`` key in the
226-
``layer_options`` dictionary.
227-
If no custom atlas is provided, then the global default atlas will be used (This is how it works pre-Arcade 3.0).
228-
* Fix for animated tiles from sprite sheets
229-
* DefaultTextureAtlas: Added ``sync_texture_image`` method to sync the texture in the atlas back into
230-
the internal pillow image in the ``arcade.Texture``.
231-
* DefaultTextureAtlas: Added ``get_texture_image`` method to get pixel data of a texture in the atlas as a pillow image.
232-
233-
* Collision Detection
234-
235-
* Collision detection is now even faster.
236-
* Remove Shapely for collision detection as 3.11 is faster without it.
237-
238-
* Shape list
239-
240-
* Add in :py:func:`arcade.create_triangles_strip_filled_with_colors`
241-
* Moved all buffered items that can be added to a shape list to `arcade.shape_list`
242-
243-
* Documentation
7+
Version 2.6.17
8+
--------------
2449

245-
* :ref:`example-code` code page has been reorganized
246-
* `CONTRIBUTING.md <https://github.com/pythonarcade/arcade/blob/development/CONTRIBUTING.md>`_ page has been updated
247-
* Improve :ref:`background_parallax` example
10+
*Released 2022-Dec-30*
24811

249-
Special thanks to
250-
`Einar Forselv <https://github.com/einarf>`_
251-
`Darren Eberly <https://github.com/Cleptomania>`_,
252-
`pushfoo <https://github.com/pushfoo>`_,
253-
`Maic Siemering <https://github.com/eruvanos>`_,
254-
`Cleptomania <https://github.com/Cleptomania>`_,
255-
`Aspect1103 <https://github.com/Aspect1103>`_,
256-
`Alejandro Casanovas <https://github.com/janscas>`_,
257-
`Ibrahim <https://github.com/Ibrahim2750mi>`_,
258-
`Andrew <https://github.com/cspotcode>`_,
259-
`Alexander <https://github.com/ccntrq>`_,
260-
`kosvitko <https://github.com/kosvitko>`_,
261-
and
262-
`pvcraven <https://github.com/pvcraven>`_
263-
for their contributions to this release. Also, thanks to everyone on the
264-
`Pyglet`_ team! We depend heavily on Pyglet's continued development.
12+
* Bump Pillow to 9.3.0
13+
* Bump PyMunk to 6.4.0
14+
* Add explicit compatibility tag for 3.11
15+
* Drop 3.7 as part of the test suite
26516

26617
Version 2.6.16
26718
--------------

0 commit comments

Comments
 (0)