diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1676b670c3631823ea901a0002edc1b69b826928..ac7e72c2ba610e641391cd9985694c744e74f9d1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -66,4 +66,17 @@ check-backup-db:
       if ! cmp sohstationviewer/database/soh.db sohstationviewer/database/backup.db; then
         echo "Backup database (sohstationviewer/database/backup.db) is different from working database (sohstationviewer/database/soh.db). Please copy the working database to the backup database."
         exit 1
-      fi
\ No newline at end of file
+      fi
+
+check-changelog:
+  tags:
+    - passoft
+  stage: Build Env and Test
+  before_script:
+    - ''
+  script:
+    - |-
+      if ! cmp sohstationviewer/CHANGELOG.rst HISTORY.rst; then
+        echo "The changelog is different from (sohstationviewer/CHANGELOG) is different from the history file (HISTORY.rst). Please ensure both files have the same content."
+        exit 1
+      fi
diff --git a/MANIFEST.in b/MANIFEST.in
index 5bd4b988a5cbe8b77eee9d93f55621c5338219c5..1abf19697e87aed23d3eac6e40c3256ed86f3d98 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -2,6 +2,7 @@ include HISTORY.rst
 include README.rst
 include sohstationviewer/database/soh.db
 include sohstationviewer/database/backup.db
+include sohstationviewer/CHANGELOG.rst
 
 graft sohstationviewer/documentation
 graft sohstationviewer/images
diff --git a/sohstationviewer/CHANGELOG.rst b/sohstationviewer/CHANGELOG.rst
new file mode 100644
index 0000000000000000000000000000000000000000..326c88df914e1d9dc1353a00411eb455cef27198
--- /dev/null
+++ b/sohstationviewer/CHANGELOG.rst
@@ -0,0 +1,91 @@
+=======
+History
+=======
+
+2023.1.0.0
+--------
+
+* First release
+
+2023.1.0.1
+--------
+
+* Fixed a problem with SOHViewer not fitting on smaller resolutions
+
+2024.2.0.0
+--------
+
+* Migrated GUI library from PySide2 to PySide6
+* Database editor is now functional
+* RT130's mass-position data (i.e. data stream 9 data) now does not generate
+an Event channel
+* Input to minimum gap length editor is now constrained to only accept numeric
+input
+* Improved the ability to calculate the size of a data set
+* General bug fixes
+
+2024.2.1.0
+--------
+
+* Add reset button to database editors
+* Add ability to add new channels to the database from the plot
+* Add ability to edit a channel's plotting information from the plot
+* Change the size of the main information box
+* Bug fixes
+
+2024.3.0.0
+--------
+* Improve the performance of the program
+* Add ability to print a help document to PDF
+* Let users hide/show and reorder plotted channels
+* Update editor for value colors in database editor
+* Add backup database and ability to revert to it
+* Add ability to revert a row to the value in the backup database in the
+database editor
+* Shows information about a gap when it is clicked
+* Show external devices when selecting the data directory in Linux
+* Add version information to various places
+* Disable replot button during various times
+* Add ability to add a data type to data sets without detected one
+* Improve how TPS plots look
+* Improve the UI of the database editor
+* Add support for VST channel in Pegasus data
+* Update the colors in the plot for white background
+* Bug fixes
+
+2024.3.0.1
+--------
+* Fix a bug that happens when building on some Linux machines
+* Bux fixes
+
+2024.3.1.0
+--------
+* Improve performance for RT130 data sets when only a subset of all data
+streams is read.
+* Add the ability to zoom out in the plot.
+* Add unused SOH channels (VGT, VPH, VPO, VPP, VPV) for Pegasus datalogger to
+the database. These channels are used for an unsupported model of the Pegasus
+datalogger.
+* Plot points with value 255 in the VAN channel for Pegasus datalogger in gray
+instead of red. This distinguish them from points with value 2.
+* Limit the zoom range. This fixes a bug that happens when the zoom range is
+too small.
+* Remove support for matplotlib versions below 3.6.2.
+* Pause support for numpy versions 2.0 and above. Support will resume when all
+dependencies have been updated to support numpy 2.0 and above.
+* Fix the button to plot a different station in the same data set not being
+enabled when needed.
+* Fix default rows in the channel preference dialog being converted to
+non-default rows on save.
+* Fix artifacts showing up in the plot with some field laptops.
+* Fix problems reading RT130 data sets caused by choosing specific data streams
+to read.
+* Fix TPS plot being broken for data sets with high-amplitude waveforms.
+
+2024.4.0.0
+--------
+* Add a changelog viewer in the about window.
+* Add ability to change the text font size in the plots.
+* Add ability to change the size of plotted points in some plot types.
+* Add ability to revert changes when editing the value-color map of a plot
+* Improved performance when reading RT130 data by not reading data outside of the selected time range.
diff --git a/sohstationviewer/view/about_dialog.py b/sohstationviewer/view/about_dialog.py
index 5f400d64550245243491b52ce87b5d646a7b5b08..52d717d7386369921d28d9b3cf28c731c7f48d31 100644
--- a/sohstationviewer/view/about_dialog.py
+++ b/sohstationviewer/view/about_dialog.py
@@ -119,8 +119,8 @@ class AboutDialog(QDialog):
         :return: dictionary of history by version
         """
         current_file_path = os.path.abspath(__file__)
-        root = Path(current_file_path).parent.parent.parent
-        history_path = root.joinpath('HISTORY.rst')
+        root = Path(current_file_path).parent.parent
+        history_path = root.joinpath('CHANGELOG.rst')
         version_re = re.compile('^[1-3][0-9]{3}.[1-9].[0-9].[0-9]$')
         history_dict = {}
         lines = []