This is the former home of a library of assorted Delphi components, units and IDE extensions by DelphiDabbler.
➡️ Active development of the library now takes place in a group of repositories in the ddablib GitHub organisation.
⚠️ WARNING: This repository is now archived. The code is frozen and out of date.
At the time the library was transferred to ddablib, it contained the projects listed in the table below. Links are provided to each project's web page and to its ddablib GitHub repository.
† The About Box Component depends on the Version Information Unit, which must be installed first.
‡ Some of the Console Application Runner Classes demo programs make use of code from I/O Utility Classes.
The latest release of each project is available from the relevant ddablib project page.
Many more releases can be found archived on SourceForge in the DDabLib Files page, where each project has its own folder.
Each sub-project of the library is fully documented. You can access the latest version of the documentation via: https://delphidabbler.com/url/ddablib-docs (:arrow_right: redirect).
Some sub-projects also have an FAQ page that can be accessed via https://delphidabbler.com/url/ddablib-faqs (:arrow_right: redirect).
Please report any bugs or request new features on the relevant ddablib repository's Issues page.
This library goes back a long way. When it was first created the code was not under version control. However, reasonably complete records of changes and releases were kept, either as change logs in source files or in separate documents. A file named PreSVNHistory.txt
, containing a summary of the project's history to date, was added to each library project.
At this time each library project was separately maintained in its own directory and received its own releases.
In 2009 the decision was taken to combine all the library projects into a single, monolithic, library. The intention was to release the whole library instead of making separate releases of each individual project.
This never actually happened!
A new Subversion repository was created to maintain the whole library. Gradually, the existing library projects were imported as sub-projects, starting with the System Information Unit on 2009-07-04 and ending with the Clipboard Viewer Component on 2010-10-13. (Full details of import dates can be found in /common/Docs/svn-initial-import-dates.md
). Each sub-project had its own sub-directory in trunk/projects
. There was also a trunk/common
directory for tools and anything else that could be shared amongst all sub-projects.
Originally the repository was maintained locally but eventually it was moved to GoogleCode as the ddab-lib
project. When the closure of GoogleCode was announced the repository was moved to SourceForge, now named DDabLib. Dates when this move took place are not known.
The repository remained on SourceForge until 2022. During that time several new sub-projects were begun. These sub-projects do not have the aforementioned PreSVNHistory.txt
file.
By 2022 the library was the last of my projects still being maintained in Subversion: everything else was using Git. There had already been one or two abortive attempts to convert the repo to Git, but finally, on 2022-01-16, the changeover was made.
Only the contents of the Subversion repository's trunk
were exported. While the Subversion release tags
were not exported, equivalent Git tags were added at the last commit before each sub-project's release date. These tags had the form <projectname>-v9.9.9
. There were no Subversion branches.
Because there was some loss of information in the conversion, the SourceForge repository has been retained for archive purposes.
All Subversion commits were applied to the Git repo's main
branch. The last commit relating to code imported from the Subversion repo was tagged as svn-import
.
After the conversion was complete the library was uploaded to GitHub as the delphidabbler/ddablib repository.
New development on the Git repository was carried out on the develop
branch, with main
being updated and tagged only at each sub-project release.
As has been mentioned, the intention to release the library as a whole was never realised. Instead, individual sub-projects continued to be released separately.
Keeping all the sub-projects in one repo meant that GitHub's tag-based release system couldn't be used effectively. Consequently, releases continued to be uploaded to SourceForge. It was clear that it would be more logical to split the library back into its constituent projects.
Therefore, on 2022-05-21, the long overdue decision was taken to split the monolithic Git repository into 17 different repositories, one for each sub-project. A new GitHub organization was set up and all the new repositories were uploaded there.
The Git filter-branch
command was used to extract the individual library project repositories from the monolith. This flattened the develop
branch into the main
branch so that all changes that had been made in develop
now appeared in main
.
Tags were preserved, although some errors were corrected. Each release tag was renamed from <projectname>-v9.9.9
format to version-9.9.9
format. A replacement svn-import
tag was added to each repository at the last commit before conversion to Git. Finally, a new ddablib-split
tag was added at the last commit made before the monolithic repository was divided.
A release was created on GitHub for the latest version of each project at the time of the split. Subsequent releases were finally being made available on GitHub as well as SourceForge. Earlier releases remain available on SourceForge.
Following the split, development on delphidabbler/ddablib ceased. Further commits were made to main
, but these were only for the purpose of archiving the repository. The begin-archiving-process
tag marks the start of this process.
The new repositories adopted the GitFlow development methodology.