1. 1

    Interesting that they support Syncthing. I was under the impression that that’s not an easy thing under iOS. Do they embed it along with this app or do something more clever? Or was my impression simply wrong?

    1. 3

      Do they embed it along with this app or do something more clever?

      It relies on third party apps plugging into iOS via https://developer.apple.com/documentation/fileprovider

      Plain Org supports any provider that hooks into the above. Folks have reported success for a handful of providers at https://www.reddit.com/r/plainorg/comments/qfrf87/please_share_how_are_you_syncing_your_files_with

      Here’s how you typically enable them https://support.apple.com/en-gb/HT206481#thirdparty

      In short, the Mobius Sync app seems to work for Syncthing.

      Edit: added more details.

      1. 2

        I’d love to try setting this up, but the $9 purchase price is turning me away. It’s not that I mind paying $9 for an app, but I’d have to pay that without even knowing if there’s a suitable sync mechanism for my setup. “Seems to work” isn’t very reassuring.

        1. 2

          I feel the same way; my org files are in Dropbox, and given that the habit tracker does’t work with Dropbox, I’m leery of dropping the money on an app that may not actually work for me.

          1. 2

            Dropbox should be fine for reading, writing, and creating new files, but not opening local links. This is for Dropbox to fix (by allowing selecting/opening folders).

            Here’s a user corroborating Dropbox works fine https://www.reddit.com/r/plainorg/comments/qfrf87/comment/hi2drdl

            Here’s a list of then known providers https://plainorg.com#cloud-providers and how to enable them https://support.apple.com/en-gb/HT206481#thirdparty

            Please DM if I can be of more help.

          2. 2

            I’m being cautious here. I’ve not verified this particular syncing app myself and I don’t have a Syncthing server, so I’m a little conservative in my answer. There are a handful of users that have reported Mobius Sync app working well along Plain Org. Here’s two of them: https://www.reddit.com/r/plainorg/comments/qfrf87/comment/hi2cq9q/

            ps. Refunds are possible on the App Store https://support.apple.com/en-gb/HT204084

            1. 2

              Well, I’m gonna go ahead and test this and will report back.

              edit The combination (Mobius Sync + Plain Org) works, but syncthing files are just a regular folder that Plain Org can have access to. Since iOS doesn’t support background tasks, syncthing is active only when it’s on the foreground so essentially syncing is manual.

              1. 2

                Since iOS doesn’t support background tasks, syncthing is active only when it’s on the foreground so essentially syncing is manual

                File providers work different than that. Syncing apps bundle additional extensions to handle file download/syncing. The extensions plug into iOS infrastructure and made available to other apps (like Plain Org) via file pickers.

                https://developer.apple.com/documentation/fileprovider

                1. 1

                  I’m not sure if this fixes the synchronization. Plain Org cannot signal to Mobius that synchronization needs to happen, so we’re stuck with Mobius having to do that. It does have a background sync functionality (https://www.mobiussync.com/faq/) but that doesn’t seem to guarantee anything beyond “this happens a few times over a day).

                  Perhaps this is not a big problem for most people, but I find it a bit scary that things update out-of-order – especially a problem since orgmode’s data format being simple text doesn’t support that in any way.

                  1. 1

                    Oh! I need to check this again then.

                  2. 1

                    Thank you!

                  3. 2

                    What’s your setup for syncing? You can test syncing without installing Plain Org itself. If the iOS Files app can view/sync the files, then Plain Org will have access to them too.

                    You’ll need to install whichever syncing app you need for your provider and enable it with https://support.apple.com/en-gb/HT206481#thirdparty

                    For users on Syncthing, they have reported using Mobius.

                    DM me. Happy to help.

                    1. 1

                      Thanks. I trust based off the other reviewers it does work. The lack of background syncing is probably going to keep me from purchasing, but unless you’re going to add sync natively to Plain Org nothing will likely change there.

                      edit: Maybe I’m the odd one here, but I’d rather have a free app that is limited without a subscription. I like to provide ongoing financial support for products I use, and this can alleviate my try before you buy concerns.

                      1. 1

                        The lack of background syncing

                        I’m possibly misunderstanding what is meant by background here, but when you make edits in Plain Org, they get picked up by whichever cloud syncing extension you have and synced asynchronously. The quality of each syncing provider varies with their implementation (out of the control of Plain Org).

                        https://developer.apple.com/documentation/fileprovider https://support.apple.com/en-gb/HT206481#thirdparty

                        I like to provide ongoing financial support for products I use

                        Tricky subject. From a developer perspective, this would make the work much more sustainable.

                        I asked a bunch of beta users and most were not super keen on subscriptions.

                        1. 1

                          Apple iOS restricts apps from running continuously in the background, but apps can run for short times sporadically. Möbius Sync uses various methods to invoke background behaviour. Minimum interval between quick syncs and power syncs can be configured under Settings, but iOS schedules background activity in an adaptive manner that is not predicatable and sometimes counter-intuitive. It may take 24 hours to start sync but you can expect a total of 1-2h of sync activity per day once stable.

                          The quality of each syncing provider surely varies, but they’re all limited by the restrictions Apple puts on background apps. I’m not asking you to re-design your app to natively to support sync, just pointing out that this is a less than ideal setup for something like notes. If I edit a note on my computer, and want to access it on my phone within a few minutes, I’ll have to open Mobius Sync force a manual sync. This is effectively what another commenter points out.

                          edit: I also get that technically inclined users, especially ones who have invested in an open source solution like org, aren’t keen on subscriptions. I’m just voicing my opinion in support of them, because I want the tools I like to be supported long term. :)

                          1. 2

                            Hey, thank you for Möbius Sync’s FAQ quote! I’ll reach out to author and see if things are a little different for extensions. With Plain Org being a client of the third party extension, I’d love to learn more about the extensions internals.

                            I’m just voicing my opinion in support of them, because I want the tools I like to be supported long term. :)

                            Thank you! I hope the sentiment grows. Helps all devs.

              1. 4

                Reading that article just brought back really painful memories of trying to grok a large and complex Perl codebase written by 4-5 different very smart people with different ideas of how they wanted to lay out the code and reference data. Arguably, I dislike the language more after reading that, mostly because I had partially forgotten how horrible it was to maintain anything written in it.

                1. 3

                  Getting on a plane (gasp!) for the first time since Feb 2020, to fly to meet the team I now work with that has come into being entirely during the pandemic and is completely located on the far side of the country from me.

                  I might also do a bit of tourism in DC while I’m there.

                  1. 4

                    Hit Udvar Hazy while you’re out here – especially if you’re around Dulles. Such a great museum and well worth the trip.

                    1. 2

                      It’s already on the list.

                      1. 1

                        There is a tower simulation, worth walking through. After seeing the enola gay of course.

                  1. 12

                    TIL about starship for prompts. Looks good, I will give that a try.

                    1. 3

                      I used it when it was a regular zsh script. I got tired of having to re-configure it whenever updates broke my configuration as it changed or removed features I used. I’m not sure how stable it is now but I did enjoy it while it lasted.

                      1. 2

                        I’ve been using it for a while and haven’t had any of the problems that the other commenter seemed to have. My setup is pretty simple though.

                        1. 3

                          There was one significant backwards-incompatible change that I can recall, but it was trivial to address. And for my part, I’d rather have my software evolving than never releasing a change in case it breaks someone somewhere.

                        2. 1

                          I used starship previously and something happened to make it grind to a halt. I moved to romkatv/powerlevel10k and have had no such issues since. I once saw a discussion around a plug-in being implemented which was rejected as it took 10ms to run!

                          Edit: found the discussion, it was 11.4ms and it was reworked rather than rejected, but hopefully you get the point I was trying to make

                          1. 2

                            One aspect of my choice of Starship that doesn’t come through in this post is that I use the fish shell as my daily driver, but I use zsh and bash on remote hosts in various places. Having a consistent prompt on all three of those is a huge selling point, even if my prompt might take 50-70ms to render.

                            1. 2

                              Don’t worry, not trying to invalidate your choices or anything. I’m sure it was something I did otherwise the GitHub issues would be full of noise! Having a consistent prompt is a really solid pro for sure.

                              1. 1

                                I didn’t think you were :D

                                I just figured it might help to have a bit of clarity on the rationale. Arguably I should edit the post with that :)

                              2. 1

                                I’m curious why such a dichotomy? Are you required to use zsh/bash on the remote machines or is it a matter of convenience? I’m forced to use bash, but would gladly switch to zsh if I could install it…

                          1. 7

                            Doom has an active and helpful Discord. It’s actually the best place to talk about Emacs in general that I’ve found.

                            This is kind of sad to read. Is it related to Discord or the specific community?

                            1. 14

                              Hi I’m a moderator in the doom discord community. If it’s any consolation I have been trying to steer people toward using other resources available, particularly the mailing list.

                              I think we’ve grown the way we have because we’re not very strict about what the topic at hand is and understand that most users coming to doom emacs (and I expect spacemacs as well) are coming not from emacs but from vim or vim-likes and like to talk about lots of things besides emacs. This includes other text editors, games, operating systems, and more. Being off-topic is on topic in a lot of cases. Our community is also younger (at 33 I’m probably one of the oldest in the server) with lots of college and high school kids who’s online social life has been won by discord. We’re simply more approachable to them than most other emacs communities.

                              A lot of credit for the helpfulness can also go to Henrik who is both patient and gracious with new users and eager to help wherever he can. He sets a very friendly tone and I don’t think I’ve ever seen him troll, lighthearted or otherwise (thinking back I don’t think I’ve ever registered a swear word from him).

                              1. 5

                                If it’s any consolation I have been trying to steer people toward using other resources available, particularly the mailing list. […] Our community is also younger […] with lots of college and high school kids who’s online social life has been won by discord. We’re simply more approachable to them than most other emacs communities.

                                That is nice to know. As someone who is just around the “Discord generation” (22), I fear that I would have got caught up in that development. Emacs in particular was essential to my appreciation of Free Software, which is why I care about this. The other reason is that the dominance of Discord is something I often resent, as I get excluded from communities I could be interested in participating because of my own principles.

                                1. 2

                                  The other reason is that the dominance of Discord is something I often resent, as I get excluded from communities I could be interested in participating because of my own principles.

                                  In the linked comment you mentioned your hesitation to use an Electron application. Have you considered trying the Discord-Matrix bridge?

                                  1. 2

                                    I could use it (even if Matrix is a bit too slow for my taste), but my there point was not the specific server, as I don’t use Doom, but the general culture of organizing communities around Discord, a platform I would like to have nothing to do with in itself.

                                    1. 2

                                      The discord-matrix bridge allows you to communicate with a community using Discord while giving you the option of using a matrix client, which is better than being forced to use the discord client. But this requires cooperation from the moderators of the discord guild, and still doesn’t solve the problem of Discord interfering with communications on what is fundamentally their platform.

                                      1. 1

                                        I read that using a third party client can get your account banned for life since it is against the terms of service.

                                    2. 2

                                      That matches my experience. Henrik is amazingly patient for someone whose project blew up into this huge thing. I wish I could match that.

                                    3. 2

                                      As someone who uses customize almost exclusively to configure my Emacs environment, I’m curious why none of the popular Emacs enhancement frameworks use it. I found this comment in the Doom repo—does anyone have insight into what they mean here?

                                      ;; Doom doesn't support `customize' and it never will. It's a clumsy interface
                                      ;; that sets variables at a time where it can be easily and unpredictably
                                      ;; overwritten. Configure things from your $DOOMDIR instead.
                                      
                                      1. 1

                                        AFAIK a lot of people do not like that customize writes code, that makes code (slightly) harder to version. Doom is opinionated, so I guess they decided to not be interested in preserving that mode of configuring.

                                      2. 1

                                        Not sure - but I will say that the community on the Doom Emacs Discord is very friendly and very helpful, and also active. So if you ask a question you’ll probably get an answer fairly quickly.

                                        1. 7

                                          That might be the case, my issue is mainly that it is organized on Discord, which IMO shouldn’t be used for free software projects.

                                          1. 4

                                            I honestly actively do not care about that criteria.

                                            1. 1

                                              What do you mean? The usage of Discord per se or the usage of Discord by Free Software communities?

                                              1. 1

                                                I’m not going to derail this thread with my opinion on that.

                                                1. 1

                                                  Ok :/

                                        2. 1

                                          I don’t know, but I have yet to find as friendly a group to ask dumb newbie questions, as that one. And some of my questions are, sadly, still dumb newbie questions :)

                                          1. 2

                                            Out of curiosity, have you ever tried the help-gnu-emacs mailing list? There are all kinds of questions posted there all the time, from total beginners to Elisp developers.

                                        1. 2

                                          One thing that’s helped me is having my whole dev environment set up with a Vagrant script, so I can use it in a VM on various work, home and cloud computers and still have access to all the tools I’m used to.

                                          Another useful thing is code-server, which is a browser interface for VSCode (which is already an Electron app so it’s not too hard to put in a browser). You can run it inside Vagrant (maybe on a cloud instance) and have access to a familiar IDE.

                                          1. 1

                                            That’s a fantastic idea! If I end up using VSCode at some point – I’ve bounced off it a few times, mostly because “emacs” :) – I may mimic that.

                                            1. 1

                                              A little late to the discussion, but I recently switched to VSCode and I am using https://github.com/whitphx/vscode-emacs-mcx for key bindings. It’s not quite perfect of course, but nothing that trips me up on a day to day basis.

                                              I’ve been using Emacs since ’97 or so off and on (mostly on - I used Eclipse when I was doing Java work) and so the muscle memory is quite hardwired at this point ;) I do miss recording macros on the fly (though I might guess something like that exists for VSCode already).

                                              I do drop into a terminal and run emacs -nw or mg (usually for writing git commit messages).

                                          1. 2

                                            I’m not sure what is the advantage of Chezmoi over more powerful tools like Ansible, Saltstack. I take a look at the Quick Start guide and not really convinced.

                                            1. 7

                                              I think they are intended for different use cases. Chezmoi is about setting the user config, by copying the config files to the right places under $HOME, while Ansible and Saltstack are for configuring the whole OS.

                                              This is a matter of a personal preference, but one should never “program” in YAML to configure anything, even the OS :)

                                              1. 3

                                                Exactly this. Chezmoi is aimed at a much smaller problem than “whole system” configuration. In fact, I use ansible to set up my Chezmoi initial configuration when bringing up a new computer, so for me at least the two are complementary.

                                              1. 2

                                                Is it just me, or are many links broken (with an unnecessary underscore at the end)?

                                                1. 1

                                                  It’s not just you. I screwed up some formatting. It’s fixed now.

                                                1. 3

                                                  The chezmoi link has an additional underscore at the end, removing it redirects correctly.

                                                  1. 1

                                                    Thanks! I fixed that, it should work now.

                                                  1. 8

                                                    I belive that this article will interest more people: https://www.fsf.org/news/statement-of-fsf-board-on-election-of-richard-stallman

                                                    The thing with a statement like this is that I’m afraid it won’t change anyone. I see it as a reafirmatiom of RMS honesty, others won’t. I wish the conversations around these topic would become more “civilised” (for lack of a better word), so that some concensus can be reached.

                                                    That being said, I wonder what influence the open letter and the support letter had on all of this. It seems the letter of support has currently twice as many signatures as the one criticising RMS, which is supprising. Then again, I was also amused to be reminded of how small the actual community of people who actually care about these things (pro or contra) are.

                                                    1. 37

                                                      It seems the letter of support has currently twice as many signatures as the one criticising RMS, which is surprising.

                                                      As a signer of the original letter, the signatures in the original letter matter a lot more than the counterletter.

                                                      The counterletter was drafted in 4chan /g/ (I saw the thread where people were drafting it) and heavily promoted in the Eastern Bloc at first. It was posted in several Russian-speaking link aggregation sites as well as 4chan itself. Sure, it has more numbers… by a bunch of people who are not writing the free software we are using. In the original letter I see people who wrote the software I’m using, people I have collaborated in bugs with, people I have met at Debconf and Pycon. I see organisations that make free software. In the counterletter I see some personalities like esr and a lot of angry Russians who are upset that someone is telling them that women are having a bad time in free software.

                                                      A few of the signers of the counterletter managed to get some troll signatures, in Russian and 4chan references, into the original letter. They were trying to prove that this meant that there were no safeguards in the original letter and were arguing that by forcing github usernames, their signatures were more valid. Whenever I discovered these troll signatures using my limited Russian, I pointed them out and they were removed. So there were some quality checks.

                                                      Number of signatories doesn’t mean anything. The original letter even stopped accepting signatures while the counterletter kept accepting them. It’s quite easy to get a lot of people in favour of any cause if you frame that cause as being some version of “free speech”, regardless of the speech being said and regardless of all of the people RMS has alienated from free software, especially women.

                                                      1. 16

                                                        heavily promoted in the Eastern Bloc at first

                                                        I am very troubled by this. Why are opinions of free software developers in the Eastern Bloc (or Asia, for that matter) any less valid? Blend2D (a random example) is a great free software, isn’t it? Speaking as an Asian. Thanks.

                                                        1. 6

                                                          I’ve explained this elsewhere, but judging from comments they have made in Habr and presumably 4chan, their motivations are linked to anti-women, anti-LGBT initiatives common in Russia and other Slavic countries. They tend to frame kindness initiatives that do not directly benefit men as some sort of Western degeneracy. This is why their opinions on why Stallman should be head of the FSF matter less.

                                                          Also, Stallman just hasn’t toured Russia that much; most of them have probably never had to deal with him much or work with him. They don’t know him like we do.

                                                        2. 9

                                                          The way I see it, both the people around the open letter and the support letter can be divided into two respective groups. The open letter have those honestly concerned about the negative influence of Stallman on the perception of the FSF/Free Software in general, just like there are those who are honestly concerned about the integrity of the FSF/Free Software when it comes to preserving user freedoms. The second groups are respectively those who are interested in undermining Free Software and those invested in Culture-War issues issues regarding Free Speech, as you mention. The interesting thing is that both “sincere” sides will probably overestimate and focus on the latter groups. An issue structured like this will naturally lead to a cultural deadlock.

                                                          What I wonder is why you think that the open letter is in itself more legitimate than the support letter, because you recognize more developers you know. To some degree it should be expected that people you agree with will more likely be on the same side of the issue. Ultimately it would seem to me that considering that Free Software and user freedom isn’t something that should just interest developers, but users too, even if they don’t have great reputations or have met friends at conferences.

                                                          Either way, because of the deadlock and the arguing about “numbers vs. legitimateness”, I don’t think that these two sides will agree on anything. It is but another trench in this virtual conflict. All I can do is wonder if this influenced the FSF in any meaningful way.

                                                          1. 26

                                                            The original letter are people writing free software. I don’t know what the counterletter people are doing, but they’re not, for the most part, working on GNU, Debian, openSUSE, gcc, nor are they FSF members or employees or hardly anything of the sort.

                                                            This matters.

                                                            Btw: I don’t think anyone is interested in undermining free software. This is a conspiracy theory promoted by the counterletter authors and supporters, that somehow if we don’t want Stallman it must mean that we want to be serfs to FAMANG.

                                                            I support free software. I don’t have to support Stallman to do so.

                                                            1. 14

                                                              Setting aside that there are Free Software contributors that sign the support letter,

                                                              • Andrea Corallo (GCC developer, Emacs developer)
                                                              • Eli Zaretskii (GNU Emacs maintainer)
                                                              • Leah Rowe (Libreboot Project Leader)

                                                              to name a few I recognize, next to members of the same projects you mention – I repeat my question: Why does it matter?

                                                              1. 9

                                                                Yes, there are some. If we go by “voting members” of the free software world, so to speak, there are way more in the original letter than the counterletter.

                                                                No orgs have signed the counterletter either.

                                                                1. 7

                                                                  Again, why does this matter?

                                                                  1. 26

                                                                    Demonstrably it didn’t. Neither letter mattered. The FSF did whatever it wanted.

                                                                    But for me it mattered. It showed that there is a clear consensus of people I want to work with. We agree on who we no longer want to be in charge or be a philosophical beacon for us.

                                                                    1. 11

                                                                      I think the open letter mattered a lot by starting the discussion and making it clear that a lot of people have a problem that he rejoined the board.

                                                                      The support letter shows that a lot of his followers have no problem about any of his opinions or thoughts as long as he did a lot of great work.

                                                                      1. 5

                                                                        Demonstrably it didn’t. Neither letter mattered. The FSF did whatever it wanted.

                                                                        That is what I was wondering. Did the surprising outcome of the support letter help the FSF make their decision? The reason I use the word “surprising” is that in most cases, the “right” and “wrong” sides of these discussions are quickly established, the insinuation of a majority is made on various social media platforms and the change is pushed through (such as with Stallman in 2019 or with the Linux Kernel before). I actually expected the support letter to have far less traction, whether because the position is less popular of because it is more risky to voice support for that side. The previous chapter of the controversy had the “Joint Statement” to state opposition to Stallman. The other side didn’t have anything of that sort.

                                                                        Ultimately this is all speculate and doesn’t amount to anything, but it is an interesting shift (or problematic tendency, depending on your interpretations).

                                                                        1. 17

                                                                          it is more risky to voice support for that side

                                                                          There is no greater risk to signing the counterletter. This is another conspiracy theory pushed by the counterletter, that there is a great cabal of worldwide cancellists who will harm you if you publicly support Stallman. That you need to have great bravery to sign the counterletter.

                                                                          I have no hard numbers, but I believe in actuality the signers of the original letter have received more abusive emails. I got a lot when I signed the GNU joint statement asking for RMS to be removed from leadership in 2019. I’m actually really afraid about having signed the original letter. I am afraid someone will get very angry and try to track me down to my home or something like that. Well, I am not sure how likely this could be, but there’s a lot more undirected anger in the counterletter than the original letter, aimed at a vague and nebulous “cancel culture”. The original letter’s anger is more focussed on a single individual who has been holding back free software for decades.

                                                                          1. 14

                                                                            Not a conspiracy theory at all. I may not be hired for choosing to sign the pro-RMS letter:

                                                                            https://twitter.com/jhulten/status/1376360925809106951

                                                                            A tool to “block” signers of the pro-RMS letter: https://github.com/travisbrown/octocrabby

                                                                            There’s even a browser extension to highlight signers, anywhere we show up.

                                                                            But sure, go on. “Cancel culture” doesn’t exist!

                                                                            1. 13

                                                                              You’re afraid of not being hired by… some dude. I’m afraid of someone showing up in my home and trying to harm me. How many angry and threatening emails have you gotten? I got about about five in 2019.

                                                                              I’m also a little afraid of not being hired by some people for having signed the letter; similar compilations exist for those who signed the original letter.

                                                                              1. 4

                                                                                Yes, cancel culture does exist.

                                                                                However most tech companies are not bigoted enough to respect these “cancel” lists, and I’ve never seen sufficient evidence to the contrary. As to the ones who are, you would not want to work with them anyway.

                                                                                Also, I predict that the future will be less woke.

                                                                                1. 9

                                                                                  “Cancel culture” always existed, in the sense that there were entities with the power to arbitrarily take away your reputation, your livelihood, even your basic rights. Historically those entities have been major institutions such as governments and large corporations, and they have done so as a reaction against increasing liberalism.

                                                                                  Unsurprisingly, most of the people who now loathe and decry and bemoan “cancel culture” come down on the conservative/reactionary side and are primarily reacting to the democratization (or threat thereof) of the ability to inflict consequences based on someone’s speech, actions, associations, etc. which has been brought about by technology. When I was young, you needed a major media organization (or two or three) behind you to really “cancel” someone effectively. Now you just need a Twitter account and for what you say to catch on with enough other people. To people who were used to being the only ones wielding this power, it likely feels terrifying and so they want to treat it as a new thing. But it is simply the thing they always did, now made available to many others via technology’s ability to amplify voices, improve coordination, etc.

                                                                                  As to your last point, it’s worth noting that while the traditional predictor of someone’s politics (on a generic liberal <-> conservative spectrum) has been their age, it appears that is now changing and the most reliable predictors are becoming things like education level (higher education -> overwhelming more liberal tendency) and race/ethnicity (“white”/European-descended -> overwhelming more conservative tendency). So you might want to recalibrate the confidence of your prediction, especially based on a claim that measures within a young and still-developing generational cohort many of whom have not yet attended university.

                                                                                  1. 4

                                                                                    The preference of one or more organizations to avoid associating with people who publicly support someone with a behavioral track record like Stallman’s is not bigoted.

                                                                                    To describe it as such feels dishonest, and ignores the fact that people have legitimate concerns over how likely it is for someone who explicitly supports Stallman’s viewpoints to work in the kinds of inclusive and diverse environments that modern companies and communities seek to cultivate.


                                                                                    As for your prediction, I don’t think it’s very likely that the future will be less “woke”; the tweet you reference appears to be from a group that’s quite politically conservative if you go by the recent content on their timeline, so there’s quite a bit of potential for bias there.

                                                                                    In my experience, the tech communities that seem to be growing the most rapidly seem to focus heavily on the mind of inclusivity that I associate with “woke culture” (e.g, JavaScript and Rust).

                                                                                    By comparison, communities that try to stay “apolitical” (in their own words, not mine) seem to attract more abrasive and disruptive contributors who do nothing to help their relevance.

                                                                                    1. 10

                                                                                      Painting over 6000 people as being automatically opposed in some form to inclusivity, just because they stand against the witch hunt of RMS, and then seeking to “cancel” them is the very definition of bigotry (”intolerance toward those who hold different opinions from oneself”). It is also disingenuous to suggest that any organizations doing the cancellation is doing it only as a “preference”, as if there is no political / mob pressure behind the scenes.

                                                                                      As for your allusion to a group being (according to you) politically conservative, that only seems to be a discrediting tactic used so as to avoid having to address the central point (the statistics quoted in the tweet).

                                                                                      1. 9

                                                                                        It is not a witch hunt. He’s not a witch. He’s a guy who has demonstrably harmed free software in many ways. He was a terrible boss at the FSF (for example, refused to give raises because his logic is that wages would then increase without bound, bankrupting the FSF), he has creeped out many women, he has yelled and lost his temper at the very people who are trying to support his cause, he has defended zoophilia, pedophilia, and necrophilia, his main activism is ineffective language nitpicking and advocating technological abnegation.

                                                                                        Not wanting him in charge is not the same as wanting him burned at the stake.

                                                                                        And please don’t make me come up with links for all of these things. It’s really tiring to have to be an archivist for all of these things. Look them up yourself and if you can’t find them, then I’ll try to help.

                                                                                2. 2

                                                                                  I thought about what happens if I would sign the open letter a bit and since a few days I get spam about GNU and Linux related topics which are oddly or very close related to RMS. One mail even had the fake sender address of Adolf H. (Yes, the one you think)

                                                                                  1. 5

                                                                                    Daniel Pocock has been spamming people on both lists lately. The guy is a figure.

                                                                                    1. 3

                                                                                      FWIW I have been receiving the same messages.

                                                                                      1. 2

                                                                                        Oh? Are people mass-emailing the counterletter signers with angry notes? What have you gotten?

                                                                                        I seem to be flying under the radar this time, but I attracted a lot of anger in 2019.

                                                                                        1. 1

                                                                                          The RMS open letter, not the support one AFAIK.

                                                                                3. 4

                                                                                  It took me a good night’s sleep to realize that you’re still evading my question. So I’ll rephrase it one more: Why should it matter? Why do the voices of software users who see Stallman as someone who defends their Freedoms matter less than those of (some) developers.

                                                                                  1. 13

                                                                                    Oh, that’s what you were asking:

                                                                                    They matter less because they haven’t actually directly dealt with him. They haven’t worked on software he has tried to have a voice in, they haven’t seen him at conferences, they haven’t had him directly yell at them.

                                                                                    They don’t know him. So their opinions of him are less well-founded.

                                                                            2. 7

                                                                              More names here:

                                                                              https://www.debian.org/vote/2021/vote_002

                                                                              I count 20 people seconding one of “Support Stallman’s reinstatement, as in rms-support-letter.github.io” and “Denounce the witch-hunt against RMS and the FSF” proposals,

                                                                              1. Adrian Bunk [bunk@debian.org] [mail]
                                                                              2. Norbert Preining [preining@debian.org] [mail]
                                                                              3. Jonas Smedegaard [js@debian.org] [mail]
                                                                              4. Ying-Chun Liu [paulliu@debian.org] [mail]
                                                                              5. Barak A. Pearlmutter [bap@debian.org] [mail]
                                                                              6. Adam Borowski [kilobyte@debian.org] [mail]
                                                                              7. Micha Lenk [micha@debian.org] [mail]
                                                                              8. Michael Biebl [biebl@debian.org] [mail]
                                                                              9. Bart Martens [bartm@debian.org] [mail] [confirm]
                                                                              10. Jonas Smedegaard [js@debian.org] [mail] [confirm] [confirm] [confirm]
                                                                              11. Pierre-Elliott Bécue [peb@debian.org] [mail]
                                                                              12. Daniel Lenharo [lenharo@debian.org] [mail]
                                                                              13. Milan Kupcevic [milan@debian.org] [mail] [confirm]
                                                                              14. Michael Biebl [biebl@debian.org] [mail] [confirm]
                                                                              15. Axel Beckert [abe@debian.org] [mail]
                                                                              16. Gilles Filippini [pini@debian.org] [mail] [confirm]
                                                                              17. Filippo Rusconi [lopippo@debian.org] [mail]
                                                                              18. Shengjing Zhu [zhsj@debian.org] [mail]
                                                                              19. Matteo F. Vescovi [mfv@debian.org] [mail] [confirm]
                                                                              20. Mathias Behrle [mbehrle@debian.org] [mail]
                                                                              1. 12

                                                                                These aren’t votes yet. These are seconds, for various of the proposals, both for and against and various shades in between. This is how Debian does resolutions. The votes will be finalised by Saturday.

                                                                                1. 8

                                                                                  both for and against and various shades in between.

                                                                                  The 20 Debian folks I included however were all for (not against) supporting Stallman. I only included it (and this is only from Debian) because you wrote “the counterletter people are [….] not, for the most part, working on GNU, Debian, openSUSE, gcc,”.

                                                                                  1. 11

                                                                                    That’s not entirely how that works; they’ve seconded the resolutions to appear on the ballot, not voted for them specifically. Seconding it just means they think it should appear as an option, not that they agree with it.

                                                                      2. 8

                                                                        It seems the letter of support has currently twice as many signatures as the one criticising RMS, which is supprising.

                                                                        RMS has a very religious almost cult following. So no surprise there. Also the RMS open letter GitHub repo stopped accepting signatures on April 1st. The support one still accepts signatures to this date.

                                                                        I did a very quick look at the signers of the RMS support letter, looked at a very small amount of accounts closer and there where a couple of things that stood out and seemed fishy:

                                                                        • lots of Russian sounding names
                                                                        • some of them where newly created (for example 31. March), had their first PR against the repository or had very little activity the last year

                                                                        This could be coincidence or people created their account because of this letter but it could also mean that people created new account or used other means to inflate the numbers.

                                                                        1. 21

                                                                          lots of Russian sounding names

                                                                          As someone of Slavic descent, I would be very interested in what you mean to imply by this point.

                                                                          1. 16

                                                                            Russia has a well-documented state-sponsored homophobia. The recent Russian bill to ban gay marriage, even foreign-made gay marriage, had over 70% support in the polls. These attitudes trickle down and they’re popular with the general Russophone population, not just with the governments. A widespread belief in Slavic countries is that gay acceptance is some Western-induced degeneracy that didn’t really exist in Soviet times, along with some kind of desire to go back to the good ol’ days when LGBT people didn’t “exist”.

                                                                            Thus, a letter that is perceived to defend someone (RMS) who has been attacked by the LGBT community will be popular in Russia and surrounding countries. The discourse in 4chan framed the counterletter as being explicitly drafted to give trans people a kick in the head. They consistently used transphobic slurs to refer to me and other signatories of the original letter.

                                                                            1. 15

                                                                              This is such a wild take. Heck, you could’ve said something like “they’re Russian bots” and that would be somewhat acceptable. You didn’t stop to consider that they could’ve had other motivations (so many better ones!) for having signed it? This is a very bad generalization of the Russian populace, akin to calling all Americans gun-touting redneck hillbillies.

                                                                              The real reason for most of the Russian signatures was the letter being shared on some Russian link-aggregator site(s).

                                                                              1. 8

                                                                                No, they’re not bots, they’re real. And talking to them in the github issues of the counterletter, they are very angry about women and minorities being promoted. This seems to be a strong implicit reason for their alignment with the defense of Stallman. They want to defend their freedom of speech to be awful to women and minorities because being nice is censorship.

                                                                                Of course I generalised, because we have voting numbers. At least 70% of the Russian population is homophobic.

                                                                                1. 5

                                                                                  At least 70% of the Russian population is homophobic.

                                                                                  I’d really like to see what are your sources for this claim.

                                                                                  1. 15

                                                                                    I gave you the source: the voting numbers of the Russian bill passed yesterday to ban gay marriage. It had widespread support. These are not deeply-hidden facts that are difficult to find.

                                                                                    But here, there’s plenty more sources:

                                                                                    https://en.wikipedia.org/wiki/LGBT_rights_in_Russia#Public_opinion_2

                                                                                    If anything, I was giving Russians the benefit of the doubt with 70% It seems closer to 80%.

                                                                              2. 6

                                                                                Flagged as troll for being racist against Russians.

                                                                                1. 10

                                                                                  Russian homophobia is well-documented and is a very harmful problem that is killing people in Russia. Recognising problems in Russian society is uncomfortable, but I don’t think it’s racist.

                                                                                  1. 6

                                                                                    Here’s how I understand your reasoning:

                                                                                    • Russian government is homophobic and polls show that many russian citizens also are (that is true)
                                                                                    • Many people who supported the counter-letter are from Russia (also true)
                                                                                    • Therefore they support RMS because they are homophobic.

                                                                                    You can tell me to go find it myself. But, it’s you making claims. When I’m making a claim, I’m ready to bear the burden of proof, or I say that it’s just my opinion that may be too far-fetched or entirely untrue. You present your statements as facts but are unwilling to present any proofs, and I don’t think it makes you look more trustworthy, even if your statements are true.

                                                                                    1. 5

                                                                                      The last claim comes as an inference and from statements I have seen in 4chan and Habr, in English and Russian. 4chan quite openly frames support for the counterletter as a homophobic and transphobic cause. It’s more subtle in the Habr comments, but it does happen there too.

                                                                                      It’s more difficult to find it in Habr because my Russian is rudimentary but if you’d like, I can do that too, in case your own Russian isn’t good enough.

                                                                              3. 2

                                                                                Just something I have noticed. I don’t know if FSF normally reaches those countries and if it is suspicious or not.

                                                                              4. 4

                                                                                lots of Russian sounding names

                                                                                From what I heard, the support letter was shared around Russian HN-likes, which explains that aspect.

                                                                                1. 2

                                                                                  Do you know if those sites tried to push people to sign the letter?

                                                                                  1. 9

                                                                                    Yes, it was posted to Habr:

                                                                                    https://en.wikipedia.org/wiki/Habr

                                                                                    I can’t find the original post, but they coordinated attacks on the original letter from Habr, for example:

                                                                                    https://habr.com/en/post/549276/

                                                                                    1. 9

                                                                                      Are you implying that anti-RMS people “sign open letters”, while pro-RMS people “coordinate attacks” when they do exactly the same thing? ;)

                                                                                      1. 5

                                                                                        These are the same sort of people who are trying to directly harm Molly de Blanc, getting her arrested or swatted. I won’t link to that attack, but there is a lot of anger and implied violence against the original letter. This thing posted to Habr is the same sort of angry violence, trying to get legal authorities involved.

                                                                                        It’s not exactly the same thing, it’s not both sides. I am not calling for Stallman to be arrested or harmed. I just don’t want him leading the FSF or GNU.

                                                                                        1. 7

                                                                                          You are accusing people of coordinating an attack and giving a link to something that clearly isn’t that (not a thread where an attack coordination took place). Then you say you won’t give a real link. Why should I believe you?

                                                                                          The post you linked to doesn’t call for violence towards anyone, either. Also, “calls for violence” and “calls for authorities to get involved” are kinda mutually exclusive things.

                                                                                          1. 7

                                                                                            It’s not hard to find the Molly de Blanc attack page. Look for it yourself.

                                                                                            Also, “calls for violence” and “calls for authorities to get involved” are kinda mutually exclusive things.

                                                                                            Not in the US. Swatting has gotten people killed. Swatters hope people will get killed. This is an unfortunate by-product of militarisation of the US police force: calling cops on someone can be a death sentence.

                                                                                            1. 4

                                                                                              All respect due, that post isn’t calling for swatting. It’s calling for the removal of the issue from GitHub!

                                                                                              1. 3

                                                                                                I’m talking about the attack site on Molly de Blanc that I don’t want to link.

                                                                                                But incorrectly citing laws on Github is a similar sort of aggression, driven by similar rage. You’re right it won’t lead to a swatting but I have seen the same group endorse both kinds of actions.

                                                                                        2. 3

                                                                                          I mean, they are literally trying to coordinate to have the original letter removed. That’s different to signing an open letter, isn’t it?

                                                                                          1. 6

                                                                                            It’s a copy of the deleted issue that someone posted there after the fact, and it received a whole three comments (all general remarks about the situation, no specific action proposals). Since that post clearly is not about coordinating an attack, I assumed JordiGH is referring to something else—most likely the rms-support-letter itself.

                                                                                        3. 1

                                                                                          The issue reads like some spam I get daily 😀

                                                                                    2. 4

                                                                                      Who cares where they’re from? What matters is whether they’re just random names, or if they’re actively involved in the business of the FSF (and, therefore, are more likely to know what they’re talking about).

                                                                                    3. 2

                                                                                      It seems the letter of support has currently twice as many signatures as the one criticising RMS, which is supprising.

                                                                                      I don’t know. It seems to me that pretty much nobody knows who RMS is, and a significant portion of those who do don’t care about him. So it makes sense that the ones who bother to do something about it are the ones who support him.

                                                                                    1. 39

                                                                                      My take on this is that RMS recognizes that his behaviour is troubling, but doesn’t see fit to apologize for it, unless he’s doing so in private (which I assume we’d have heard about if that were the case). An acknowledgement without an apology or amends isn’t even worth the time it took to read it. I’m no less disappointed in him than I was when I first learned of his harassing behaviour towards women in his orbit, and I’m no less disappointed in the FSF today than I was when they reinstated him (and yes, I have read the FSF statement as well as Stallman’s).

                                                                                      As an industry, we need to learn that nobody is so great at their job that they can be given a pass for harassing.

                                                                                      1. 12

                                                                                        isn’t even worth the time it took to read it.

                                                                                        Which you clearly didn’t take….

                                                                                        And I quote verbatim…

                                                                                        I apologize to each of them.

                                                                                        1. 6

                                                                                          That sentence applies to the people to whom he’s been intemperate, not to the many others he’s offended or hurt or creeped out over the years. Try harder.

                                                                                          1. 5

                                                                                            Ah.

                                                                                            You are taking the apology as only applying to offenses mentioned in that paragraph, I’m taking as applying to that paragraph and the preceding paragraph, indeed, the whole statement.

                                                                                            I suppose by the letter of english grammar you are correct.

                                                                                            My interpretation from context is still the broader apology.

                                                                                            This is why written communication is hard… it goes out and feedback as to what actually was communicated is delayed or lost.

                                                                                            I have read a fair bit of RMS “in his own words” and even had one or two email exchanges over the years. I’m incline to interpret his apology in the broader sense.

                                                                                            1. 1

                                                                                              It can be read from different viewpoints. What he wrote sounds sincere to me, but I don’t think it’ll come across as an apology when read by people he offended. In the eyes of someone who’s been offended, the piece may sound as if he started with “I’m sorry that I have offended you through no fault of mine, and even though the fault was all yours, I’ll try harder not to repeat that in the future” and then bickered with reviewers to find compromise wording.

                                                                                        2. 21

                                                                                          I for one am not super interested in the spread of struggle sessions.

                                                                                          If you’re troubled by RMS…go fork FSF! Go fight the good fight! Give a meaningful and useful alternative to an organization that frankly has been kinda off in the weeds for a while!

                                                                                          If people spent half the ink on, you know, user freedom as they did on libeling Stallman we as a community could be a lot farther ahead.

                                                                                          1. 31

                                                                                            I for one am not super interested in the spread of struggle sessions.

                                                                                            Right. Computer programmers voicing the opinion on the internet that maybe we can do better than RMS is literally the same thing as Maoist revolutionaries physically torturing political rivals.

                                                                                            If you’re troubled by RMS…go fork FSF!

                                                                                            You don’t simply “fork” a social structure and get a carbon copy of it for free like you do with version control. Forming a competitive alternative to the FSF would not only be a massive undertaking, but it’s also more plainly not the only way of engaging in activism. A much more straightforward approach is to campaign for a change in leadership.

                                                                                            If people spent half the ink on, you know, user freedom as they did on libeling Stallman we as a community could be a lot farther ahead.

                                                                                            And what makes you think that “they” don’t spend even more resources on digital rights efforts than “they” spend posting against RMS? The landscape of digital rights activism may not be as broad as we’d like but it’s certainly bigger than just the FSF and GNU.

                                                                                            1. 17

                                                                                              literally the same thing as Maoist revolutionaries physically torturing political rivals.

                                                                                              Verbal and physical abuse–and as many seem found of asserting these days, speech is violence so I don’t really think the difference is relevant. If you don’t think there are people being harassed because they aren’t apologizing hard enough, you must have a much better version of social media than I do.

                                                                                              A much more straightforward approach is to campaign for a change in leadership.

                                                                                              Stealing and imperialism is a lot more straightforward than building a new, distinct thing. My approach would yield at least two different groups moving in hopefully good directions, whereas the “let’s punt RMS because reasons” approach would not. It’s also entirely possible that the success of the FSF (such as it is) is actually linked to either RMS’ quirks or the sorts of people who deal with those quirks; we don’t know this for sure, but a fork seems like a safer hedge.

                                                                                              And what makes you think that “they” don’t spend even more resources on digital rights efforts than “they” spend posting against RMS?

                                                                                              Which do you think gets more brownie points right now–defending free software, or signalling that “hey i’m totally in the same tribe as you all (please don’t get me fired)”? Depending who you believe online, there are people who want to step away from struggles over copyleft and licensing entirely to focus on more social aspects that may or may not actually have any strong basis in legally protecting user freedom–and that crowd requires RMS’ head before they could go into digital rights stuff (which again, they don’t care about).

                                                                                              That’s my reasoning, anyways.

                                                                                            2. 15

                                                                                              That is totally unrelated. No one is forcing RMS into admitting something he didn’t do!

                                                                                              There are already so many alternatives to FSF with many being more transparent and welcoming to all kinds of people.

                                                                                              1. 17

                                                                                                And just imagine how much further we could be ahead if we cultivated all of the developers, lawyers, writers, and thinkers who were driven away by RMS. And before you say “we can’t know that they exist” you might want to consider that, yes, in fact, we can; there is ample evidence of people who’ve left the FSF or the Free Software movement over him. And those are just the ones who’ve talked about it, leaving aside all the ones who looked at the landscaped and, apparently wisely, noped the fuck out.

                                                                                                1. 9

                                                                                                  If they are sufficiently troubled by RMS for whatever reason–over behavior or slights real or imagined–I’m glad they’ve found a better place to spend their efforts. It’ll be good to have other people trying to advance free software in other ways.

                                                                                                  1. 11

                                                                                                    You assume that people put off by rms keep working on free software (or nearby). I personally know someone who didn’t. A talented person and a great gain for the organisation he switched to (which does good work for the world but has nothing to do with free software).

                                                                                                    Of course he could be an exception. Or not; I see that the use of the GPL continues to decline so maybe rms puts off more people than he persuades.

                                                                                                    1. 6

                                                                                                      Why assume? rms-open-letter signers include ten Debian Project Leaders. Say whatever about Debian, but Debian is a dedicated free software organization as any, perhaps more than FSF.

                                                                                                2. 5

                                                                                                  That’s not how it works. If a situation calls for anodyne statements in public and perhaps something else behind the scenes, and one spokesperson acts wisely while rms speaks in 72pt boldface, then rms’ choice of how to react is the effective average of the two.

                                                                                                  1. 5

                                                                                                    You can’t fork FSF. That’s the exact problem.

                                                                                                    In my opinion, Software Freedom Conservancy is a much better software freedom organization than FSF. To me, FSF has no value at all as a software freedom organization except for one: it holds copyright of GCC. Forked FSF won’t hold copyright of GCC, and other aspects of FSF I don’t care about at all. So FSF can’t be forked.

                                                                                                    1. 2

                                                                                                      So … fork GCC too? I don’t see the problem here, unless you want to relicense.

                                                                                                1. 2

                                                                                                  I once used Hammerspoon but later realized that I can do anything in Hammerspoon with Keyboard Maestro so I stopped using it.

                                                                                                  1. 1

                                                                                                    How does your recommendation handle window management? (I looked at a few pages, but didn’t find much.)

                                                                                                    1. 1

                                                                                                      I use BetterTouchTool for window management. But KM has actions to move windows too.

                                                                                                    2. 0

                                                                                                      Do you have any incentives or connections that might influence your recommendation?

                                                                                                      1. 1

                                                                                                        Not sure what you mean. I love KM because its a tool where I can easily make custom macros with as many actions as I want and bind it to a key directly with Karabiner.

                                                                                                        1. -1

                                                                                                          I’m asking if you have any financial incentives to recommend Keyboard Maestro.

                                                                                                          1. 2

                                                                                                            Why are accusing him of shilling?

                                                                                                            1. 0

                                                                                                              I’m not accusing, just asking.

                                                                                                            2. 1

                                                                                                              What a profoundly odd line of questioning.

                                                                                                              1. 2

                                                                                                                In some other contexts, some would call this line of questioning “in bad faith”

                                                                                                      1. 3

                                                                                                        This looks really good. I like my current setup with git and stow at present, but this appears to solve a couple of pain points. They’re not big pain points, and haven’t bothered me enough to do more than make notes about them. But now that I know there’s a thing that handles differences between machines a little more easily, and lets me keep the dots that matter even when I need to spend a couple weeks on Windows, I’m going to need to give it a try next time I feel the urge to tinker with my system.

                                                                                                        1. 3

                                                                                                          git+stow was what I used before finding chezmoi. I highly recommend considering the migration. Because of differences between, say, work configurations and home, I had very complex stow mechanics where I had to layer in chunks of config, and as such had a series of scripts to run stow for me… chezmoi unified those and made them explicit in templates. Totally worth it.

                                                                                                          1. 1

                                                                                                            Yes, I’m in this same camp where my approach is workable at the moment but chezmoi has potential to be a worthwhile improvement. Refactoring my dotfiles is a procrastination/recovery technique I use so next major life change it’ll probably happen.

                                                                                                        1. 2
                                                                                                          • Some small feature and bug fix work on the Chicon 8 convention registration system
                                                                                                          • Waiting to land my PR in starship so that I can upgrade my copy to use the released version instead of hand-built
                                                                                                          • Helping my partner set up her laptop
                                                                                                          • Some work stuff, too. :D
                                                                                                          1. 1

                                                                                                            For my money, the Microsoft Natural Pro keyboards (late 90s / early 2000s) are unbeatable. I really wish somebody would pick up exactly that design and start manufacturing them again.

                                                                                                            1. 2

                                                                                                              Almost! I want that design, but with the option to swap in switches; I had to stop using mine because the squishy/springy key travel was actively hurting my hand.

                                                                                                              1. 1

                                                                                                                Yeah, I bought two of these early on in my career and I always liked the initial feel, and then after a couple years the rubber would just be degraded to the point where it lost the snappy feel.

                                                                                                            1. 16

                                                                                                              I said it back in the PyCa/Rust thread: any consumer-facing statement of compatibility is at best a good-intentions claim of intent, not a reliable statement of effect from the consuming side. No matter what your dependencies claim, you need to test it because you may depend on observable but unspecified behaviour. The remedy isn’t to demand some mythically more-perfect adherence to a semantic versioning model, but instead to upgrade and test that upgrade frequently. Embrace change, breakage, and rapid fixing in your own code so that you can be resilient against the evolution of your dependencies.

                                                                                                              1. 5

                                                                                                                …upgrade and test that upgrade frequently.

                                                                                                                In my mind, this is it, 100%. I worked at a company that used automated tooling to enforce SemVer for internal dependencies. But even so, product teams that waited a long time between upgrades had a really bad time of it. Aside from the obvious problem that small changes can sneak past SemVer (for example, you might have been relying on a side effect that goes away), switching from 1.0 to 3.2 is always going to be painful because so much has changed! SemVer is a great start, but that’s it, a start. Good development practices are still necessary.

                                                                                                              1. 2

                                                                                                                I’ve used or seen most of these in my time interviewing, but the “Explain a topic at multiple levels” one is a fantastic pivot from the traditional “Explain a topic in ridiculous depth” one I’ve seen and used before. I plan to steal it for myself.

                                                                                                                1. 2

                                                                                                                  Tech:

                                                                                                                  • I’ll be fighting with Grafana trying to solve this damn issue (to wit, kv pairs in dashboard variables are teh suck).
                                                                                                                  • I will probably be poking at some outstanding issues in the 2022 Chicago Worldcon registration system.

                                                                                                                  Non-Tech:

                                                                                                                  • I hope I can find the mindspace to read a book
                                                                                                                  • I might pick up either the new Spider-Man game or dive back into Control
                                                                                                                  • I’ve got a couple of humidity sensors I want to install
                                                                                                                  • Division head meeting for Chicon 8
                                                                                                                  • Doomscrolling on Twitter
                                                                                                                  1. 20

                                                                                                                    Python package maintainers rarely use semantic versioning and often break backwards compatibility in minor releases. One of several reasons that dependency management is a nightmare in Python world.

                                                                                                                    1. 19

                                                                                                                      I generally consider semantic versioning to be a well-intentioned falsehood. I don’t think that package vendors can have effective insight into which of their changes break compatibility when they can’t have a full bottom-up consumer graph for everyone who uses it.

                                                                                                                      I don’t think that Python gets this any worse than any other language.

                                                                                                                      1. 20

                                                                                                                        I’ve heard this opinion expressed before… I find it to be either dangerously naive or outright dishonest. There’s a world of difference between a) the rare bug fix release or nominally-orthogonal-feature-add release that unintentionally breaks downstream code and b) intentionally changing and deprecating API’s in “minor” releases.

                                                                                                                        In my view, adopting SemVer is a statement of values and intention. It communicates that you value backwards compatibility and intend to maintain it as much as is reasonably possible, and that you will only knowingly break backwards compatibility on major release increments.

                                                                                                                        1. 18

                                                                                                                          In my view, adopting SemVer is a statement of values and intention. It communicates that you value backwards compatibility and intend to maintain it as much as is reasonably possible, and that you will only knowingly break backwards compatibility on major release increments.

                                                                                                                          A “statement of values and intention” carries no binding commitment. And the fact that you have to hedge with “as much as is reasonably possible” and “only knowingly break” kind of gives away what the real problem is: every change potentially alters the observable behavior of the software in a way that will break someone’s reliance on the previous behavior, and therefore the only way to truly follow SemVer is to increment major on every commit. Which is the same as declaring the version number to be meaningless, since if every change is a compatibility break, there’s no useful information to be gleaned from seeing the version number increment.

                                                                                                                          And that’s without getting into some of my own direct experience. For example, I’ve been on the Django security team for many years, and from time to time someone has found a security issue in Django that cannot be fixed in a backwards-compatible way. Thankfully fewer of those in recent years since many of them related to weird old functionality dating to Django’s days as a newspaper CMS, but they do happen. Anyway, SemVer’s answer to this is “then either don’t fix it, or do but no matter how you fix it you’ve broken SemVer and people on the internet will scream at you and tell you that you ought to be following SemVer”. Not being a fan of no-win situations, I am content that Django has never and likely never will commit to following SemVer.

                                                                                                                          1. 31

                                                                                                                            A “statement of values and intention” carries no binding commitment.

                                                                                                                            A label on a jar carries no binding commitment to the contents of the jar. I still appreciate that my salt and sugar are labelled differently.

                                                                                                                            1. 2

                                                                                                                              Selling the jar with that label on it in many countries is a binding commitment and puts you under the coverage of food safety laws, though.

                                                                                                                            2. 6

                                                                                                                              Anyway, SemVer’s answer to this is “then either don’t fix it, or do but no matter how you fix it you’ve broken SemVer and people on the internet will scream at you and tell you that you ought to be following SemVer”.

                                                                                                                              What do you mean? SemVer’s answer to “this bug can’t be fixed in a backwards-compatible way” is to increment the major version to indicate a breaking change. You probably also want to get the message across to your users by pushing a new release of the old major version which prints some noisy “this version of blah is deprecated and has security issues” messages to the logs.

                                                                                                                              It’s not perfect, I’m not saying SemVer is a silver bullet. I’m especially worried about the effects of basing automated tooling on the assumption that no package would ever push a minor or patch release with a breaking change; it seems to cause ecosystems like the NPM to be highly fragile. But when taken as a statement of intent rather than a guarantee, I think SemVer has value, and I don’t understand why you think your security issue anecdote requires breaking SemVer.

                                                                                                                              1. 7

                                                                                                                                What do you mean? SemVer’s answer to “this bug can’t be fixed in a backwards-compatible way” is to increment the major version to indicate a breaking change.

                                                                                                                                So, let’s consider Django, because I know that well (as mentioned above). Typically Django does a feature release (minor version bump) every 8 months or so, and every third one bumps the major version and completes a deprecation cycle. So right now Django 3.1 is the latest release; next will be 3.2 (every X.2 is an LTS), then 4.0.

                                                                                                                                And the support matrix consists of the most recent feature release (full bugfix and security support), the one before that (security support only), and usually one LTS (but there’s a period at the end of each where two of them overlap). The policy is that if you run on a given LTS with no deprecation warnings issued from your code, you’re good to upgrade to the next (which will be a major version bump; for example, if you’re on 2.2 LTS right now, your next LTS will be 3.2).

                                                                                                                                But… what happens when a bug is found in an LTS that can’t be fixed in a backwards-compatible way? Especially a security issue? “Support for that LTS is cut off effective immediately, everybody upgrade across a major version right now” is a non-starter, but is what you propose as the correct answer. The only option is to break SemVer and do the backwards-incompatible change as a bugfix release of the LTS. Which then leads to “why don’t you follow SemVer” complaints. Well, because following SemVer would actually be worse for users than this option is.

                                                                                                                                1. 3

                                                                                                                                  But… what happens when a bug is found in an LTS that can’t be fixed in a backwards-compatible way?

                                                                                                                                  Why do people run an LTS version, if not for being able to avoid worrying about it as a dependency? If you’re making incompatible changes: forget about semver, you’re breaking the LTS contract, and you may as well tell drop the LTS tag and people to run the latest.

                                                                                                                                  1. 1

                                                                                                                                    you may as well tell drop the LTS tag and people to run the latest

                                                                                                                                    I can think of only a couple instances in the history of Django where it happened that a security issue couldn’t be fixed in a completely backwards-compatible way. Minimizing the breakage for people – by shipping the fix into supported releases – was the best available option. It’s also completely incompatible with SemVer, and is a great example of why SemVer is at best a “nice in theory, fails in practice” idea.

                                                                                                                                    1. 3

                                                                                                                                      Why not just tell them to upgrade? After all, your argument is essentially that stable APIs are impossible, so why bother with LTS? Every argument against semver also applies against LTS releases.

                                                                                                                                      1. 3

                                                                                                                                        After all, your argument is essentially that stable APIs are impossible

                                                                                                                                        My argument is that absolute perfect 100% binding commitment to never causing a change to observable behavior ever under any circumstance, unless also incrementing the major version at the same time and immediately dropping support for all users of previous versions, is not practicable in the real world, but is what SemVer requires. Not committing to SemVer gives flexibility to do things like long-term support releases, and generally people have been quite happy with them and also accepting of the single-digit number of times something had to change to fix a security issue.

                                                                                                                                  2. 2

                                                                                                                                    “Support for that LTS is cut off effective immediately, everybody upgrade across a major version right now” is a non-starter

                                                                                                                                    If it’s a non-starter then nobody should be getting the critical security patch. You’re upgrading from 2.2 to 3.0 and calling it 2.2.1 instead. That doesn’t change the fact that a breaking change happened and you didn’t bump the major version number.

                                                                                                                                    You can’t issue promises like “2.2.X will have long term support” because that’s akin to knowing the future. Use a codename or something.

                                                                                                                                    1. 7

                                                                                                                                      It’s pretty clear you’re committed to perfect technical adherence to a rule, without really giving consideration to why the rule exists. Especially if you’re at the point of “don’t commit to supporting things, because supporting things leads to breaking SemVer”.

                                                                                                                                      1. 4

                                                                                                                                        They should probably use something like SemVer but with four parts, e.g. Feature.Major.Minor.Patch

                                                                                                                                        • Feature version changes -> We’ve made significant changes / a new release (considered breaking)
                                                                                                                                        • Major version change -> We’ve made breaking changes
                                                                                                                                        • Minor version change -> Non breaking new features
                                                                                                                                        • Patch version change -> Other non-breaking changes

                                                                                                                                        That way 2.*.*.* could be an LTS release, which would only get bug fixes, but if there was an unavoidable breaking change to fix a bug, you’d signal this in the version by e.g. going from 2.0.5.12 to 2.1.0.0. Users will have to deal with the breaking changes required to fix the bug, but they don’t have to deal with all the other major changes which have gone into the next ‘Feature’ release, 3.*.*.*. The promise that 2.*.*.*, as an LTS, will get bug fixes is honored. The promise that the major version must change on a breaking change is also honored.

                                                                                                                                        SemVer doesn’t work if you try to imbue the numbers with additional meanings that can contradict the SemVer meanings.

                                                                                                                                        1. 3

                                                                                                                                          This scheme is very similar to Haskell’s Package Versioning Policy (PVP).

                                                                                                                                        2. 1

                                                                                                                                          I’m saying supporting things and adhering to SemVer should be orthogonal.

                                                                                                                                  3. 5

                                                                                                                                    every change potentially alters the observable behavior of the software

                                                                                                                                    This is trivially false. Adding a new helper function to a module, for example, will never break backwards compatibility.

                                                                                                                                    In contrast, changing a function’s input or output type is always a breaking change.

                                                                                                                                    By failing to even attempt to distinguish between non-breaking and breaking changes, you’re offloading work onto the package’s users.

                                                                                                                                    Optimize for what should be the common case: non-breaking changes.

                                                                                                                                    Edit: to expand on this, examples abound in the Python ecosystem of unnecessary and intentional breaking changes in “minor” releases. Take a look at the numpy release notes for plenty of examples.

                                                                                                                                    1. 7

                                                                                                                                      Python’s dynamic nature makes “adding a helper function” a potentially breaking change. What if someone was querying, say, all definitions of a module and relying on the length somehow? I know this is a bit of a stretch, but it is possible that such a change would break code. I still value semver though.

                                                                                                                                      1. 3

                                                                                                                                        The number of definitions in a module is not a public API. SemVer only applies to public APIs.

                                                                                                                                        1. 4

                                                                                                                                          If you can access it at run-time, then someone will depend on it, and it’s a bit late to call it “not public”. Blame Python for exposing stuff like the call stack to introspection.

                                                                                                                                          1. 2

                                                                                                                                            Eh no? SemVer is very clear about this. Public API is whatever software declares it to be. Undeclared things can’t be public API, by definition.

                                                                                                                                            1. 7

                                                                                                                                              Python has no concept of public vs private. It’s all there all the time. As they say in python land, “We’re all consenting adults here”.

                                                                                                                                              I’m sure, by the way, when Hettinger coined that phrase he didn’t purposely leave out those under the age of 18. Language is hard. :P

                                                                                                                                      2. 1

                                                                                                                                        Adding a new helper function to a module, for example, will never break backwards compatibility.

                                                                                                                                        Does this comic describe a violation of SemVer?

                                                                                                                                        You seriously never know what kinds of things people might be relying on, and a mere definition of compatibility in terms of input and output types is woefully insufficient to capture the things people will expect in terms of backwards compatibility.

                                                                                                                                        1. 6

                                                                                                                                          No, it does not descripbe a violation of SemVer, because spacebar heating is not a public API. SemVer is very clear about this. You are right people will still complain about backward compatibility even if you are keeping 100% correct SemVer.

                                                                                                                                    2. 7

                                                                                                                                      I don’t think I have a naïve view of versioning; putting on my professional hat here, I have a decade of experience dealing with a dependency modeling system that handles the versions of hundreds of thousands of interrelated software artifacts that are versioned more or less independently of each other, across dozens of programming languages and runtimes. So… some experience here.

                                                                                                                                      In all of this time, I’ve seen every single kind of breaking change I could imagine beforehand, and many I could not. They occurred independent of how the vendor of the code thought of it; a vendor of a versioned library might think that their change is minor, or even just a non-impacting patch, but outside of pure README changes, it turns out that they can definitely be wrong. They certainly had good intentions to communicate the nature of the change, but that intention can run hard into reality. In the end, the only way to be sure is to pin your dependencies, all the way down, and to test assiduously. And then upgrade them frequently, intentionally, and on a cadence that you can manage.

                                                                                                                                      1. 1

                                                                                                                                        I don’t think I have a naïve view of versioning; putting on my professional hat here, I have a decade of experience dealing with …

                                                                                                                                        Here here. My experience isn’t exactly like @offby1’s but I can vouch for the rest.

                                                                                                                                      2. 6

                                                                                                                                        I would agree if violations were rare. Every time I’ve tried to solve dependency issues on Python, about 75% of the packages I look into have broken semver on some level. Granted, I probably have a biased sampling technique, but I find it extremely hard to believe that it’s a rare issue.

                                                                                                                                        Backwards compatibility is hard to reason about, and the skill is by no means pervasive. Even having a lot of experience looking for compatibility breaks, I still let things slip, because it can be hard to detect. One of my gripes with semver is that it doesn’t scale. It assumes that tens of thousands of open source devs with no common training program or management structure all understand what a backwards breaking change is, and how to fix it.

                                                                                                                                        Testing for compatibility breaks is rare. I can’t think of any Python frameworks that help here. Nor can I think of any other languages that address this (Erlang might, but I haven’t worked with it first-hand). The most likely projects to test for compatibility between releases are those that manage data on disk or network packets. Even among those, many rely on code & design review to spot issues.

                                                                                                                                        It communicates that you value backwards compatibility and intend to maintain it as much as is reasonably possible, and that you will only knowingly break backwards compatibility on major release increments.

                                                                                                                                        It’s more likely that current package managers force you into semver regardless if you understand how it’s supposed to be used. The “statement of values” angle is appealing, but without much evidence. Semver is merely popular.

                                                                                                                                        1. 7

                                                                                                                                          I guess this depends on a specific ecosystem? Rust projects use a lot of dependencies, all those deps use semver, and, in practice, issues rarely arise. This I think is a combination of:

                                                                                                                                          • the fact that semver is the only option in Rust
                                                                                                                                          • the combination of guideline to not commit Cargo.lock for libraries + cargo picking maximal versions by default. This way, accidental incompatibilities are quickly discovered & packages are yanked.
                                                                                                                                          • the guideline to commit Cargo.lock for binaries and otherwise final artifacts: that way folks who use Rust and who have the most of deps are shielded from incompatible updates.
                                                                                                                                          • the fact that “library” is a first-class language construct (crate) and not merely a package manager convention + associated visibility rules makes it easier to distinguish between public & private API.
                                                                                                                                          • Built-in support for writing test from the outside, as-if you are consumer of the library, which also catches semver-incompatible changes.

                                                                                                                                          This is not to say that semver issues do not happen, just that they are rare enough. I’ve worked with Rust projects with 200-500 different deps, and didn’t pensive semver breakage being a problem.

                                                                                                                                          1. 5

                                                                                                                                            I would add that the Rust type system is expressive enough that many backwards incompatible changes require type signature changes which are much more obvious than violations of some implicit contract.

                                                                                                                                        2. 4

                                                                                                                                          to be either dangerously naive or outright dishonest

                                                                                                                                          This phrase gets bandied around the internet so much I’m surprised its not a meme.

                                                                                                                                          SemVer is … okay, but you make it sound like lives depend on it. There’s a lot of software running mission critical systems without using SemVer and people aren’t dying everyday because of it. I think we can calm down.

                                                                                                                                      3. 3

                                                                                                                                        Thats the problem of the package management being so old. Back then semantic versioning wasnt that common and it never really caught on. In my opinion the PyPA should make a push to make more packages use semantic versioning. I‘m seeing this trend already, but its too slow…

                                                                                                                                      1. 15

                                                                                                                                        It seems RPi foundation officially recommends MS IDE, and hence this was included Raspberry Pi OS. They should keep this to GUI image for kids or anyone who wish to to learn Python and other stuff using VS Code. Most Linux geeks and power users use RPi as a git server or adblocker and so on as a headless server.

                                                                                                                                        (my emphasis)

                                                                                                                                        What an amazing dismissal of the next generation of “Linux geeks and power users”.

                                                                                                                                        1. 10

                                                                                                                                          Especially since educational use is explicitly the aim of the Raspberry Pi project

                                                                                                                                          1. -1

                                                                                                                                            Got to educate them into dependency on Microsoft IDEs. The younger, the better.

                                                                                                                                          2. 3

                                                                                                                                            Totally.

                                                                                                                                            The implication is that if you’re a Linux geek/power user you wouldn’t go near something like VSCode.

                                                                                                                                            It’s just utterly wrong headed. I use and love VSCode. It’s a superlative tool. I install the Vim keybindings so I can continue to leverage my years of muscle training, and still use and love Vim on the server.