#dev 2026-02-23

2026-02-23 UTC
chosenone, jeffx, Jaded, deathcomestotime, NegateThis, Maker, sathyabhat[d], ax562, moose333, grufwub, Asterisk1, Xe, jjuran, Yoshi, streety, Virtual, nicholai[d], eb, voxpelli, [Schepp], [schmarty], [Sophia_wood]1, Saige_Leah, ludovicchabant, barnaby, rob32, burgeonlab, [jeremycherfas], keicambambam, blacklight, kt1, BB21, jeremycherfas and lockywolf joined the channel; NegateThis left the channel
NegateThis, bloot344, grrrrr, Cheat, sandra, Kolev, jjuran, Lept, srijan, ax562, [Murray], redshuffle, [KevinMarks], [morgan]1, [Al_Abut]1, IWDiscord, CrowderSoup, jasonquintin[d], Kaja, neoruta, [Al_Abut], [morgan], ben__, chimo, revi, topo_97[d], rossabaker, JadedBlueEyes, benji, capjamesg, cotsuka, vriska, pcarrier[d], nsh, Shamgar, deathcomestotime, [morgan]2, rrix and the-archivist joined the channel; NegateThis left the channel
#
[tantek]
capjamesg++ good find!
#
Loqi
capjamesg has 43 karma in this channel over the last year (192 in all channels)
[aciccarello], Shamgar, posixlycorrect, [schmarty], [social], the-archivist, gRegor, Saphire and kushal joined the channel
#
[tantek]
Pokemoning etc.?
#
[tantek]
there's a parallel variant of top level pages (AKA slashpages) that I'm seeing start to multiply as top level ALLCAPS.md files in GitHub repos. it feels like it is getting a bit out of control. e.g. AGENTS.md and most recently (not linking to it because I don't want to encourage it) someone proposed an ACCESSIBILITY.md. Curious if any other devs are seeing this / feeling encouraged/discourged, and or .md-file-maxxing in their repos because
#
[tantek]
haha Loqi bridge broke my too long Slack message into two pieces and put the funny minimal second bit first
[artlung] joined the channel
#
[artlung]
what is CONTRIBUTING.md ?
#
Loqi
CONTRIBUTING.md is a file you can add to your GitHub code repositories which will show a message when someone opens an issue or files a pull request https://indieweb.org/CONTRIBUTING.md
#
[artlung]
It's a convention for standard sorts of communication thing. I'm not sure any of them are *necessities* as such though.
#
[tantek]
just feels like they are now propagating a bit out of control, so eventually we'll get a HUMANS.md etc.
#
capjamesg
Maybe we’ll get a WAFFLES.md too.
#
[tantek]
capjamesg I think a WAFFLES.md proposal would make for an excellent April 1 satire
#
[artlung]
"out of control" is not really something I find myself thinking about files in the root of a repo
#
capjamesg
I’ll save the idea for then 😌
#
[tantek]
I tend towards minimalism in my repos, every non-functional file adds noise
#
[artlung]
Some of those files just aren't for me, but usually I can see their intended audience/device
#
[aciccarello]
I personally have a pet peeve about every tool wanting a file in the root of a repo. But that's mainly preference.
#
[tantek]
^ aciccarello indeed
#
[morgan]2
I would speculate its one of those things where the size of the project may influence it. It may be useful for large projects, ones with accessibility focuses or pinpoints, maybe they are remediating something after getting dinged. But then new tutorials and generated projects and such and such will have them
#
[morgan]2
which I dont like as much
#
[artlung]
this is all so much theory. what's an example, [tantek] of a repo with excessive root level md files
#
[tantek]
accicarello waiting for someone to propose all repos have a .well-known directory to put all the ALLCAPS.md files into 😆
#
[tantek]
[artlung] I'll look for a specific example, however this was seemingly general guidance (for lots of TOPLEVEL.md files) as of last year https://chanmeng666.medium.com/essential-files-for-a-professional-github-repository-a-comprehensive-guide-987b6d24017b
#
[artlung]
So that's 7 top level files in that one. Add AGENTS.md and that's 8. All roughly optional. "it feels like it is getting a bit out of control" - I'd say to me, it doesn't. But your response is reasonable.
#
[artlung]
I had forgotten about `.github/PULL_REQUEST_TEMPLATE.md` - that's a nice one actually, when done well.
#
[tantek]
agreed, we all have our own tolerances for these sorts of things
#
[morgan]2
Im very cynical about bots after someone used trufflehog on my repo and tried to scam report me. my brain keep thinking "Put the ACCESSIBILITY.md file in there, get scanned by roving bots running lighthouse tests or no tests who claim you dont comply, get scam email saying you arent in compliance and threatened" versus no file, no trouble
#
[morgan]2
Probably theoretical but eh
sp1ff and ax562 joined the channel
#
[tantek]
[artlung] this is perhaps more me being a bit of an early canary. I don't have a precise timeline of the introduction of new TOPLEVEL.md files, only an intuitive feel that the pace is accelerating, and if that continues, projecting forward into a future of dozens of such files in a year or two. Hope those projections are proven wrong.
#
[morgan]2
Just its more stuff for people starting out to parse, figure out, before feeling they can share their open sourced work
#
[tantek]
(to be more precise, it's the accelerating pace that merits my "out of control" label, not the current absolute number of TOPLEVEL.md files)
#
[tantek]
agreed Morgan. it does feel like it is adding to the "ceremony" tax of using GitHub repos if there is a growing expectation of "must/should have all these TOPLEVEL.md files"
[snarfed] joined the channel
#
[snarfed]
solution is clearly to move them all to .well-known/ in the repo dir
Lilac joined the channel
#
[artlung]
I don't think these files can fix a bad repo, but they can enhance the usability of any repo. Helps me understand what the heck the thing can do for me.
the-archivist joined the channel
#
[schmarty]
i tend to prefer seeing TOPLEVEL.md files to a half-dozen some-mysterious-utility.yml for the dozen or so VS Code extensions I don't have installed. 😂
#
[tantek]
[snarfed] beat you to it at 13:08 😂
#
[artlung]
100% that. And a good README file can get me to try software sooner. And a bad one (which it so say, not up to date) can signal me to nope out
#
[tantek]
This person has documented 10 TOPLEVEL.md files (though none of his own repos have more than 1-2 of them)
#
[artlung]
There was some lib I tried and the 1st 4 lines were how to get started and it was not up to date and linked to old docs and whoa that is a negative signal. Better to leave it out if it's not doing its job.
#
[tantek]
+1 a good README. It's also immediately displayed upon viewing the repo so it is kinda the equivalent of an index.html
#
[snarfed]
[tantek]++ lol sorry
#
Loqi
[tantek] has 23 karma in this channel over the last year (144 in all channels)
#
[snarfed]
I expect an asymptote to these, sooner rather than later, not continued growth
#
[snarfed]
esp not indefinitely
#
[morgan]2
There is a rich tapestry of signals like you describe, a casual README, an apparently generated README, no README. When was it last updated, is there a current live demo or deployment. All lead to a strong yes or no feeling. I might be a bit jaded now but basically anything requiring npm install Im quite suspect of now, a large chunk of my early career was experimenting in npm land but now its like nope for me
#
[tantek]
I appreciate your optimism [snarfed]
btrem joined the channel; NegateThis left the channel
#
btrem
TIL twig has a filter called `format_number` and another called `number_format`. Gah!
#
btrem
[artlung]: I saw that note. Still, I have to wonder why they added a second filter and named it as they did. I recall someone criticizing php as a language written by committee, resulting in different naming conventions. I can't find the article now, but this sure seems like a result of that sort of process.
#
[artlung]
I always do debug and strict_variables with twig because a missing variable I want to know about.
#
[artlung]
php is English. It adopts the conventions and idioms of any language that dares meet its path
#
btrem
Hahaha
#
Loqi
ahahahaha
#
btrem
I learned about the two filters while researching an answer on Drupal SE.
#
[artlung]
I always run twig with an env like this. I want it to explode if I make a mistake.
#
[artlung]
```$twig = new Environment(
#
[artlung]
$loader, [
#
[artlung]
'cache' => __DIR__ . '/../templates_compiled',
#
[artlung]
'strict_variables' => true,
#
[artlung]
'debug' => true,
#
[artlung]
Environment there is Twig\Environment
#
btrem
I'm not running my own twig env. I'm using Drupal. (Much to my dismay.)
wtl joined the channel
#
[social]
Years back GitHub had a method for dealing with entitlements for people and services for and organization and was something that GH did internally. It was used to give permissions and instructions, but also was a recovery method should something or someone change permissions or access. It was a more or less a shadow repo.
#
[social]
This seems like it is an echo of something similar, but more public facing.
#
[artlung]
When fighting with a templating lang be sure to know what's cached and why. Looks like cache can be disabled. https://www.drupal.org/docs/develop/theming-drupal/twig-in-drupal/debugging-compiled-twig-templates
#
[artlung]
There are few things worse than making a change, seemingly fixing it, then making *one more change* and it still works, but because you were ahead of the cache your "final" answer was broken.
#
[artlung]
Smarty templates have made me deeply mistrustful.
#
[artlung]
And I have worked at places where folks did clever stuff like calculating shopping cart tax totals in smarty templates for display.
Lilac_ joined the channel
#
[artlung]
Why are we undercharging for tax? The site showed the right value!
#
[tantek]
Do we need a "Tales from the Crypt" version of FrESH? 👻
#
[artlung]
Not really technically front end. That's all about where the truth in application state comes from. DO NOT PUT IT IN THE TEMPLATING.
#
[tantek]
wait this is caching INSIDE THE BACKEND?!?
#
[artlung]
Correct.
#
[snarfed]
I'm surprised that calculating tax is compute intensive enough that it needs to be cached
#
[snarfed]
complicated, yes. but compute heavy?
#
[tantek]
sounds more like an accident of all (template) computations being cached
#
[artlung]
The case I'm talking about it wasn't cached in the way you're thinking [snarfed]
#
[artlung]
It was "we need to show the tax, but the php layer isn't providing that data, so why not calculate it ourselves
#
[artlung]
because some programmer had reasons to think that would be a logical place to put it. but it led to much unhappiness from accounting department
#
[artlung]
anytime you're doing math inside a template you probably made a mistake. just because you can create variables in a template lang doesn't mean you should.
#
[tantek]
^ this is good guidance for anyone who would dare to create a template language. leave out the math
#
[artlung]
assembling some classnames and ids, fine.
#
[tantek]
[artlung] would you make an exception for date-time transformation? e.g. epoch seconds to ISO Dates or ISO Dates to localized or any of those to relative dates like "... ago"?
#
[tantek]
like should such transforms be built-in template functions (so the dev doesn't screw them up?)
#
[artlung]
that is perfect usage of templates!
#
[tantek]
it is technically also math, which is why I asked
#
[artlung]
`<time class="dt-published" datetime="{{ published_datetime|date("c") }}"></time>`
#
[artlung]
That's formatting. If I were setting that to a date in the future or past, that would be code smell to me.
#
[tantek]
got it, like n days from now or something
#
gRegor
btrem, you can disable caching on Drupal in (usually) `/sites/default/settings.php` with these two lines: `$settings['cache']['bins']['render'] = 'cache.backend.null';` and `$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';`
#
gRegor
Ah, caveat, in this example we did have to also set up and register a YAML file for that `cache.backend.null`
#
gRegor
It registers the class `Drupal\Core\Cache\NullBackendFactory`
#
gRegor
*register a service via a YAML file
#
[artlung]
I've got a 4 variables in my several hundred lines of twig I use set ( https://twig.symfony.com/doc/3.x/tags/set.html) on. I'm content with them. `{% set slug = result[0] %}` (2 more like this) and `{% set caption = photo.title | default('Untitled') %}` . Glad to see me practicing what I preach pretty much.
#
btrem
I'm not having issues with the Drupal cache. At least, not that I'm aware of. ;-)
#
gRegor
It also covers the Twig stuff Joe mentioned
#
btrem
I have a lot more experience with Nunjucks (and to a lesser extent, Jinja) than I do Twig. I'm not afraid to do math in my templates. But I do try *very* hard to avoid using `set`, e.g. `{% set foo = "bar" %}`. If I am using `set`, there's a good chance I've failed to set up my data correctly.
#
gRegor
Here's the YAML file I had some experience with, note the twig.config: https://pastebin.com/LNBBr1jT
#
btrem
I just checked. I have 6 `set`s in my 11ty site. Four of them were copied and pasted from sites showing how to get tags working. I should probably see if they're really necessary. One is for a page of Wordle statistics; I use `set` to avoid rerunning several functions to generate those statistics, which I use twice on that page. One is just to make the code more readable. That one I should definitely refactor.
#
[artlung]
tags are an interesting case. I have some machine generated tags on some content, and some tags which I explicitly hide in old blog posts but are useful to me.
#
[artlung]
(that's why I was looking at the tags page the other day)
#
btrem
Responding to https://kami.bearblog.dev/why-microformats-are-a-good-idea/ (posted earlier today, but I only just saw it). I can't disagree with what he says, but the argument rests on applications supporting the format. I can mark up events with `h-event`, but if no calendar app will read `h-event`, then I'll still have to publish it in some other format, like iCal. In which case I lose the DRYness.
#
btrem
Same for contacts. I can add `h-card` markup, but if no email program will read them into its address book, then I'll have to publish them as .vcards, in which case again I'm no longer DRY.
#
btrem
I certainly wouldn't use JSON-LD. That'd be publishing the same info _three_ times for no real gain that I can see.
vriska joined the channel
#
[tantek]
Solid critiques btrem. I'd say the "applications supporting the format" point can be solved the way we have granary and Bridgy, but don't (yet?) exist AFAIK
#
btrem
It's quite painful.
elysiancellar[d] joined the channel
#
btrem
I don't really understand Bridgy. I don't have any active social media accounts, so (if I understand the point of Bridgy), I don't need it. I only discovered Granary fairly recently. But since email clients/services don't support JSON, there's no point in figuring out Granary. Again, if I understand what it does.
#
btrem
I'm truly amazed by how much time I've spent over $deity knows how many months trying to set up a subscribe-able address book and events calendar for a small community. With almost nothing to show for it. Someone pointed out that I can't be the only person who wants this. My sentiments exactly. And yet....
jonnybarnes joined the channel
#
[snarfed]
huh. not sure I fully understand, but granary isn't JSON-only. h-event => ICS, h-card => .vcard, etc are both totally reasonable feature requests!
#
[snarfed]
(but afaik one or both those converters already exist outside of granary. so I'm probably just not following)
#
btrem
I think we've had this discussion. IIRC, the stumbling block is http basic auth.
#
btrem
Also, .vcard by itself is not subscribe-able, is it? It'd have to be carddav, which I think might be its own circle of hell in the Inferno. ;-)
Ramon and Ray joined the channel
#
[snarfed]
ah, auth, ok
#
[snarfed]
still doable in (ie could be added to) granary, it does other auth already, but yes, I remember our previous conversation
#
btrem
What is "other auth"?
#
Loqi
It looks like we don't have a page for "other auth" yet. Would you like to create it? (Or just say "other auth is ____", a sentence describing the term)
#
btrem
Right after hitting "enter" I realized that I just prompted Loqi. Oh quite, you. We're having a conversation!
#
btrem
s/quite/quiet
#
btrem
And it still doesn't solve the address book AFAIK.
#
btrem
At some point I have to wonder why all the hoops? Like, why in the name of all that is wondrous can't email programs support something less insane than carddav?
#
gRegor
other auth like passing in an Access Token, like for the Twitter API conversion Granary does
#
gRegor
And I think the answer to the last question is: enterprise software, haha
#
btrem
Oh, right. That came up in our previous discussion around this topic, but I had forgotten.
#
[snarfed]
yes! and more in the library
#
gRegor
Or at least software by bigcos. Good luck getting Outlook to support something else, right?
#
btrem
gRegor: yes, that is the problem.
#
btrem
Although it seems like there'd be more people using a Calendar app if there were more calendars that one could subscribe to. And there'd be more published calendars if there were something easier to publish.
#
btrem
As for address books, yeah, they would certainly want lock in.
#
btrem
[snarfed]: Access tokens would be beyond the ability of the calendar's intended audience. These are people who barely know how to use a browser. ;-)
#
btrem
I know someone who works at Yahoo, specifically on their email client. I just sent a message asking if it supports carddav (and if the calendar part of Yahoo supports caldav). I suspect yes, though he may not know one way or the other. Were I inquire about alternative formats, I'm likely to get a proverbial blank stare. ;-)
#
[snarfed]
right, not proposing access tokens for anything. just precedent that granary does auth (and some other kinds), and that I'd be open to adding more
#
btrem
[snarfed]: I don't know much about granary. I imagine it'd be hard to integrate with a Drupal site, no?
#
[snarfed]
the library, yes. the API as a service, maybe not
#
btrem
Right. Sadly, it's the API that I'd really want.