diff options
author | EuAndreh <eu@euandre.org> | 2021-07-14 06:44:20 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-07-14 06:48:24 -0300 |
commit | 592b5ac53d56d00b3724c9ef3f4de90ec5f07f0f (patch) | |
tree | f3eed767c8e8af2d467608496fd0482f081258d2 /TODOs.md | |
parent | TODOs.md: s/user/consumer/ (diff) | |
download | git-permalink-592b5ac53d56d00b3724c9ef3f4de90ec5f07f0f.tar.gz git-permalink-592b5ac53d56d00b3724c9ef3f4de90ec5f07f0f.tar.xz |
TODOs.md: Stick to 80 columns on text
Diffstat (limited to '')
-rw-r--r-- | TODOs.md | 187 |
1 files changed, 129 insertions, 58 deletions
@@ -30,10 +30,14 @@ From roff(7): --- -For the translations that I write myself, I can do things such as give warnings and even enforce that they stay up-to-date. -I can't do the same for contributed translation, both because I shouldn't enforce things, but also people may always leave. +For the translations that I write myself, I can do things such as give warnings +and even enforce that they stay up-to-date. +I can't do the same for contributed translation, both because I shouldn't +enforce things, but also people may always leave. -Having two tiers of translations would allow for contributions to fit in the workflow when available, be updated when possible, and included when requested, without creating trouble for the ones I maintain. +Having two tiers of translations would allow for contributions to fit in the +workflow when available, be updated when possible, and included when requested, +without creating trouble for the ones I maintain. Things to consider from the viewpoint of the contributor: - <input type="checkbox" disabled /> visibility when translations are missing; @@ -44,7 +48,9 @@ Things to consider from the viewpoint of the contributor: ## DONE Investigate the accessibility and need for ARIA elements for manpages and markdown {#task-55fe6623-2bfc-49dd-061c-3899ae2b1c68} - DONE in 2021-07-13 - As I found out, ARIA stands for "Accessible Rich Internet Applications", but since markdown and manpages include no JavaScript, the HTML itself being semantic is already accessible. + As I found out, ARIA stands for "Accessible Rich Internet Applications", but + since markdown and manpages include no JavaScript, the HTML itself being + semantic is already accessible. This isn't even a "WONTFIX", but a "NONISSUE". - TODO in 2021-07-06 @@ -54,16 +60,19 @@ Things to consider from the viewpoint of the contributor: Eligible for investigations are: - manpages (I'd expect those to be standard, but who knows); - HTML from manpages as generated by pandoc; -- HTML from markdown, also as generated by pandoc, both for `commonmark.sh` and `TODOs.sh`. +- HTML from markdown, also as generated by pandoc, both for `commonmark.sh` and + `TODOs.sh`. -Test them with a desktop screen reader, talkback and maybe a browser screen reader such as ChromeVox (or its free alternative). +Test them with a desktop screen reader, talkback and maybe a browser screen +reader such as ChromeVox (or its free alternative). ## CANCELLED Add `EXIT_STATUS` section to manpage {#task-d6f1ddb3-2111-bcdb-1873-0a414a5f7157} - CANCELLED in 2021-06-27 This was already implemented :) - In fact, this is a duplicate of [`#task-de34e119-049f-67a0-da8b-e0103ed24a2b`](#task-de34e119-049f-67a0-da8b-e0103ed24a2b). + In fact, this is a duplicate of + [`#task-de34e119-049f-67a0-da8b-e0103ed24a2b`](#task-de34e119-049f-67a0-da8b-e0103ed24a2b). - TODO in 2021-06-27 ## DOING Translate README.md and CHANGELOG.md {#task-7c5cd2aa-6d92-0423-bfa7-81f2e8436586} @@ -75,23 +84,33 @@ Test them with a desktop screen reader, talkback and maybe a browser screen read --- -Unlike `doc/git-permalink.*.1.in` files, these two don't need to be commited into the repository. +Unlike `doc/git-permalink.*.1.in` files, these two don't need to be commited +into the repository. -The reason why the manpages are is to lessen the requirement on the consumer when they're on the canonical `make && make install` path. -They can even `make check` before installing (or uninstalling), and all of those targets are specifically kept with minimal requirements, so that the user can build, test and install the software without requiring extra dependencies. -Due to that, the translated manpages are kept in the repository so that users don't need `po4a` or `gettext`. +The reason why the manpages are is to lessen the requirement on the consumer +when they're on the canonical `make && make install` path. +They can even `make check` before installing (or uninstalling), and all of those +targets are specifically kept with minimal requirements, so that the user can +build, test and install the software without requiring extra dependencies. +Due to that, the translated manpages are kept in the repository so that users +don't need `po4a` or `gettext`. The same is not true for the `public` target. This is meant for building the HTML pages of the website. -Even though all of the code that generates those pages live in the repository under `aux/`, `make public` isn't part of the canonical steps required for users to install software. +Even though all of the code that generates those pages live in the repository +under `aux/`, `make public` isn't part of the canonical steps required for users +to install software. -Because of that, `{README,CHANGELOG}.{pt,fr,eo}.md` don't need to live in the repository, and can be generated on the fly under the `public` target. +Because of that, `{README,CHANGELOG}.{pt,fr,eo}.md` don't need to live in the +repository, and can be generated on the fly under the `public` target. -As with manpages, the actual file will be `README.en.md`, and `README.md` is a symlink to that. +As with manpages, the actual file will be `README.en.md`, and `README.md` is a +symlink to that. I should also add links to the translated versions on each translation. -This should bring an accompanying change to `aux/workflow/assert-readme.sh` and `aux/workflow/assert-changelog.sh`. +This should bring an accompanying change to `aux/workflow/assert-readme.sh` and +`aux/workflow/assert-changelog.sh`. ## DONE Remove hard coded `public/` path in some files under `aux/` {#task-f09dedb7-1b25-0b5e-2520-910a9aa32562} - DONE in 2021-06-22 @@ -161,25 +180,42 @@ Options: ## CANCELLED Use `gettext` for translating `src/git-permalink.sh` texts {#task-717fa8b7-1c92-5766-8872-280ae061bf4b} - CANCELLED in 2021-06-21 - I've considered this, and I even started working on it, but I've chosen not to pursue it further, as I now think this is a mistake. + I've considered this, and I even started working on it, but I've chosen not to + pursue it further, as I now think this is a mistake. - Regardless of gettext's power and usefulness, it is definitely an overkill for for this application. - It would bring more things to the project, both in build time (requiring the generation of message files and friends) but also in run time (loading the message files themselves). - This could certainly be done via `$PREFIX/libexec/$lang.sh` or something equivalent, but this would also be increasing the installation complexity, too. - Expecting a sane installation environment is sane (but not always true), but the reasoning behind doing is just "because". + Regardless of gettext's power and usefulness, it is definitely an overkill for + for this application. + It would bring more things to the project, both in build time (requiring the + generation of message files and friends) but also in run time (loading the + message files themselves). + This could certainly be done via `$PREFIX/libexec/$lang.sh` or something + equivalent, but this would also be increasing the installation complexity, + too. + Expecting a sane installation environment is sane (but not always true), but + the reasoning behind doing is just "because". The same functionality can be implemented with less, and it already is. - It may be true that for bigger programs the same trade-off reasoning would tip the balance to the other side, and make choosing gettext a *better* decision, but this is not the case. + It may be true that for bigger programs the same trade-off reasoning would tip + the balance to the other side, and make choosing gettext a *better* decision, + but this is not the case. For the modest purpose of this software, the current solution is good enough. - Maybe it could be less restrictive of country or encoding, but the fundamental idea of embedded variables with an `eval` to define the relevant one stays the same. - Changing from an `eval` to a `case` statement builds upon the same underlying principle: of having string variables on the same file, and keep them in sync in a completely manual process. - - Consider the cost and complexity of building tooling around the [quotation of the `don't` text][quotation], and one can envision one of the challenges that including in specialized i18n tooling might bring along. - Those tools have their usages and places, they do exist for a good reason, and they should be used when applicable, but this is not it. - - This isn't really about POSIX sh, implementation language, or even the size of the program, but about the trade-off analysis of this use case, where I'm the one writing the code and the translations on a tiny piece of POSIX sh code. + Maybe it could be less restrictive of country or encoding, but the fundamental + idea of embedded variables with an `eval` to define the relevant one stays the same. + Changing from an `eval` to a `case` statement builds upon the same underlying + principle: of having string variables on the same file, and keep them in sync + in a completely manual process. + + Consider the cost and complexity of building tooling around the + [quotation of the `don't` text][quotation], and one can envision one of the + challenges that including in specialized i18n tooling might bring along. + Those tools have their usages and places, they do exist for a good reason, and + they should be used when applicable, but this is not it. + + This isn't really about POSIX sh, implementation language, or even the size of + the program, but about the trade-off analysis of this use case, where I'm the + one writing the code and the translations on a tiny piece of POSIX sh code. This analysis makes me choose **not** to use `gettext`. [quotation]: https://git.euandreh.xyz/git-permalink/tree/src/git-permalink.sh?id=caaac9ffb8c80432ef41ad9434762d3e3401f01a#n11 @@ -216,7 +252,8 @@ See `man man.1` for reference. ## DONE Use `hunspell` for checking spelling mistakes in translations {#task-4ae91595-6e6d-be17-d882-754a478da878} - DONE in 2021-06-25 - It is not included in the `dev-check` target because of errors of `iconv` and UTF-8: + It is not included in the `dev-check` target because of errors of `iconv` and + UTF-8: ```text $ ./aux/guix/with-container.sh 'make spellcheck' @@ -264,7 +301,8 @@ public/fr/git-permalink.1.html:54: Locate: git | Try: g ## CANCELLED Consider `-?` flag for showing the help message {#task-fbc4e2cc-b9e0-53e2-6b0a-8ec118962046} - CANCELLED in 2021-06-21 - It may have been true and conventional historically, but neither [POSIX], nor [TAOUP], nor [Conventions for Command Line Options] instruct that. + It may have been true and conventional historically, but neither [POSIX], nor + [TAOUP], nor [Conventions for Command Line Options] instruct that. [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html [TAOUP]: http://www.catb.org/~esr/writings/taoup/html/ch10s05.html @@ -279,7 +317,8 @@ public/fr/git-permalink.1.html:54: Locate: git | Try: g - TODO in 2021-06-22 Actually, I didn't implement this. - What I did was add `getopts` to `src/git-permalink.sh.in`, not to `aux/workflow/manpages.sh`. + What I did was add `getopts` to `src/git-permalink.sh.in`, not to + `aux/workflow/manpages.sh`. - DONE in 2021-06-22 Done <del>kind of</del> in @@ -288,7 +327,8 @@ public/fr/git-permalink.1.html:54: Locate: git | Try: g --- -Instead of the current <del>confusing</del> positional argument with some optional one. +Instead of the current <del>confusing</del> positional argument with some +optional one. ## DONE Fix missing signature link {#task-eb65cbf1-bff9-be13-f185-3ea53333aa6f} - DONE in 2021-06-19 @@ -314,7 +354,8 @@ Instead of the current <del>confusing</del> positional argument with some option ## DONE Fix tests in CI {#task-1e18a7cc-1055-bd09-3060-c03292ba583b} - DONE in 2021-06-12 - There was a test that was too brittle, and it was removed. See [CI logs before] and [CI logs after]. + There was a test that was too brittle, and it was removed. + See [CI logs before] and [CI logs after]. Done in [`cd7bd39b1b6ce7d958f48d63b42ba3ab5fdf6f21`](https://git.euandreh.xyz/git-permalink/commit/?id=cd7bd39b1b6ce7d958f48d63b42ba3ab5fdf6f21). @@ -322,7 +363,9 @@ Instead of the current <del>confusing</del> positional argument with some option --- -For some reason, running them locally with `./aux/guix/with-container.sh 'make clean public dev-check'` passes, but the same command doesn't on CI. +For some reason, running them locally with +`./aux/guix/with-container.sh 'make clean public dev-check'` passes, but the +same command doesn't on CI. [CI logs before]: https://euandreh.xyz/git-permalink/ci-logs/2021-06-12T22:51:21+00:00-07a75e37a4564ed13bc2f50ab84009df137bc223.log [CI logs after]: https://euandreh.xyz/git-permalink/ci-logs/2021-06-12T23:15:22+00:00-cd7bd39b1b6ce7d958f48d63b42ba3ab5fdf6f21.log @@ -343,8 +386,9 @@ For some reason, running them locally with `./aux/guix/with-container.sh 'make c The `description` was already good enough. - The `long-description` has better content over the previous duplication of whatever was in `description`. - Done in + The `long-description` has better content over the previous duplication of + whatever was in `description`. + Done in [`9e089d29ec64936df39b9b1a0e385f988d843416`](https://git.euandreh.xyz/git-permalink/commit/?id=9e089d29ec64936df39b9b1a0e385f988d843416). The `README.md` is less empty, but still missing a "Usage" section. @@ -355,13 +399,18 @@ For some reason, running them locally with `./aux/guix/with-container.sh 'make c ## DONE Write tests {#task-fd654661-fa97-83db-1d49-83a66866ccfa} - DONE in 2021-06-12 - I didn't find a simple way to test without getting too much into the weeds with mocking Git, and I don't think it is worth it. + I didn't find a simple way to test without getting too much into the weeds + with mocking Git, and I don't think it is worth it. - The tests I created are actually just exercising the help and versions flags, and asserting that other flags are ignored. - For effectiveness this is pretty shallow and pretty useless, but I'm fine with the state of not testing the core functionality. + The tests I created are actually just exercising the help and versions flags, + and asserting that other flags are ignored. + For effectiveness this is pretty shallow and pretty useless, but I'm fine with + the state of not testing the core functionality. - To do that it would require me to split `src/git-permalink.sh` into two files, one with the function definitions and the other as a runner. - But then I would have to glue them together on the `install` target, and more similar complications. + To do that it would require me to split `src/git-permalink.sh` into two files, + one with the function definitions and the other as a runner. + But then I would have to glue them together on the `install` target, and more + similar complications. Given all that, I chose not to write more tests, and call this done. @@ -435,27 +484,39 @@ part of the first version: Using the language only is better, period. - There are special cases where the country actually helps specify two different languages, such as zh_CN and zh_TW. - But the default should be the language encompassing universally all countries that speak that language. + There are special cases where the country actually helps specify two different + languages, such as zh_CN and zh_TW. + But the default should be the language encompassing universally all countries + that speak that language. Regionalisms are avoided to better inclusivity of less populated countries. - BONUS: The golden rule is to make the translation unit to be the sentence rather than words. - This is just a general comment on translation logistics, and has nothing to do with including the country. + BONUS: The golden rule is to make the translation unit to be the sentence + rather than words. + This is just a general comment on translation logistics, and has nothing to do + with including the country. - TODO in 2021-07-06 --- -Wikipedia has the best approach to translations, in my opinion, and I'm considering following it, or do something inspired by it. +Wikipedia has the best approach to translations, in my opinion, and I'm +considering following it, or do something inspired by it. -The main concept is do translate content based on the language, but not the country. -So instead of having a `pt_PT` and a `pt_BR` version, there is only one `pt` version, and local differences are included in the translation itself. +The main concept is do translate content based on the language, but not the +country. +So instead of having a `pt_PT` and a `pt_BR` version, there is only one `pt` +version, and local differences are included in the translation itself. -Other than the obvious benefit of requiring less translations to exist, I like the fact that they are capable of capturing the language, without excluding different countries or communities that speak them. +Other than the obvious benefit of requiring less translations to exist, I like +the fact that they are capable of capturing the language, without excluding +different countries or communities that speak them. -Everywhere else I see the country as part of the language identifier or the translation, and I don't like it. -Personally, I'd rather have a text that is a little bit less idiomatic to a country, but is universal to the language. +Everywhere else I see the country as part of the language identifier or the +translation, and I don't like it. +Personally, I'd rather have a text that is a little bit less idiomatic to a +country, but is universal to the language. -Wikipedia has other decisions that I disagree with, such as serving different content for desktop and mobile, from different DNS addresses ([1], [2]). +Wikipedia has other decisions that I disagree with, such as serving different +content for desktop and mobile, from different DNS addresses ([1], [2]). That is just to say that I want to take some of their ideas, but not all. [1]: https://diff.wikimedia.org/2009/06/30/wikimedia-mobile-launch/ @@ -503,11 +564,16 @@ itself. --- -This is an anti-pattern in the viewpoint of the category of files that should exist in the repository, but this is made strictly for one rule: reducing the dependencies of the project for consumers (and not for developers), namely, gettext. +This is an anti-pattern in the viewpoint of the category of files that should +exist in the repository, but this is made strictly for one rule: reducing the +dependencies of the project for consumers (and not for developers), namely, +gettext. -Since gettext itself isn't standard (see [discussion] on this topic), adding this requirement to the consumer (user or packager) isn't desirable. +Since gettext itself isn't standard (see [discussion] on this topic), adding +this requirement to the consumer (user or packager) isn't desirable. -So here I'm optimizing for more things being commited in the repository in the name of less requirements. +So here I'm optimizing for more things being commited in the repository in the +name of less requirements. [discussion]: https://www.austingroupbugs.net/view.php?id=1122 @@ -519,7 +585,9 @@ So here I'm optimizing for more things being commited in the repository in the n No. - Pandoc is too lenient with man, and knows only about man and not about the rest of troffs toolchain (`tbl`, `eqn`, `pic`, etc.), but groff is worst on Unicode, so we stick to pandoc. + Pandoc is too lenient with man, and knows only about man and not about the + rest of troffs toolchain (`tbl`, `eqn`, `pic`, etc.), but groff is worst on + Unicode, so we stick to pandoc. - TODO in 2021-07-10 ## DONE Is an empty blank line in groff the same as a `.P` request? {#question-e3b7748d-2e67-b60b-e966-ad80c754ea58} @@ -531,7 +599,9 @@ So here I'm optimizing for more things being commited in the repository in the n --- -When reading the manpage with `man` or looking at the final output generated with `pandoc`, it seems to me that an empty line behaves and mean the same thing as a `.P` request. +When reading the manpage with `man` or looking at the final output generated +with `pandoc`, it seems to me that an empty line behaves and mean the same thing +as a `.P` request. If this is true, these two snippets are equivalent: ```troff @@ -554,7 +624,8 @@ The second paragrah. The third paragraph. ``` -I find the second option to be much more readable, and if both are equivalent I prefer writing that. +I find the second option to be much more readable, and if both are equivalent I +prefer writing that. In fact, I don't see any reason at all to use `.PP`. # Resources |