timeline

A cross-platform application for displaying and navigating events on a timeline.

Home

Source code

hg clone static-http://projects.rickardlindberg.me/scm/timeline

Website

https://projects.rickardlindberg.me/timeline

Recent events

2025-04-30 20:16 Rickard pushed to timeline

changeset:   7978:dc589bfacbf2
user:        Rickard Lindberg <rickard@rickardlindberg.me>
date:        Wed Apr 30 20:15:09 2025 +0200
summary:     Better link to beta versions.

diff -r 14b9e5f42ca2 -r dc589bfacbf2 documentation/installing.rst
--- a/documentation/installing.rst Wed Apr 30 20:13:56 2025 +0200
+++ b/documentation/installing.rst Wed Apr 30 20:15:09 2025 +0200
@@ -56,7 +56,7 @@
 Download one of the following source packages:
 
 * Latest release: |latest_zip|_
-* Beta version: `latest source build <https://projects.rickardlindberg.me/artifacts/timeline/>`_
+* Beta versions: |betas|_
 
 The beta version is for users that want to try the latest features and give
 feedback on them before a release.

changeset:   7979:70354fa9d0c0
tag:         tip
user:        Rickard Lindberg <rickard@rickardlindberg.me>
date:        Wed Apr 30 20:15:52 2025 +0200
summary:     Make date come before hash in version for better alphabetical sorting.

diff -r dc589bfacbf2 -r 70354fa9d0c0 source/timelinelib/meta/version.py
--- a/source/timelinelib/meta/version.py Wed Apr 30 20:15:09 2025 +0200
+++ b/source/timelinelib/meta/version.py Wed Apr 30 20:15:52 2025 +0200
@@ -30,7 +30,7 @@
     if TYPE:
         parts.append(TYPE)
     if REVISION_HASH or REVISION_DATE:
-        revision_parts = [item for item in (REVISION_HASH, REVISION_DATE) if item]
+        revision_parts = [item for item in (REVISION_DATE, REVISION_HASH) if item]
         parts.append("(%s)" % " ".join(revision_parts))
     return " ".join(parts)
 
@@ -38,7 +38,7 @@
 def get_filename_version():
     parts = ["timeline", get_version_number_string()]
     if not is_final():
-        parts.extend([TYPE, REVISION_HASH, REVISION_DATE])
+        parts.extend([TYPE, REVISION_DATE, REVISION_HASH])
     return "-".join(parts)
 
 
diff -r dc589bfacbf2 -r 70354fa9d0c0 test/unit/meta/version.py
--- a/test/unit/meta/version.py Wed Apr 30 20:15:09 2025 +0200
+++ b/test/unit/meta/version.py Wed Apr 30 20:15:52 2025 +0200
@@ -43,13 +43,13 @@
     def test_full(self):
         self.assertEqual(
             version.get_full_version(),
-            "1.2.3 beta (abc123 2015-11-11)"
+            "1.2.3 beta (2015-11-11 abc123)"
         )
 
     def test_filename(self):
         self.assertEqual(
             version.get_filename_version(),
-            "timeline-1.2.3-beta-abc123-2015-11-11"
+            "timeline-1.2.3-beta-2015-11-11-abc123"
         )
 
     def test_version_numer_string(self):
@@ -77,13 +77,13 @@
     def test_full(self):
         self.assertEqual(
             version.get_full_version(),
-            "1.2.3 development (abc123 2015-11-11)"
+            "1.2.3 development (2015-11-11 abc123)"
         )
 
     def test_filename(self):
         self.assertEqual(
             version.get_filename_version(),
-            "timeline-1.2.3-development-abc123-2015-11-11"
+            "timeline-1.2.3-development-2015-11-11-abc123"
         )
 
     def test_version_numer_string(self):
@@ -111,7 +111,7 @@
     def test_full(self):
         self.assertEqual(
             version.get_full_version(),
-            "1.2.3 (abc123 2015-11-11)"
+            "1.2.3 (2015-11-11 abc123)"
         )
 
     def test_filename(self):

2025-04-30 20:14 Rickard pushed to timeline

changeset:   7977:14b9e5f42ca2
user:        Rickard Lindberg <rickard@rickardlindberg.me>
date:        Wed Apr 30 20:13:56 2025 +0200
summary:     Better link to beta versions.

diff -r 05173e238c74 -r 14b9e5f42ca2 documentation/installing.rst
--- a/documentation/installing.rst Wed Apr 30 20:11:52 2025 +0200
+++ b/documentation/installing.rst Wed Apr 30 20:13:56 2025 +0200
@@ -23,7 +23,7 @@
 Download one of the following installers:
 
 * Latest release: |latest_exe|_
-* Beta version: `latest Windows build <https://projects.rickardlindberg.me/artifacts/timeline/>`_
+* Beta versions: |betas|_
 
 The beta version is for users that want to try the latest features and give
 feedback on them before a release.

2025-04-30 20:12 Rickard pushed to timeline

changeset:   7976:05173e238c74
user:        Rickard Lindberg <rickard@rickardlindberg.me>
date:        Wed Apr 30 20:11:52 2025 +0200
summary:     Better link to beta versions.

diff -r 717827a0cda2 -r 05173e238c74 documentation/changelog.rst
--- a/documentation/changelog.rst Mon Apr 21 21:18:27 2025 +0200
+++ b/documentation/changelog.rst Wed Apr 30 20:11:52 2025 +0200
@@ -3,11 +3,11 @@
 
 Version 2.11.0
 --------------
-    **Planned to be Released on 9 August 2025.**
-
-    *Don't want to wait for the final release? Try the beta version!*
-
-    * `Download source <https://projects.rickardlindberg.me/artifacts/timeline/>`_.
+**Planned to be Released on 9 August 2025.**
+
+*Don't want to wait for the final release? Try the beta version!*
+
+* Beta versions: |betas|_
 
 New features, enhancements:
 
diff -r 717827a0cda2 -r 05173e238c74 documentation/conf.py
--- a/documentation/conf.py Mon Apr 21 21:18:27 2025 +0200
+++ b/documentation/conf.py Wed Apr 30 20:11:52 2025 +0200
@@ -69,13 +69,24 @@
                 break
     return latest_version
 
+def get_current_version():
+    with open("changelog.rst") as f:
+        while True:
+            line = f.readline()
+            if line.startswith("Version "):
+                return line[8:].strip()
+    return "null"
+
 rst_epilog = """
 .. |latest_zip| replace:: timeline-%(version)s.zip
 .. _latest_zip: https://projects.rickardlindberg.me/artifacts/timeline/%(version)s/timeline-%(version)s.zip
 .. |latest_exe| replace:: timeline-%(version)s-Win32Setup.exe
 .. _latest_exe: https://projects.rickardlindberg.me/artifacts/timeline/%(version)s/timeline-%(version)s-Win32Setup.exe
+.. |betas| replace:: all beta versions
+.. _betas: https://projects.rickardlindberg.me/artifacts/timeline/%(current_version)s
 """ % {
     "version": get_latest_version(),
+    "current_version": get_current_version(),
     "exe_version": get_latest_version().replace(".", ""),
 }
 

2025-04-21 21:18 Rickard pushed to timeline

changeset:   7975:717827a0cda2
user:        Rickard Lindberg <rickard@rickardlindberg.me>
date:        Mon Apr 21 21:18:27 2025 +0200
summary:     More logical path for output list.

diff -r d18436c111ab -r 717827a0cda2 Dockerfile.zip.ci
--- a/Dockerfile.zip.ci Sat Apr 19 13:41:56 2025 +0200
+++ b/Dockerfile.zip.ci Mon Apr 21 21:18:27 2025 +0200
@@ -7,4 +7,4 @@
 RUN /venv/bin/pip install icalendar
 RUN /venv/bin/pip install Markdown
 
-CMD ["xvfb-run", "/venv/bin/python", "tools/build-source-zip.py", "--output-list", "Dockerfile.linux311.ci.files", "--output-list", "Dockerfile.zip.ci.files"]
+CMD ["xvfb-run", "/venv/bin/python", "tools/build-source-zip.py", "--output-list", "Dockerfile.zip.ci.files", "--output-list", "Dockerfile.zip.ci.files"]

2025-04-19 13:42 Rickard pushed to timeline

changeset:   7974:d18436c111ab
user:        Rickard Lindberg <rickard@rickardlindberg.me>
date:        Sat Apr 19 13:41:56 2025 +0200
summary:     Latest timeline artifacts are now uploaded on projects.rickardlindberg.me.

diff -r 16449df8988a -r d18436c111ab documentation/conf.py
--- a/documentation/conf.py Sat Apr 19 09:40:33 2025 +0200
+++ b/documentation/conf.py Sat Apr 19 13:41:56 2025 +0200
@@ -71,9 +71,9 @@
 
 rst_epilog = """
 .. |latest_zip| replace:: timeline-%(version)s.zip
-.. _latest_zip: http://sourceforge.net/projects/thetimelineproj/files/thetimelineproj/%(version)s/timeline-%(version)s.zip/download
+.. _latest_zip: https://projects.rickardlindberg.me/artifacts/timeline/%(version)s/timeline-%(version)s.zip
 .. |latest_exe| replace:: timeline-%(version)s-Win32Setup.exe
-.. _latest_exe: https://sourceforge.net/projects/thetimelineproj/files/thetimelineproj/%(version)s/timeline-%(version)s-Win32Setup.exe/download
+.. _latest_exe: https://projects.rickardlindberg.me/artifacts/timeline/%(version)s/timeline-%(version)s-Win32Setup.exe
 """ % {
     "version": get_latest_version(),
     "exe_version": get_latest_version().replace(".", ""),

2025-04-19 09:44 Rickard pushed to timeline

changeset:   7973:16449df8988a
user:        Rickard Lindberg <rickard@rickardlindberg.me>
date:        Sat Apr 19 09:40:33 2025 +0200
summary:     Put zip artifacts in subfolder.

diff -r dcf409aa8ae6 -r 16449df8988a tools/build-source-zip.py
--- a/tools/build-source-zip.py Fri Apr 18 18:48:05 2025 +0200
+++ b/tools/build-source-zip.py Sat Apr 19 09:40:33 2025 +0200
@@ -57,17 +57,21 @@
     extracted_archive.execute_specs()
     target_directory = "."
     zip_file.move_to_directory(target_directory)
-    write_output_list(arguments, join(target_directory, basename(zip_file.get_path())))
+    write_output_list(
+        arguments=arguments,
+        zip_file=join(target_directory, basename(zip_file.get_path())),
+        version=archive.get_version_number_string(),
+    )
 
 
-def write_output_list(arguments, zip_file):
+def write_output_list(arguments, zip_file, version):
     if arguments.output_list:
         with open(arguments.output_list, "w") as f:
             f.write(json.dumps({
                 "artifacts": [
                     {
                         "source": zip_file,
-                        "destination": basename(zip_file),
+                        "destination": join(version, basename(zip_file)),
                     }
                 ],
             }))

2025-04-19 09:40 Rickard pushed to timeline

changeset:   7973:16449df8988a
user:        Rickard Lindberg <rickard@rickardlindberg.me>
date:        Sat Apr 19 09:40:33 2025 +0200
summary:     Put zip artifacts in subfolder.

diff -r dcf409aa8ae6 -r 16449df8988a tools/build-source-zip.py
--- a/tools/build-source-zip.py Fri Apr 18 18:48:05 2025 +0200
+++ b/tools/build-source-zip.py Sat Apr 19 09:40:33 2025 +0200
@@ -57,17 +57,21 @@
     extracted_archive.execute_specs()
     target_directory = "."
     zip_file.move_to_directory(target_directory)
-    write_output_list(arguments, join(target_directory, basename(zip_file.get_path())))
+    write_output_list(
+        arguments=arguments,
+        zip_file=join(target_directory, basename(zip_file.get_path())),
+        version=archive.get_version_number_string(),
+    )
 
 
-def write_output_list(arguments, zip_file):
+def write_output_list(arguments, zip_file, version):
     if arguments.output_list:
         with open(arguments.output_list, "w") as f:
             f.write(json.dumps({
                 "artifacts": [
                     {
                         "source": zip_file,
-                        "destination": basename(zip_file),
+                        "destination": join(version, basename(zip_file)),
                     }
                 ],
             }))

2025-04-18 18:50 Rickard pushed to timeline

changeset:   7972:dcf409aa8ae6
user:        Rickard Lindberg <rickard@rickardlindberg.me>
date:        Fri Apr 18 18:48:05 2025 +0200
summary:     Update documentation to refer to projects.rickardlindberg.me instead of Jenkins instance which will no longer be used.

diff -r 825db4a40323 -r dcf409aa8ae6 documentation/changelog.rst
--- a/documentation/changelog.rst Mon Apr 07 08:27:44 2025 +0200
+++ b/documentation/changelog.rst Fri Apr 18 18:48:05 2025 +0200
@@ -7,7 +7,7 @@
 
     *Don't want to wait for the final release? Try the beta version!*
 
-    * `Download source <https://jenkins.rickardlindberg.me/job/timeline-linux-source/lastSuccessfulBuild/artifact>`_.
+    * `Download source <https://projects.rickardlindberg.me/artifacts/timeline/>`_.
 
 New features, enhancements:
 
diff -r 825db4a40323 -r dcf409aa8ae6 documentation/installing.rst
--- a/documentation/installing.rst Mon Apr 07 08:27:44 2025 +0200
+++ b/documentation/installing.rst Fri Apr 18 18:48:05 2025 +0200
@@ -23,7 +23,7 @@
 Download one of the following installers:
 
 * Latest release: |latest_exe|_
-* Beta version: `latest Windows build <https://jenkins.rickardlindberg.me/job/timeline-windows-exe/lastSuccessfulBuild/artifact/>`_
+* Beta version: `latest Windows build <https://projects.rickardlindberg.me/artifacts/timeline/>`_
 
 The beta version is for users that want to try the latest features and give
 feedback on them before a release.
@@ -56,7 +56,7 @@
 Download one of the following source packages:
 
 * Latest release: |latest_zip|_
-* Beta version: `latest source build <https://jenkins.rickardlindberg.me/job/timeline-linux-source/lastSuccessfulBuild/artifact/>`_
+* Beta version: `latest source build <https://projects.rickardlindberg.me/artifacts/timeline/>`_
 
 The beta version is for users that want to try the latest features and give
 feedback on them before a release.
diff -r 825db4a40323 -r dcf409aa8ae6 documentation/project-infrastructure.rst
--- a/documentation/project-infrastructure.rst Mon Apr 07 08:27:44 2025 +0200
+++ b/documentation/project-infrastructure.rst Fri Apr 18 18:48:05 2025 +0200
@@ -31,16 +31,6 @@
 * **Search the archive:** :sf:`search <mailman/search/?mail_list=thetimelineproj-user>`.
 * **Register:** `register <https://lists.sourceforge.net/lists/listinfo/thetimelineproj-user>`_.
 
-Build server
-------------
-
-We host our own Jenkins server to automatically test Timeline on different
-platforms whenever the source code changes.
-
-If a build fails, an email will be sent to the mailing list.
-
-URL: http://jenkins.rickardlindberg.me
-
 .. _label-launchpad:
 
 Translation service
diff -r 825db4a40323 -r dcf409aa8ae6 documentation/support.rst
--- a/documentation/support.rst Mon Apr 07 08:27:44 2025 +0200
+++ b/documentation/support.rst Fri Apr 18 18:48:05 2025 +0200
@@ -79,8 +79,7 @@
 
     Don't want to wait for it? Try the beta version!
 
-    * Source: https://jenkins.rickardlindberg.me/job/timeline-linux-source/lastSuccessfulBuild/artifact
-    * Windows installer: https://jenkins.rickardlindberg.me/job/timeline-windows-exe/lastSuccessfulBuild/artifact/tools/winbuildtools/inno/out/
+    * Source: https://projects.rickardlindberg.me/artifacts/timeline/
 
     /The Timeline Team