> On Mar 27, 2025, at 10:01 AM, Paul Dufresne via Freedos-devel > <freedos-devel@lists.sourceforge.net> wrote: > > I think there is so much confusion about the Entered-date fiels, that maybe > we should switch on using version 4. > > > "The 1999-12-22 version (version 4) is only a minor change from version 3. > - First, version 4 entries begin with a line containing "Begin4" rather > than "Begin3". > - The other difference is that dates are now in the format specified in > ISO 8601 <http://www.cl.cam.ac.uk/~mgk25/iso-time.html > <http://www.cl.cam.ac.uk/~mgk25/iso-time.html>>." > > Because in version 4, the Entered date is defined as: > The 1999-12-22 version (version 4) is only a minor change from version 3. > - First, version 4 entries begin with a line containing "Begin4" rather > than "Begin3". > - The other difference is that dates are now in the format specified in > ISO 8601 <http://www.cl.cam.ac.uk/~mgk25/iso-time.html > <http://www.cl.cam.ac.uk/~mgk25/iso-time.html>>. > See https://lsm.qqx.org/LSM.README <https://lsm.qqx.org/LSM.README> > > But we use version 3, where it should be: > > Entered-date: Date in format ddMMMyy of when the LSM entry was last > modified, where dd is 2-digit day of month, MMM is > ALL-CAPITALIZED first 3 English month letters, and yy > is last two digits of the year in the Gregorian > calendar. Note that you should fill in both Version > and Entered-date. > according to: https://www.ibiblio.org/pub/Linux/docs/LSM/LSM.README > <https://www.ibiblio.org/pub/Linux/docs/LSM/LSM.README> > > Also, I come on the subject because for Bolitare, we now have: > Begin3 > Title: Bolitaire > Version: 0.62b > Entered-date: 2015-12-04 > Description: A Freecell card game > Author: Yogesh > Copying-policy: GNU General Public License, Version 2 > Summary: A Freecell card game for DOS. > Modified-date: 2025-03-23.2 > End > > Where a Modified-date was added, but Entered is supposed to be the date of > last modification (both in > version 3 and 4) >
When going through all of the various packages available to FreeDOS, the Entered-Date field was a complete and total mess. Sometimes the value was the “very first time the package was created”, Sometimes “when that version was created”, Sometimes “when anything in the package was updated”, Sometimes “only when the binaries were updated" Sometimes the build time which was neglected for a few versions, and other values which possible meant something to someone. On top of that, the information was represented in whatever format the individual felt like using. For example: 23mar15, 23MAR15, 23-MAR-15, 23-March-2015, 3/23/15, 03/23/2015, 15-03-23, and on and on. This haphazard gathering of various formats is a pain to process through simple automation and makes operations like sorting difficult. But more important, when viewing lists of packages on the download /update repositories it looked atrocious and unprofessional. Most of this likely occurred from the lack of any automation. It would require whoever included the update to always examine the field for accuracy and format consistency every single time a package changed. So a long while back, I went through and standardized that field in all packages on the YYYY-MM-DD format. I also have the Repository Management Utility (aka FDREPO) verify the correct format is used. If it is not, it will reject the package and not add it to the download/update repo until it has been corrected. But, that information is still rather inconsistent and useless. Hence, the Modified-date field was added and its format is enforced by the utilities. Eventually when the field is present (always on the download Repository), tools like FDIMPLES will use that field instead of relying on parsing the Version or trying to use Entered-date. When editing an LSM, the Modified-date field is not something to be concerned about adjusting. Originally, it was only added the the LSM by the FDREPO when it was not present and the package was added to a download repo (usually my unofficial repository). I would then download the updated version and upload that to the official repository. This would keep the packages identical. The recent update to FDVCS includes support to update that field using a slightly different method. It will scan the entire package finding the latest updated file. It will then use that timestamp to update that field and apply the same timestamp to the LSM file. Assuming the file timestamps are correct, this make sure the modified-date field is accurate to the last change of the package contents. Since whenever a package at GitLab is updated, I will update my local copy, apply the timestamp preservation routine in FDVCS and some other housekeepings stuff. Then, I will push the updated information back to GitLab. GitLab does not preserve timestamps on its own. So depending on wether or not the individual who initially pushed the changes used FDVCS to update the timestamp, the record times can be off a few days. As a bonus, I can update the Modified-date field in every package in just a few minutes using the new FDVCS tool. Under a local directory which contains all of the projects, I can simply run: fdvcs.sh -ens -fe -f -mod -c “udpdate metadata modified-date field” Breaking that command down… -ens (Error No Stop) Do not stop processing additional projects with a “ForEach” if an errors occurs. Just move on to the next project. -fe For each project, perform the following built-in commands of the utility -f (Fetch) If there are any updates to the project on the server, pull them. If needed, update the timestamp database and restore the timestamp of files. -mod Find the latest updated file. If needed, Update or Add the modified-date field and LSM timestamp. -c If needed, Create a new INDEX.md page with updated metadata. If needed, update the timestamp database file. If needed, commit and push the changes back to GitLab. At some point in the near future, I am likely to have the Commit/Push option automatically perform -mod and -lfn. While the information in the Entered-date is anyones guess to what it represents, the Modified-date field is kept reasonably accurate through various automated utilities. I am currently working on the next version of FDREPO and it will contain the same logic for setting that field if for some reason it is not present. Same goes for the next edition of the RBE. Probably for the current RBE version after 1.4 is released when it is switched over to the new version of FDVCS. Among several other things, I recently used FDVCS to update/add that field and perform some other cleanup across all of the projects. That includes the removal of all current CI/CD runners. When the new version of FDREPO is done, I will likely create a new CI/CD for the projects. One that only performs verification of the project directory structure and metadata files. Since packages can be created locally with FDVCS or downloaded from the IBIBLIO Repository, it will no longer create “packages” on GitLab itself. :-) Jerome
_______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel