Difference between revisions of "5.2 Roadmap"

From Gramps
Jump to: navigation, search
m (Schedule: no need to leave a missed target date... Particularly since no new target date has been set.)
(Database model changes)
 
(13 intermediate revisions by 4 users not shown)
Line 6: Line 6:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
| T.B.A || Agree final roadmap (this document).
+
| 1 Jul 2023 || Agree final roadmap (this document).
 
|-
 
|-
| T.B.A || All major features should be merged into master.
+
| 1 Jul 2023 || All major features should be merged into master.
 
|-
 
|-
| T.B.A || Feature freeze.
+
| 10 Jul 2023 || Feature freeze.
 
|-
 
|-
| T.B.A || String freeze.
+
| 17 Jul 2023 || String freeze.
 
|-
 
|-
| 21 April 2021 || Final release.*  whoosh!!
+
| 31 Jul 2023 || Beta release.
 
|-
 
|-
 
|}
 
|}
Line 22: Line 22:
 
===Project governance===
 
===Project governance===
 
At present, we use a [https://en.wikipedia.org/wiki/Benevolent_dictatorship benevolent dictator] model. The BD defines the project's strategic direction and has the final say in decisions.
 
At present, we use a [https://en.wikipedia.org/wiki/Benevolent_dictatorship benevolent dictator] model. The BD defines the project's strategic direction and has the final say in decisions.
 +
 +
===Minimum requirements===
 +
Previously we supported all Python and Gtk versions that were commonly found on operating systems most likely to be used by our users. In practice this meant supporting the versions used by the oldest supported Ubuntu LTS release.
 +
 +
The new policy is to support all Python and Gtk versions that have not reached end-of-life on the Gramps release date.
 +
 +
For details see the discussion in the [https://sourceforge.net/p/gramps/mailman/message/37613988/ Gramps 5.2 Minimum Python Requirement] thread on the mailing list.
  
 
==Dependency upgrades==
 
==Dependency upgrades==
  
* Python [https://www.python.org/dev/peps/pep-0478/#release-schedule 3.5.x][https://sourceforge.net/p/gramps/mailman/message/36583470/] (as [https://www.python.org/dev/peps/pep-0398/#lifespan 3.3.x] reached end of life status on 2017-09-29.)  
+
* Python [https://peps.python.org/pep-0569/#release-schedule 3.8.x] ([https://peps.python.org/pep-0537/#lifespan 3.7.x] reached end of life status on 2023-06-27.)  
* Gtk 3.12.x [https://sourceforge.net/p/gramps/mailman/message/36431877/ Email][https://sourceforge.net/p/gramps/mailman/message/36432976/ It looks like we should just move from 3.10 to 3.12 then. Nick.] ([https://en.wikipedia.org/wiki/GTK%2B#Releases 3.10.x] reached end of life status on 2014-05-12.)
+
* Gtk 3.24.x ([https://en.wikipedia.org/wiki/GTK%2B#Releases 3.23.x] has not received any updates since 2018-08-29.)
  
 
==Database model changes==
 
==Database model changes==
 
Are there features that require database change? This should happen in the beginning of the development cycle. List your requirements here.
 
Are there features that require database change? This should happen in the beginning of the development cycle. List your requirements here.
 
* '''Enhancements to the place structure to support GEDCOM-L [http://wiki-en.genealogy.net/GEDCOM/PLAC-Tag PLAC tag]'''
 
** Allow multiple place Types with date for each
 
** Deal with 200+ place types
 
** Allow multiple postal codes and other attribute like data, with date for each
 
** Allow places to have attributes (for above)
 
 
====Decision:====
 
Changes to implement the requirements above:
 
 
* PlaceName
 
** Add a list of PlaceAbbrev objects. A PlaceAbbrev object should consist of a some text and associated type (PlaceAbbrevType).
 
** Add a citation list.
 
 
* PlaceRef
 
** Add a hierarchy type.
 
** Add a citation list.
 
 
* Place
 
** Replace the place type field with a list of LocationType objects. A LocationType object should consist of a date, PlaceType, and citation list.
 
** Add an attribute list.
 
** Add an event reference list.
 
 
* PlaceType
 
** No change.  Type mapping should be done in the import/export code.
 
  
 
==Major goals==
 
==Major goals==
 
This section lists main goals developers want to achieve. Major goals should be started in a GEPS branch. Major goals require a developer and a reviewer.
 
This section lists main goals developers want to achieve. Major goals should be started in a GEPS branch. Major goals require a developer and a reviewer.
  
* '''[[GEPS_043:_Improving_GEDCOM_support_for_Places|GEPS043]] Improving GEDCOM support for Places'''
 
* '''[[GEPS_045:_Place_Model_Enhancements|GEPS045]] Place Model Enhancements'''
 
* '''Store objects as JSON rather than pickled blobs''' See feature request #{{bug|9392}}.  Previously discussed on the list. [https://sourceforge.net/p/gramps/mailman/message/35406641/]
 
* '''Remove raw methods from database API'''
 
 
* [https://sourceforge.net/p/gramps/mailman/message/36907575/ Proposal to remove the BSDDB backend] ?
 
* [https://sourceforge.net/p/gramps/mailman/message/36907575/ Proposal to remove the BSDDB backend] ?
  
Line 68: Line 46:
 
This section lists minor goals developers want to achieve. Minor goals can be done by one developer alone.
 
This section lists minor goals developers want to achieve. Minor goals can be done by one developer alone.
  
Suggestions:
 
 
* '''Some "attributes" we have currently don't match up well with GEDCOM''' When Gramps originally was conceived, these attributes did not have dates, places, and media attached (Gedcom did not have these either).  The last version of GEDCOM allow this.  Dated attribute would help, or just make these into Event/Fact types.
 
* '''A method to mark objects as "used"''' ''TODO'' tagged items work like this now, maybe another standard tag?
 
 
* '''A way to attach objects to the database itself''' Something like the "Researcher"/"Database owner" but including other data. See {{bug|6365}} & {{bug|8734}}
 
* '''A way to attach objects to the database itself''' Something like the "Researcher"/"Database owner" but including other data. See {{bug|6365}} & {{bug|8734}}
 
* {{bug|11404}} Change location of '''resource-path''' file to allow Python pip Wheels. eg: [https://github.com/sam-m888/gramps/commit/1bd29abfb6671db4e5d77b485eed21850728a05e#commitcomment-21095399  Running a post-install script is not possible with wheels, so it looks like we need another approach. I suggest that we look for the resources in the standard places at run-time. - Nick Hall] & [https://sourceforge.net/p/gramps/mailman/message/36029538/ Re: (Gramps-devel) tar files, zip files, distutils, etc.]
 
* {{bug|11404}} Change location of '''resource-path''' file to allow Python pip Wheels. eg: [https://github.com/sam-m888/gramps/commit/1bd29abfb6671db4e5d77b485eed21850728a05e#commitcomment-21095399  Running a post-install script is not possible with wheels, so it looks like we need another approach. I suggest that we look for the resources in the standard places at run-time. - Nick Hall] & [https://sourceforge.net/p/gramps/mailman/message/36029538/ Re: (Gramps-devel) tar files, zip files, distutils, etc.]
* {{bug|6300}}: '''Organize Tags be able to select a background color also for visability''' - [https://gramps-project.org/bugs/view.php?id=6300#c26888 This would be quite easy to do, but would require a database change. - Nick H]
 
* {{bug|10777}} Fulltext search on all elements, objects, items, types which can have a text / string in.
 
* Support Gedcom _UUID.  Two choices 1) extend data model with a list of additional IDs, which would be _UUID or possibly GOVID, GEONamesID etc. 2) Store them in attributes.  The former has advantage that they are invisible to users except for tools explicitly using them, also could easily support db lookup like GrampsID.  The latter limits work to import/export. Gedcom L group has just completed a vote on how they should work for import/export.  Ultimate goal, better merging.
 
  
 
==Rejected Changes==
 
==Rejected Changes==

Latest revision as of 20:10, 9 July 2023

Gramps-notes.png
This is a guide only.

Because of the nature of a volunteer-driven project, it isn't possible to say with any certainty what will happen in the next release.

This page collects possibilities for the 5.2 version of Gramps

Schedule

1 Jul 2023 Agree final roadmap (this document).
1 Jul 2023 All major features should be merged into master.
10 Jul 2023 Feature freeze.
17 Jul 2023 String freeze.
31 Jul 2023 Beta release.

Policy changes

Project governance

At present, we use a benevolent dictator model. The BD defines the project's strategic direction and has the final say in decisions.

Minimum requirements

Previously we supported all Python and Gtk versions that were commonly found on operating systems most likely to be used by our users. In practice this meant supporting the versions used by the oldest supported Ubuntu LTS release.

The new policy is to support all Python and Gtk versions that have not reached end-of-life on the Gramps release date.

For details see the discussion in the Gramps 5.2 Minimum Python Requirement thread on the mailing list.

Dependency upgrades

  • Python 3.8.x (3.7.x reached end of life status on 2023-06-27.)
  • Gtk 3.24.x (3.23.x has not received any updates since 2018-08-29.)

Database model changes

Are there features that require database change? This should happen in the beginning of the development cycle. List your requirements here.

Major goals

This section lists main goals developers want to achieve. Major goals should be started in a GEPS branch. Major goals require a developer and a reviewer.

Minor goals

This section lists minor goals developers want to achieve. Minor goals can be done by one developer alone.

Rejected Changes

Previous Roadmaps