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

Prepare 1.3.0 #68

Merged
merged 46 commits into from
Nov 5, 2024
Merged

Prepare 1.3.0 #68

merged 46 commits into from
Nov 5, 2024

Conversation

agateau
Copy link
Owner

@agateau agateau commented Nov 5, 2024

  • Fix crash handler failing on Windows
  • Use colorama to fix Windows console
  • Use pyreadline3
  • Update to latest sqlalchemy
  • Be more precise in install_requires
  • Switch to GitHub action
  • Fix flake8 issues
  • Disable icalendar tests for now
  • Fix tests failing because of issues with checking "interactivity"
  • Use pytest to run tests
  • Make flake8 pass, move invocation to a separate script
  • Fix sqlalchemy deprecation warning
  • Update to latest dateutil
  • Update GitHub actions versions
  • Test more Python versions
  • Make flake8 ignore .venv dir
  • Fix fail to import test suite when icalendar is available
  • Make CI run icalendar tests
  • Bump coverage, flake8 and pytest to latest versions
  • Remove usage of Session.merge()
  • Add tests for t_reorder
  • Make coverage script generate HTML report
  • Add test for yical.generateCal
  • TaskTestCase: Fix test getting covered by another one
  • Add tests for IcalHttpRequestHandler
  • typo--
  • Add extra check in ical test
  • update9to10: make unpickling recurrence rules more robust
  • Add test for setVersion(), fix deprecated code
  • Fix all SQLAlchemy 2.0 warnings
  • Update SQLAlchemy to 2.0.32
  • make getOrCreateProject() similar to getOrCreateKeyword()
  • testTaskDoneMapping: fix wrong date type being used
  • Write keywords as colored @k1 @k2
  • Fix flake8 issue
  • Fix tests following colored keyword changes
  • Add pre-commit config
  • Add markdown linter, and fix Markdown documents
  • Fix unset release date
  • Turn NEWS into CHANGELOG.md
  • Create h3 sections in changelog
  • More changelog formatting
  • Prepare 1.3.0
  • Update release doc

Importing icalendar fails like this:

```
Traceback (most recent call last):
  File "yokadi/tests/tests.py", line 18, in <module>
    import icalendar  # noqa: F401
  File "/opt/hostedtoolcache/Python/3.8.15/x64/lib/python3.8/site-packages/icalendar/__init__.py", line 1, in <module>
    from icalendar.cal import (
  File "/opt/hostedtoolcache/Python/3.8.15/x64/lib/python3.8/site-packages/icalendar/cal.py", line 9, in <module>
    from icalendar.parser import Contentline
  File "/opt/hostedtoolcache/Python/3.8.15/x64/lib/python3.8/site-packages/icalendar/parser.py", line 371, in <module>
    from icalendar.prop import vText
  File "/opt/hostedtoolcache/Python/3.8.15/x64/lib/python3.8/site-packages/icalendar/prop.py", line 151, in <module>
    class vBoolean(int):
  File "/opt/hostedtoolcache/Python/3.8.15/x64/lib/python3.8/site-packages/icalendar/prop.py", line 154, in vBoolean
    BOOL_MAP = CaselessDict(true=True, false=False)
  File "/opt/hostedtoolcache/Python/3.8.15/x64/lib/python3.8/site-packages/icalendar/caselessdict.py", line 32, in __init__
    for key, value in self.items():
RuntimeError: dictionary keys changed during iteration
```
Running the test suite would fail with:

```
___________________________________________________________________________________ ERROR collecting yokadi/tests/tests.py ___________________________________________________________________________________
yokadi/tests/tests.py:17: in <module>
    import icalendar  # noqa: F401
.venv/lib/python3.10/site-packages/icalendar/__init__.py:1: in <module>
    from icalendar.cal import (
.venv/lib/python3.10/site-packages/icalendar/cal.py:9: in <module>
    from icalendar.parser import Contentline
.venv/lib/python3.10/site-packages/icalendar/parser.py:371: in <module>
    from icalendar.prop import vText
.venv/lib/python3.10/site-packages/icalendar/prop.py:151: in <module>
    class vBoolean(int):
.venv/lib/python3.10/site-packages/icalendar/prop.py:154: in vBoolean
    BOOL_MAP = CaselessDict(true=True, false=False)
.venv/lib/python3.10/site-packages/icalendar/caselessdict.py:32: in __init__
    for key, value in self.items():
E   RuntimeError: dictionary keys changed during iteration
```

Bump icalendar to 3.7.
Session.merge() is useful to update an instance which is already in the
session with a newly created instance, but we never do that.

When we need the ID of a newly created instance, call Session.flush()
instead.

Changing this fixes issues with SQLAlchemy 2.0.
It makes DB calls, so better had tests before to help porting to
SQLAlchemy 2.0.
@agateau agateau changed the title dev Prepare 1.3.0 Nov 5, 2024
@agateau agateau merged commit b9288f3 into master Nov 5, 2024
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant