Add documentation, make minor code modifications, cleanup build infrastructure #1

Merged
vv merged 4 commits from juliana/guile-termenv:documentation into main 2024-02-26 19:03:27 +00:00
Owner

This PR is messier than I usually like, but I'll try to explain every logical set of changes.

First and simplest are the documentation additions. These are all in the commit "Add basic documentation". These should be uncontroversial.

The next set of changes of note are the code changes. These were already discussed, have been tested, and are in "Enable support for more varieties of hexcode strings" and "Make port arguments last and optional". They do as described.

The final set of changes are those in "Cleanup build infrastructure" and these warrant more explanation. Overall, the objective is to allow the project to be built and maintained primarily through Guix. Firstly, this commit removes the AUTHORS, ChangeLog, and NEWS files. These are rarely used in modern software projects as they are more-or-less eclipsed by a combination of git and release notes. Then, it removes bootstrap because it is redundant to extant build steps with only the addition of autoreconf -vif. Using Guix allows autoreconf -vif to be trivially executed during build. Finally, build-aux is removed. By adding hall build -x as a part of the build process, we get build-aux for free; and we have to run that with the current directory layout anyway. As a trivial aside, the redundant guile-termenv directory is deleted; everything it had to offer is covered by termenv instead.

The upshot of the build system changes are that a typical build-and-test cycle looks like guix shell --rebuild-cache -f guix.scm guile. This builds the project, runs tests, and installs everything for usage in a single command. If more granular control is desired, one can use guix shell -Df guix.scm, optionally with -C or --pure, to get a working environment. From there, code can be built with the combination of commands hall build -x, autoreconf -vif, and ./configure.

This PR is messier than I usually like, but I'll try to explain every logical set of changes. First and simplest are the documentation additions. These are all in the commit "Add basic documentation". These should be uncontroversial. The next set of changes of note are the code changes. These were already discussed, have been tested, and are in "Enable support for more varieties of hexcode strings" and "Make port arguments last and optional". They do as described. The final set of changes are those in "Cleanup build infrastructure" and these warrant more explanation. Overall, the objective is to allow the project to be built and maintained primarily through Guix. Firstly, this commit removes the `AUTHORS`, `ChangeLog`, and `NEWS` files. These are rarely used in modern software projects as they are more-or-less eclipsed by a combination of git and release notes. Then, it removes `bootstrap` because it is redundant to extant build steps with only the addition of `autoreconf -vif`. Using Guix allows `autoreconf -vif` to be trivially executed during build. Finally, `build-aux` is removed. By adding `hall build -x` as a part of the build process, we get build-aux for free; and we have to run that with the current directory layout anyway. As a trivial aside, the redundant `guile-termenv` directory is deleted; everything it had to offer is covered by `termenv` instead. The upshot of the build system changes are that a typical build-and-test cycle looks like `guix shell --rebuild-cache -f guix.scm guile`. This builds the project, runs tests, and installs everything for usage in a single command. If more granular control is desired, one can use `guix shell -Df guix.scm`, optionally with `-C` or `--pure`, to get a working environment. From there, code can be built with the combination of commands `hall build -x`, `autoreconf -vif`, and `./configure`.
juliana added 4 commits 2024-02-13 04:54:04 +00:00
24d2341cf9 Make port arguments last and optional
These changes allow library users to leave out port arguments to instead use
current-output-port.

* termenv/hyperlink.scm (format-hyperlink): Move port to the end of the argument
list and make it default to #t.
(format-hyperlink, hyperlink): Make name optional and use link if it is not
provided.
00e68a9d29 Enable support for more varieties of hexcode strings
Enable support for hexcode strings with or without prefixes, and using one or
two characters per byte. Additionally, move hex->color to fix a build error.
Author
Owner

Gah, my tab settings borked indentation on these files... Let me fix that up before merging so there's consistent indentation.

Gah, my tab settings borked indentation on these files... Let me fix that up before merging so there's consistent indentation.
Owner

As a trivial aside, the redundant guile-termenv directory is deleted; everything it had to offer is covered by termenv instead.

Ah that was just a mistake as I attempted to rename it from the default that Hall creates, but one file must have been missing/regenerated

> As a trivial aside, the redundant guile-termenv directory is deleted; everything it had to offer is covered by termenv instead. Ah that was just a mistake as I attempted to rename it from the default that Hall creates, but one file must have been missing/regenerated
Owner

I'm happy to merge this whenever good.

I'm happy to merge this whenever good.
vv merged commit 6cbbb506e7 into main 2024-02-26 19:03:27 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: solarpunk-guile/guile-termenv#1
No description provided.