gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Changelog and git log hygiene


From: Ivan Vučica
Subject: Re: Changelog and git log hygiene
Date: Sun, 5 Apr 2020 18:48:59 +0100

gnustep-make tarball for 2.8.0 is timestamped 4:14pm on my machine.
Let's say 4:30pm is when I wrapped that up.

Last update to news.texi file on my machine is 6:03pm. This means I
spent 1h30 nonstop reading through changes that were made over the
last 15 months and updating the newsfile.

Let's please not end up in this state again.

- Please write descriptive commit messages that are useful standalone.
- If you are making large changes over the course of smaller commits
that you intend to merge:
  - make individual commits understandable without inspecting the patchfile
  - either squash them into one descriptive commit when merging, or
ensure merge commit describes exactly what happened
- Definitely update ChangeLog file. It's useful for releases.
- If you can, update Documentation/news.texi with semantic description
of what you've done.

Again: Please maintain the ChangeLog file. Don't drop things just
because "right now" you don't need them. Please make git commits
standalone useful. Please help with news.texi file. If a section for
next release doesn't exist, add it; we can fix the version more easily
than adding semantic description later.

I'll commit 1.27.0 shortly. When I do, note that 1.27.0's news.texi
*is* a mess because *too many changes happened*. There's no way I can
organize this into clear groupings without spending even more time on
this. I don't know what everyone did or why; it took 1h30 to
understand this.

As a counterpoint, I particularly found some Frederik Seiffert's
messages useful, especially in the ChangeLog. Dated 2019-05-23 and
2019-05-20, I could clearly understand *exactly* what happened.

I will include them to demonstrate:

========
2019-05-23  Frederik Seiffert <address@hidden>

* configure:
* configure.ac:
Link against libandroid on Android.
* Headers/Foundation/NSBundle.h:
* Source/NSBundle.m:
Added methods for passing Android asset manager from Java to GNUstep
and for getting AAsset/AAssetDir for given path in main bundle.
Skip app bundle suffix check on Android. Extended bundle resource
paths backbone to check for known paths directly on Android as we
can't enumerate directories.
Extended -localizations method to check for known localizations
directly (requires setting userLanguages in NSUserDefaults).
Extracted path cache cleaning into separate method.
* Source/GSFileHandle.h:
* Source/GSFileHandle.m:
Added file handle support for reading Android assets from main bundle.
* Source/NSData.m:
Added support for reading Android assets from main bundle in
readContentsOfFile(). This is also used by all other
-initWithContentsOfFile: and related methods from other classes.
* Source/NSFileManager.m:
Added support for Android assets from main bundle in
fileExistsAtPath:isDirectory:, isReadableFileAtPath:,
NSDirectoryEnumerator, and copying from assets. Extended
GSAttrDictionary with basic support for Android assets.
* Source/NSProcessInfo.m:
Added +initialize method to auto-initialize NSProcessInfo on Android
using fake executable path "/data/data/<app identifier>/exe" (Android
apps don't have a real executable path).

2019-05-20  Frederik Seiffert <address@hidden>

* Source/NSLog.m: Have all logs go to syslog on android.
* Source/NSThread.m: Spinlock implementation using builtins as
implemented by David in libobjc2
* Source/NSRunLoop.m
* Headers/GNUstepBase/config.h.in:
* configure.ac:
This updates the libdispatch runloop integration to be compatible with
the Swift corelibs libdispatch release at
(https://github.com/apple/swift-corelibs-libdispatch).

In that release, the main queue handle and drain functions have been
renamed with a "_4CF" (for CoreFoundation) suffix and have moved to
private.h, so we now check for the existance of this header and
function names.

Note that libdispatch must be compiled with
INSTALL_PRIVATE_HEADERS=YES.

Also fixes the checks for the HAVE_LIBDISPATCH_RUNLOOP define (was
inverted) and ensures that both the handle and drain functions are
available.
========



reply via email to

[Prev in Thread] Current Thread [Next in Thread]