Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete 3.0 release notes #2326

Open
einarf opened this issue Jul 28, 2024 · 12 comments
Open

Complete 3.0 release notes #2326

einarf opened this issue Jul 28, 2024 · 12 comments

Comments

@einarf
Copy link
Member

einarf commented Jul 28, 2024

Ideally we should have:

  • Higher level update notes in docs. This would also work as a general migration guide.
  • Complete list of changes in a changelog in the repo itself.

This is definitely not doable fir 3.0.x considering the length of the development but we should follow this strictly from 3.0.0 and up.

@einarf einarf added this to the 3.0 mandatory milestone Jul 28, 2024
@DigiDuncan
Copy link
Collaborator

I'd love to help with this; I think having surface-level, human readable release notes for 3.0 is strictly needed. A migration guide is also up there, for me.

@einarf
Copy link
Member Author

einarf commented Jul 28, 2024

We just have to start writing something. More info can be added over time.

@pushfoo
Copy link
Member

pushfoo commented Jul 29, 2024

TL;DR: I'll start getting some useful per-module data together for this.

There's also a user from the Python Discord I'd like to credit (https://github.com/DarkLight1337) for advising on type system issues on lower Python versions.

As to the details, Griffe has some inspection tooling which can help detect API breakage. I'll give it a try tonight.

In general, we could split this up by module. The top items of concern I can think of now are:

  • arcade.sprite
    • Sprite.draw was removed
    • BasicSprite added
    • Rotation direction changed
    • Whatever's going on with scale
  • arcade.draw split and restructuring into specific submodules
  • Camera rework
  • arcade.math changes
  • arcade.SpriteList

@pushfoo
Copy link
Member

pushfoo commented Jul 29, 2024

Using griffe check arcade -a 2.6.7, I see the following major categories of change:

  • Removed the asset constants in arcade.resources
  • GUI classes were changed and had properties removed
  • Sprite removed the following:
    • draw()
    • on_update() (now a unified update method)
    • set_position()
    • face_point
    • collision_radius
    • The unused repeat_countx and repeat_count_y keyword arguments
    • The texture flipping arguments (replaced by better flip_* methods on Texture)

@DigiDuncan
Copy link
Collaborator

Don't forget about all the changes to draw commands, namely the namespace change, and the addition if draw_rect_*.

@pushfoo
Copy link
Member

pushfoo commented Jul 29, 2024

Don't forget all the changes to draw commands

That's the stuff in the comment above this one:

arcade.draw split

I didn't make it very clear, so I'll edit that now. Ty for pointing that out.

@pawamoy
Copy link

pawamoy commented Jul 29, 2024

(stalking GitHub issues)

I'd love to know if you identified breaking changes that were not detected by Griffe! Let me know here or in new issues in Griffe's repo, as you prefer ^^ And thanks for giving it a try!

@eruvanos
Copy link
Member

Where to put it?

* GUI

  * Removed :py:class:`~arcade.gui.widgets.UIWrapper` this is now general available in :py:class:`~arcade.gui.widgets.UILayout`
  * Removed :py:class:`~arcade.gui.widgets.UIBorder` this is now general available in :py:class:`~arcade.gui.widgets.UIWidget`
  * Removed :py:class:`~arcade.gui.widgets.UIPadding` this is now general available in :py:class:`~arcade.gui.widgets.UIWidget`
  * Removed :py:class:`~arcade.gui.widgets.UITexturePane` this is now general available in :py:class:`~arcade.gui.widgets.UIWidget`
  * Removed :py:class:`~arcade.gui.widgets.UIAnchorWidget` replaced by :py:class:`~arcade.gui.widgets.UIAnchorLayout`
  * Changes to :py:class:`~arcade.gui.widgets.UIWidget`

    * Supports padding, border and background (color and texture)
    * Visibility: visible=False will prevent rendering of the widget. It will also not receive any UI events
    * Dropped :py:meth:`~arcade.gui.widget.UIWidget.with_space_around()`
    * ``UIWidget.with_`` methods do not wrap the widget anymore, they only change the attributes
    * Support nine patch information to draw background texture
    * Removed some attributes from public interface, use ``UIWidget.with_`` methods
        * ``UIWidget.border_width``
        * ``UIWidget.border_color``
        * ``UIWidget.bg_color``
        * ``UIWidget.bg_texture``
        * ``UIWidget.padding_top``
        * ``UIWidget.padding_right``
        * ``UIWidget.padding_bottom``
        * ``UIWidget.padding_left``
    * Now iterable which provides direct access to children
    * Further performance improvements

  * New widgets:
    * :py:class:`~arcade.gui.widgets.dropdown.UIDropdown`
    * :py:class:`~arcade.gui.widgets.image.UIImage`
    * :py:class:`~arcade.gui.widgets.slider.UISlider`
    * :py:class:`~arcade.gui.widgets.constructs.UIButtonRow` (`PR1580 <https://github.com/pythonarcade/arcade/pull/1580>`_ and `PR1253 <https://github.com/pythonarcade/arcade/pull/1253>`_)

  * Arcade :py:class:`~arcade.gui.property.Property`:

    * Properties are observable attributes (supported: primitive, list and dict).
      Listener can be bound with :py:meth:`~arcade.gui.property.bind`

  * All :py:class:`~arcade.gui.UILayout`s now support ``size_hint``, ``size_hint_min``, ``size_hint_max``.

    * :py:class:`~arcade.gui.UIBoxLayout` - horizontal and vertical layout
    * :py:class:`~arcade.gui.UIAnchorLayout` - layout with anchor points
    * :py:class:`~arcade.gui.UIGridLayout` (`PR1478 <https://github.com/pythonarcade/arcade/pull/1478>`_) - grid layout

@einarf
Copy link
Member Author

einarf commented Jul 30, 2024

@eruvanos You can start a new CHANGELOG.md in the repo root. Then we merge it with doc/_archive/release_notes.rst over the next days.

@einarf
Copy link
Member Author

einarf commented Aug 3, 2024

The old update notes was moved from the docs into CHANGELOG.md in the root of the repository #2332

@eruvanos
Copy link
Member

eruvanos commented Aug 5, 2024

Ok, I will add my changes to it (in md format)

@einarf
Copy link
Member Author

einarf commented Aug 5, 2024

We also need to make sure the "thank you" section includes most or all contributors.

EDIT: Done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants