Releases: bartfeenstra/betty
Releases · bartfeenstra/betty
Betty 0.5.0a31
What's Changed
- Improve the plugin API's resolvers by @bartfeenstra in #3894
- Upgrade to virtualenv 21 by @bartfeenstra in #3898
- Simplify
do_you_mean()by @bartfeenstra in #3899 - Replace some
str.join()calls withAnyEnumerationby @bartfeenstra in #3900 - Upgrade to ty 0.0.20 by @bartfeenstra in #3901
Full Changelog: 0.5.0a30...0.5.0a31
Betty 0.5.0a30
What's Changed
- Upgrade to puremagic 2 by @bartfeenstra in #3883
- Replace
ProjectExtensionswith a generic plugin collection by @bartfeenstra in #3864 - Upgrade to ty 0.0.19 by @bartfeenstra in #3885
- Add
KeyedCollectionProxyby @bartfeenstra in #3886 - Add
ErroringKeyedCollectionby @bartfeenstra in #3887 - Refactor plugin management by @bartfeenstra in #3884
- Remove
PluginDiscoveryby @bartfeenstra in #3888 - Improve the
PluginTypeNotFoundandPluginNotFounderror messages by @bartfeenstra in #3891 - Remove
PluginTypeDefinition.discoveryby @bartfeenstra in #3889
Full Changelog: 0.5.0a29...0.5.0a30
Betty 0.5.0a29
What's Changed
- Use Python 3.13 features by @bartfeenstra in #3842
- Remove
AggregateDefinition.elements()by @bartfeenstra in #3847 - Refactor
PluginConfigurationintoPluginManufacturerby @bartfeenstra in #3821 - Rename presence roles to roles by @bartfeenstra in #3849
- Remove
betty.typingusage decorators by @bartfeenstra in #3850 - Rename
betty.plugin.configtobetty.plugin.databy @bartfeenstra in #3851 - Reword "View original" to "View original size" on file pages by @bartfeenstra in #3855
- Upgrade to ty 0.0.18 by @bartfeenstra in #3854
- Make
betty.job.Contextfinal by @bartfeenstra in #3853 - Decouple extensions from services by @bartfeenstra in #3861
- Decouple services from life cycles by @bartfeenstra in #3862
- Remove plugin discovery overrides by @bartfeenstra in #3860
- Improve the type safety and DX of
betty.typing.Voidby @bartfeenstra in #3863 - Close
ClientSessionafter initializing it by @bartfeenstra in #3867 - Remove useless (outdated) tests by @bartfeenstra in #3869
- Refactor
KeyedCollectionby @bartfeenstra in #3868 - Reorganize collections by @bartfeenstra in #3870
- Move properties into their own API by @bartfeenstra in #3875
- Rename content providers to contents by @bartfeenstra in #3876
- Remove the
flattenJinja2 filter by @bartfeenstra in #3879 - Remove the
mapJinja2 filter by @bartfeenstra in #3878 - Remove the
strJinja2 filter by @bartfeenstra in #3880 - Remove unused Jinja2 tests by @bartfeenstra in #3882
- Remove unused Jinja2 filters by @bartfeenstra in #3881
Full Changelog: 0.5.0a28...0.5.0a29
Betty 0.5.0a28
What's Changed
- Allow
require_*()to be used as regular functions by @bartfeenstra in #3774 - Rename
universetoUNIVERSEby @bartfeenstra in #3785 - Rename configuration to data by @bartfeenstra in #3792
- Remove
Hydratorby @bartfeenstra in #3794 - Decouple
Boxfrom its configuration by @bartfeenstra in #3795 - Rename
ConfigurabletoDataManufacturableby @bartfeenstra in #3796 - Extract life cycle and resource management into a new API by @bartfeenstra in #3797
- Extract the object factory into a service by @bartfeenstra in #3799
- Fix a bug where
UNIVERSEerroneously was a life cycle by @bartfeenstra in #3801 - Decouple Gramps from its configuration by @bartfeenstra in #3804
- Decouple Box from its configuration by @bartfeenstra in #3806
- Decouple Box from its configuration by @bartfeenstra in #3809
- Upgrade to Stylelint 17 by @bartfeenstra in #3627
- Upgrade to setuptools 82 by @bartfeenstra in #3810
- Upgrade to ty 0.0.15 by @bartfeenstra in #3784
- Decouple Section from its configuration by @bartfeenstra in #3808
- Remove old references to 'configuration' by @bartfeenstra in #3811
- Decouple ColorStyle from its configuration by @bartfeenstra in #3812
- Decouple Presences from its configuration by @bartfeenstra in #3814
- Decouple Columns from its configuration by @bartfeenstra in #3815
- Use 'jinja' instead of 'jinja2' by @bartfeenstra in #3820
- Upgrade to ty 0.0.16 by @bartfeenstra in #3822
- Upgrade to ty 0.0.17 by @bartfeenstra in #3827
- Replace hydration with individual validation methods by @bartfeenstra in #3835
- Make
MachineNamea class by @bartfeenstra in #3834 - Remove
StaticServiceby @bartfeenstra in #3838 - Exclude our Sphinx extension from coverage reports because the code is run in external processes by @bartfeenstra in #3839
- Drop support for Python 3.11 by @bartfeenstra in #3840
- Decouple App from its configuration by @bartfeenstra in #3782
- Drop support for Python 3.12 by @bartfeenstra in #3841
- Translations update from Hosted Weblate by @weblate in #3844
- Support Weblate translations for multiple major Betty versions concurrently by @bartfeenstra in #3845
- Translations update from Hosted Weblate by @weblate in #3846
Full Changelog: 0.5.0a27...0.5.0a28
Betty 0.5.0a27
What's Changed
- Refactor
EntityReferenceinto defined data by @bartfeenstra in #3665 - Add
PluginDefinitionConfiguration.new_plugin()by @bartfeenstra in #3664 - Refactor
DummyConfigurationintoDummyDataby @bartfeenstra in #3667 - Refactor
ColorConfigurationinto defined data by @bartfeenstra in #3666 - Remove legacy configuration support from
PluginConfigurationby @bartfeenstra in #3663 - Add
PluginConfiguration.new_plugin()by @bartfeenstra in #3685 - Refactor
MediaTypeto defined data by @bartfeenstra in #3688 - Refactor
Propertyoperations by @bartfeenstra in #3681 - Remove
PluginTypeDefinition.base_clsby @bartfeenstra in #3689 - Make
StaticTranslationsandCountableStaticTranslationsPortableby @bartfeenstra in #3691 - Accept
type[Data]whereDataDefinitionis needed by @bartfeenstra in #3692 - Make configuration declarations less verbose by @bartfeenstra in #3693
- Do not use async test methods needlessly by @bartfeenstra in #3694
- Refactor
LocaleConfigurationto defined data by @bartfeenstra in #3668 - Consolidate the remainder of the configuration API into a single module by @bartfeenstra in #3697
- Ensure resolvers and resolvable types are consistently named by @bartfeenstra in #3699
- Improve typing of
new_target()by @bartfeenstra in #3702 - Refactor service level requirements by @bartfeenstra in #3696
- Do not bypass setters in
ProjectConfiguration.__init__()by @bartfeenstra in #3708 - Remove the requirement API by @bartfeenstra in #3707
- Simplify plugin discovery by @bartfeenstra in #3713
- Refactor
KeyedCollectionintoMutableDictKeyedCollectionand reusable superclasses by @bartfeenstra in #3719 - Add
betty.collections.ResolvedMutableSequenceby @bartfeenstra in #3720 - Name collections consistently by @bartfeenstra in #3724
- Implement
MutableCollectionin more subclasses by @bartfeenstra in #3725 - Add
ResolvedSequenceProxyby @bartfeenstra in #3727 - Remove some unneeded tests by @bartfeenstra in #3728
- Add
betty.collections.MutableResolvedMappingby @bartfeenstra in #3721 - Add
PluginManagerto simplify and centralize plugin type and plugin handling by @bartfeenstra in #3736 - Shorten the names of properties that contain paths by @bartfeenstra in #3740
- Move
betty.data.sampletobetty.sampleby @bartfeenstra in #3741 - Move
resolvesubmobules into their parents by @bartfeenstra in #3742 - Reorganize plugins by @bartfeenstra in #3743
- Remove unneeded plugin tests and test base classes by @bartfeenstra in #3744
- Allow classes to provide their own samples by subclassing
Samplableby @bartfeenstra in #3745 - Move resolve submodules into their parents by @bartfeenstra in #3746
- Centralize object factories on service levels by @bartfeenstra in #3749
- Refactor all content provider templates into components by @bartfeenstra in #3750
- Rename
jinja2_environmenttojinjaby @bartfeenstra in #3754 - Decouple
ExtensionfromProjectby @bartfeenstra in #3753 - Do not require configurable objects to expose their configuration objects by @bartfeenstra in #3752
- Make
ManufacturableandConfigurablecompatible, so subclasses may implement both with a single method by @bartfeenstra in #3758 - Make all plugin definitions final by @bartfeenstra in #3759
- Upgrade to Ruff 0.15 by @bartfeenstra in #3760
- Update all old references to service providers by @bartfeenstra in #3762
- Decouple the Render content provider from its configuration by @bartfeenstra in #3778
- Decouple the Wiki extension from its configuration by @bartfeenstra in #3779
- Decouple the Entity card content provider from its configuration by @bartfeenstra in #3780
- Centralize the default value for the Wiki extension's
populate_imagesargument by @bartfeenstra in #3781
Full Changelog: 0.5.0a26...0.5.0a27
Betty 0.4.39
What's Changed
- Translations update from Hosted Weblate by @weblate in #3603
- Upgrade to Ruff 0.15 by @bartfeenstra in #3761
- Translations update from Hosted Weblate by @weblate in #3718
Full Changelog: 0.4.38...0.4.39
Betty 0.5.0a26
What's Changed
- Add
@AttributeDefinitionby @bartfeenstra in #3560 - Narrow
assert_len()'s return value type by @bartfeenstra in #3582 - Add
LocaleDefinitionby @bartfeenstra in #3583 - Add
FilePathDefinitionby @bartfeenstra in #3584 - Treat mapping keys like any other data, and support non-string keys by @bartfeenstra in #3585
- Make
DataDefinitionaPorterby @bartfeenstra in #3590 - Make
DataDefinitionaHydratorby @bartfeenstra in #3591 - Remove
LoaderandDumperby @bartfeenstra in #3592 - Allow selectors to set and delete data by @bartfeenstra in #3594
- Remove unnecessary usage of descriptors by @bartfeenstra in #3596
- Update translations from 0.4.x by @bartfeenstra in #3600
- Refactor
FieldDefinition.requiredintoFieldDefinition.optionalby @bartfeenstra in #3599 - Remove stale coverage ignore rules by @bartfeenstra in #3602
- Remove
AsynchronizedSemaphoreby @bartfeenstra in #3605 - Add
Propertyby @bartfeenstra in #3595 - Remove
EntityReferenceSequenceby @bartfeenstra in #3606 - Refactor samples by @bartfeenstra in #3608
- Refactor the linked data API by @bartfeenstra in #3611
- Extract common definition functionality into a new API by @bartfeenstra in #3613
- Simplify hydration of aggregate data by @bartfeenstra in #3620
- Make
DataDefinitionexpose aPorterinstead of subclassing it by @bartfeenstra in #3619 - Add
RecordPorterby @bartfeenstra in #3617 - Update packaging to 26 by @bartfeenstra in #3625
- Update wheel to 46 by @bartfeenstra in #3626
- Upgrade to sphinx-design 0.7 by @bartfeenstra in #3628
- Allow data definitions to provide other definitions' samples by @bartfeenstra in #3629
- Add
OptionalDefinitionby @bartfeenstra in #3622 - Make
betty.data.aggregate.record.object.Attrgeneric by @bartfeenstra in #3631 - Fix
Optional'somit_dumphandling by @bartfeenstra in #3632 - Make
RecordPortersubclassPorterby @bartfeenstra in #3633 - Remove
RecordDefinition.field()by @bartfeenstra in #3634 - Revert "Remove
RecordDefinition.field()" by @bartfeenstra in #3636 - Revert "Revert "Remove
RecordDefinition.field()"" by @bartfeenstra in #3637 - Upgrade to ty 0.0.14 by @bartfeenstra in #3638
- Move SPDX licenses to a separate extension by @bartfeenstra in #3642
- Add data definitions for plugin instance configuration by @bartfeenstra in #3547
- Refactor
SectionConfigurationto data definitions by @bartfeenstra in #3643 - Simplify
ProjectConfigurationby @bartfeenstra in #3644 - Refactor
ColorStyleConfigurationto defined data by @bartfeenstra in #3645 - Refactor
RenderConfigurationto defined data by @bartfeenstra in #3647 - Refactor
BoxConfigurationto defined data by @bartfeenstra in #3646 - Refactor
PresencesConfigurationto defined data by @bartfeenstra in #3649 - Refactor
GrampsConfigurationto defined data by @bartfeenstra in #3648 - Refactor
ColumnsConfigurationto defined data by @bartfeenstra in #3650 - Refactor
RaspberryMintConfigurationto defined data by @bartfeenstra in #3653 - Move extensions out of the project API by @bartfeenstra in #3655
- Fix an error where the demonstraton front page content would not be shown in the correct columns by @bartfeenstra in #3656
- Refactor
ProjectConfiguration's plugin configuration collections to defined data by @bartfeenstra in #3654
Full Changelog: 0.5.0a25...0.5.0a26
Betty 0.4.38
What's Changed
- Fix incorrect
noqadirectives by @bartfeenstra in #3510 - Translations update from Hosted Weblate by @weblate in #3534
- Fix incorrect noqa directives by @bartfeenstra in #3535
- Implement PEP639 by @bartfeenstra in #3566
- Add language classifiers by @bartfeenstra in #3567
- Translations update from Hosted Weblate by @weblate in #3598
- Generate the demonstration site in Finnish by @bartfeenstra in #3601
Full Changelog: 0.4.37...0.4.38
Betty 0.5.0a25
What's Changed
- Test on Node.js 25 by @bartfeenstra in #3492
- pip dependencies(deps): bump shibuya from 2025.12.19 to 2026.1.9 by @dependabot[bot] in #3493
- Remove
LoadableandDumpableby @bartfeenstra in #3494 - Refactor the serde API by @bartfeenstra in #3495
- Rename
betty.locale.localizable.configtobetty.locale.localizable.serdeby @bartfeenstra in #3496 - Remove mutability from configuration by @bartfeenstra in #3500
- Remove mutability from entities by @bartfeenstra in #3501
- Remove the mutability API by @bartfeenstra in #3502
- Reduce the use of intersection types by @bartfeenstra in #3504
- Extract portable data functionality into a light-weight API by @bartfeenstra in #3505
- Remove remaining references to predecessors of the portable data API by @bartfeenstra in #3506
- Fix incorrect
noqadirectives by @bartfeenstra in #3509 - Fix incorrect noqa directives by @bartfeenstra in #3511
- Make
Portablegeneric by @bartfeenstra in #3514 - Revert "Use pytest-xdist" by @bartfeenstra in #3515
- Implement portable data terminology by @bartfeenstra in #3516
- Revert "Revert "Use pytest-xdist"" by @bartfeenstra in #3517
- Replace basedmypy with ty by @bartfeenstra in #3484
- Remove
HumanFacingExceptionGroupby @bartfeenstra in #3520 - Add language classifiers by @bartfeenstra in #3522
- Hide build system internals by @bartfeenstra in #3523
- Rename serialization formats to serializers by @bartfeenstra in #3521
- Use
__set_name__()to automatically set attribute names by @bartfeenstra in #3527 - Use
__set_name__()to automatically set entity association attribute names by @bartfeenstra in #3529 - Simplify generic types for entity associations by @bartfeenstra in #3530
- Remove unneeded Ruff rule ignores by @bartfeenstra in #3531
- Move job API integration out of the root project API by @bartfeenstra in #3540
- npm dependencies (development)(deps-dev): bump stylelint-scss from 6.14.0 to 7.0.0 by @dependabot[bot] in #3545
- Decouple the factory API from App and Project by @bartfeenstra in #3539
- Make entity list page generation opt-out by @bartfeenstra in #3546
- Add data definitions by @bartfeenstra in #3481
- Update to ty 0.0.13 by @bartfeenstra in #3556
- Fix a ty violaton by @bartfeenstra in #3558
- Rename
HasDatatoDataby @bartfeenstra in #3559 - Fix a bug where plugin definition overrides would persist between tests and cause failures by @bartfeenstra in #3564
- Implement PEP639 by @bartfeenstra in #3565
- Remove
SimpleDefinitionby @bartfeenstra in #3563 - Improve the service level documentation by @bartfeenstra in #3568
- Allow association definitions to accept localizable strings by @bartfeenstra in #3569
- Allow JSON schemas to accept localizable strings by @bartfeenstra in #3570
Full Changelog: 0.5.0a24...0.5.0a25
Betty 0.5.0a24
What's Changed
- Use pytest-xdist by @bartfeenstra in #3451
- Include
betty.sphinxin.coveragercby @bartfeenstra in #3450 - Fix broken class references in the plugin documentation by @bartfeenstra in #3428
- Fix a broken 'Get started' link on the documentation front page by @bartfeenstra in #3452
- Improve plugin documentation formatting and contents by @bartfeenstra in #3453
- Move configuration documentation onto the configuration classes by @bartfeenstra in #3454
- Allow configuration to declare samples for documentation and testing by @bartfeenstra in #3455
- Make the Json format output readable JSON by @bartfeenstra in #3464
- Simplify the
ProjectConfigurationdump by @bartfeenstra in #3465 - Allow configuration samples to be marked minimal and full by @bartfeenstra in #3469
- Add
Configuration.__eq__()by @bartfeenstra in #3470 - Simplify the
RaspberryMintConfigurationdump by @bartfeenstra in #3472 - Document that
AppandProjectare configurable by @bartfeenstra in #3474 - Simplify the
ColumnsConfigurationdump by @bartfeenstra in #3475 - Add
PluginTypeRepositoryby @bartfeenstra in #3476 - Simplify
HasPrivacyby @bartfeenstra in #3477 - Remove
Extension.new_target()by @bartfeenstra in #3478 - Move core assets out of the Python source directory by @bartfeenstra in #3482
- Rename data contexts to indicators by @bartfeenstra in #3483
- Allow data selectors to get nested data by @bartfeenstra in #3485
- Make assertions to check for built-in types simpler by @bartfeenstra in #3487
- Simplify
assert_len()by @bartfeenstra in #3488 - Replace
assert_positive_number()with minimum and maximum constraints onassert_int(),assert_float(), andassert_number()by @bartfeenstra in #3489
Full Changelog: 0.5.0a23...0.5.0a24