Git Product home page Git Product logo

ddablib's Introduction

⛔ DelphiDabbler Code Library (Archived)

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.

Library Contents

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.

Project Web Page GitHub Repository
About Box Component ddablib/about
Clipboard Viewer Component ddablib/cbview
Console Application Runner Classes ddablib/consoleapp
Drop Files Components ddablib/dropfiles
Environment Variables Unit ddablib/envvars
Extended String Property Editor ddablib/stringpe
Fractions Unit ddablib/factions
Hot Label Component ddablib/hotlabel
I/O Utility Classes ddablib/ioutils
MD5 Message Digest Unit ddablib/md5
Message Dialogue Components ddablib/msgdlg
Resource File Unit ddablib/resfile
Shell Folders Unit ddablib/shellfolders
Stream Extensions Classes ddablib/streams
System Information Unit ddablib/sysinfo
Version Information Component ddablib/verinfo
Windows State Components ddablib/wdwstate

† 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.

Releases

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.

Documentation

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).

Bugs & Feature Requests

Please report any bugs or request new features on the relevant ddablib repository's Issues page.

History of the library

Pre-history

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.

A monolith is created

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!

Subversion

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.

Git

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.

The monolith shatters

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.

ddablib's People

Contributors

delphidabbler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.