Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Programming

Rust Project Reveals New 'Constitution' in Wake of Crisis (thenewstack.io) 81

"The Rust open source project, which handles standards for the language, released a new governance plan Thursday," reports The New Stack, "the cumulation of six months of intense work." Released as a request for comment on GitHub, it will now undergo a comment period. It requires ratification by team leaders before it's accepted.

The Rust project interacts with, but is separate from, the Rust Foundation, which primarily handles the financial assets of Rust. Two years ago, the project had a very public blowup after its entire mod team resigned and publicly posted a scathing account of the core team, which the mod team called "unaccountable to anyone but themselves." It even suggested the core team was not to be trusted, although the team later recanted and apologized for that.

[Rust core team developer] Josh Triplett understandably didn't want to dwell on the kerfuffle that lead to this action. He focused instead on the underlying structural issues that lead to the leadership crisis. "As a result of that, there was widespread agreement within the project that we needed to create a better formal governance structure that removed some of those ambiguities and conflicts, and had mechanisms for dealing with this without ever having a similar crisis," Triplett told The New Stack. "We don't want to ever to have things get to that point again...."

The original Rust project governance structure evolved out of Mozilla, where Rust began and was nurtured for years. Around 2016 or 2017, a request for comment came out that established the Rust project's governance, Triplett said. It created approximately six teams, including the core, language, mod, library and cargo teams. Among the problems with the old model was that the core team became responsible for not just overseeing problems that arose, but solving them as well, Triplett said. That led to burnout and problems, said JT Turner, one of the co-authors on the new model and a member of the Rust core team.... Ultimately, the old governance model was "not a very precise document," Triplett added.

"It was just, 'Hey, here's the rough divisions of power,' and because that document was very rough and informal, it didn't scale to today," he said. "That's one of the things that led to the governance crisis."

This discussion has been archived. No new comments can be posted.

Rust Project Reveals New 'Constitution' in Wake of Crisis

Comments Filter:
  • by Anonymous Coward

    ... but already multiple crises, a CoC, a rabid "community" more concerned with rightthink than with producing code, a financial kerfuffle and a "constitution". What's next, a taking over a country to rule them all and in the darkness bind them?

    Truly, they're a wonderful gift to humanity and programmers everywhere.

    • Musk posts some rubbish, but this is aposite here:

      https://twitter.com/elonmusk/status/1632275726912110593
    • by PPH ( 736903 )

      What's next

      Probably a fork.

      When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation.

    • ... but already multiple crises, a CoC, a rabid "community" more concerned with rightthink than with producing code, a financial kerfuffle and a "constitution". What's next, a taking over a country to rule them all and in the darkness bind them?

      Truly, they're a wonderful gift to humanity and programmers everywhere.

      Having people be excellent to each other is a fine thing, but it appears that Rust the Language is not important, the code of conduct is.

      I wonder how long until they demand that people using Rust have to submit to a background check to insure their acceptable conduct and exclude anyone who doesn't meet the requirements?

      • Having people be excellent to each other is a fine thing,

        That's true, but you can't force people to be nice to each other by trying to "program" them using a CoC. That's before noticing that "excellency" is different from "being nice".

        It's like, oh, trying to improve literature by codifying what great literature looks like, starting with the rules of spelling and grammar and narrative structure and so on, and rigidly enforcing the code. Not that spelling and grammar aren't important, but strict adherence doesn't get you great literature. It's a great way to miss

        • The programming language exists to provide a memory safe, fast, systems programming language, not to push a CoC. The CoC is to enable a kind, helpful environment which welcomes people so that a) the language can benefit from the contributions of as many people as possible and b) because kind, helpful environments are nice.

          • Seems both are comparably successful in reaching those stated goals. Say, by the by, you look like an astute fellow. And do I have the investment offer for astute fellows! Concrete and steel, you really can't go wrong with that. A nice view over water, and a road going over it thrown into the bargain. Just think of the possibilities! Tolls! Sight-seeing! The lot! Whaddaya say, my astute fellow, are you up for some solid investing?

          • by Ol Olsoc ( 1175323 ) on Monday March 06, 2023 @09:14AM (#63346659)

            The programming language exists to provide a memory safe, fast, systems programming language, not to push a CoC. The CoC is to enable a kind, helpful environment which welcomes people so that a) the language can benefit from the contributions of as many people as possible and b) because kind, helpful environments are nice.

            The CoC is a well intentioned but ultimately failed instrument.

            It becomes the old trope of walking on eggshells. Allow me to illustrate with hypothetical Greg and Suzi.

            Group meeting, and Greg notes that some code is a bit clumsy and can be cleaned up.

            Suzi takes offense because she wrote the code, and calls Greg mean and rude, and points out that is specifically prohibited in the Code of Conduct, and he is not being inclusive.

            So you get rid of Greg, and apologize for him offending Suzi.

            The takeaway is that you do not give feedback to anything Suzi does, or you will no longer be a part of the team. Suzi's code might not be good, but it must be accepted without comment. Walking on eggshells.

            Differential situation:

            Group meeting, and Greg notes that some code is clumsy and need's cleaned up.

            Suzi says "Oh, that's something I wrote - can you tell me what's clumsy?"

            So Greg explains, Suzi learns and becomes a better programmer. They might even argue a little bit, as Suzi stands up for some of what she wrote. Maybe Greg even learns a little. Eventually Suzi becomes a better programmer than Greg.

            No walking on eggshells, no subjective CoC violations.

            I've worked in a few groups where you have to walk on those eggshells. Not offending the crybully becomes the number one objective, at least until you find a different group to work with.

            This is not remotely to say that people are allowed to be dicks. It's just trying to set non-ambiguous boundaries. But let's face it, different people have different interpretations of "mean and rude". And when the most sensitive and easily offended becomes the ipso-facto leader, it fails pretty quickly. The crybully lords over people who are trying but failing to not offend, because most interactions are parsed to offend, and not interacting so as not to offend is also offensive to the crybully.

            • I think that this is a strawman. The rust forums are nice and supportive places. Greg in your example can give a critical approval of the code; have a look any any PR against the core rust language and you will see that happening. None of this is against the CoC.

              On the other hand, if Greg tells Suzi that women can't code, or even just is genuinely rude and mean, then that might be against the CoC.

              Your argument is, ultimately, based on the idea that it is not possible to distinguish criticism and rudeness. I

        • Having people be excellent to each other is a fine thing,

          That's true, but you can't force people to be nice to each other by trying to "program" them using a CoC. That's before noticing that "excellency" is different from "being nice".

          Sorry about that, I used a turn of phrase there. To be certain, my use of "be excellent to each other" was a line from the Movie "Bill and Ted's Excellent Adventure". Just a cute phrase from the movie, and a sort of goofy 90's male California cool dude take on "treat people well".

          but it appears that Rust the Language is not important, the code of conduct is.

          That does seem to be the essence, yes.

          In turn CoCs are a vehicle for pushing a political agenda. Meaning anyone letting themselves get bamboozled into adopting a CoC is bamboozled into at least acquiescing that political agenda.

          The crazy thing is that I certainly support not discriminating against people by their sexual preferences as long as it's between consenting adults, or how they "identify". Or the color of their skin or place of origin. Anyone wor

          • Sorry about that, I used a turn of phrase there. To be certain, my use of "be excellent to each other" was a line from the Movie "Bill and Ted's Excellent Adventure". Just a cute phrase from the movie, and a sort of goofy 90's male California cool dude take on "treat people well".

            Even if it was by accident, it's a salient point: Excelling as a project community is not the same as being saccharinely "nice" to each other. The latter is what CoCs seek to codify.

            The crazy thing is that I certainly support not discriminating against people by their sexual preferences as long as it's between consenting adults, or how they "identify".

            Personally I think people should keep their sexual preferences where they belong, in the bedroom. I don't mind if someone happens to be gay and that happens to be noticeable, like hearing of a newly acquired boyfriend or a breakup, but I don't need juicy bedroom details. Just like with straight people. Taking your "gender" that

            • Or the color of their skin or place of origin.

              The thing that my experience says is the leading factor, is culture differences. There are cultures I would prefer not to work with, for various practical reasons. There are good reasons to say "no discrimination" but it's become a bit of an article of faith, and through that denies tolerant people to call intolerant people to heel. So we regress.

              It is awkward, and especially certain cultures treatment of women. As a male of a certain skin tone and point of origin, I'm designated as an oppressor, but Diversity and Inclusiveness demands I cherish those cultures.

              I did ask the question at a diversity committee meeting once. I fear it was a divide by zero situation.

              I suppose the best counterexample is a the aspies I've worked with. They can be really blunt.

              And not even be aware that they're being blunt. And can get hurt over reasons everyone else wasn't even aware could cause hurt. Dealing with both is a two-way street, and a learning exercise for everyone. CoCs are hopelessly one-way in comparison.

              I have a built in tendency to side with the aspie. They are people, they have feelings like we all do, and I often search one out when I want unvarnished truth, because I'll get it. In retu

      • None of this is my experience of Rust. The community sites are nice, supportive and helpful, and will provide detailed technical answers to complex questions about Rust. If they think you are doing things the wrong way, they will say, explain why and highlight an alternative.

        The CoC means that their forums are kind and polite. Very rarely is someone rude to you, or mocks you for not knowing what ever it is that you are asking about. If it does happen, the rude person will be asked to stop. This politeness e

        • None of this is my experience of Rust. The community sites are nice, supportive and helpful, and will provide detailed technical answers to complex questions about Rust. If they think you are doing things the wrong way, they will say, explain why and highlight an alternative.

          The CoC means that their forums are kind and polite. Very rarely is someone rude to you, or mocks you for not knowing what ever it is that you are asking about. If it does happen, the rude person will be asked to stop. This politeness even covers situations where, in the past, I might have felt bluntness was better -- even if something is asking for help with their homework, the forum norms are just not to answer if you don't want to. Very little of this is ever discussed, because the forums are, by default, polite. So people mostly respond in that way, without the need for policing.

          So, my experience is that this means that the forums are excellent places. It's all about the code and the tech. That's a rarity on the internet.

          It sounds like you are dismissing the crisis? All the mods quit because they believed they couldn't enforce the CoC, so someone somewhere must have been maximally offended by something.

          • We know very little about the "crisis", so I do not dismiss it. I do not know what actually happened in terms of offence or otherwise. Nor do you I suspect.

            What I do know, because it was made public, is that the mod team identified a clear issue with the governance process, because while it was clear how it applies to forums, it was not clear how it applied elsewhere and particularly not to the core team. It sounds like a problem you get with governance processes and they do happen. When they happen you nee

            • We know very little about the "crisis", so I do not dismiss it. I do not know what actually happened in terms of offence or otherwise. Nor do you I suspect.

              I gave you true situations after you claimed I was making a Strawman. That might be claimed as a violation of a CoC.

              Don't worry though - I get claimed of doing a lot of things in here. 8^)

              There has to be a pretty big problem of what they don't want for an entire team to leave. So let us simply admit there is a problem that wants fixing.

              Anyhow, not that anyone is asking - but it is plain that The rust development team has certain demands for behavior. I can make suggestions on how to go as far as pos

              • I am struggling a little bit to understand what you are saying I am afraid. A lot of the terminology I am just not familiar with and I am not sure what you actually want to do. The CoC as it stands is drafted at a rather higher level than the sort of things you seem to be suggesting ("state police background checks") which as well as being expensive and heavy-weight, would be jurisdiction dependent.

                I could, indeed, have word my criticism more carefully than the use of the word "strawman", although it is a c

                • I am struggling a little bit to understand what you are saying I am afraid. A lot of the terminology I am just not familiar with and I am not sure what you actually want to do. The CoC as it stands is drafted at a rather higher level than the sort of things you seem to be suggesting ("state police background checks") which as well as being expensive and heavy-weight, would be jurisdiction dependent.

                  Okay, let me clarify a bit. If an outfit gets sued for something, say in this case, someone gets sexually harassed or insulted, and brings a lawsuit against the organization because they allowed their harasser into the organization, if they allow a sexual predator into the organization, and have not performed due diligence, they are much more likely to be found guilty of negligence.

                  If they have done the background checks, it is no guarantee that no one will harass or otherwise be a problem, but it defini

                  • I do believe what you have said. I agree social media does resulting in people getting pilloried. Much social media is not a terribly nice place. That's a shame, because large sections of the internet are only of value if you have an extremely thick skin. Maybe I am getting old, but it wasn't always like that; I remember the fun and excitement of getting to know random people from other parts of the world, other countries and getting an understanding of what their thoughts were in a way that was difficult,

  • by rlwinm ( 6158720 ) on Sunday March 05, 2023 @11:42AM (#63344567)
    ANSI C has been stable for decades. I have code I wrote from back in the 80's and 90's that is still in devices in use today written in C. I don't have to worry about a bunch of nerds getting into a fight and changing the language. Stability is important in a programming language. C really became mature when C89 added prototypes - and that's when there was a sharp rise in C taking over much of the software that runs the world. I certainly don't see (or want) that changing any time soon.
    • by Waffle Iron ( 339739 ) on Sunday March 05, 2023 @11:50AM (#63344591)

      Stability is important in a programming language.

      That's how C got saddled with its own multitude of 50-year-long crises, such as strncpy().

      • Any C programmer who cant write a sane replacement for that in 10 mins should hand back their nerd badge and go grow some pointy hair.

        • And yet for almost 50 years, no C programmer has stepped up to write a standard sane replacement for that function and deprecate the original.

          It would have been 10 minutes of work, but nobody can seem to agree how to proceed. That's what I call a "crisis".

          BTW, if you polled a random sample of C programmers, it's almost certain that the majority don't even know what that function is really for and how it actually behaves. Should they all turn in their nerd badges?

          • Re: (Score:2, Interesting)

            by AmiMoJo ( 196126 )

            Microsoft, of all people, did just that decades ago. If you try to use strncpy with their standard library it generates a warning telling you to use a safe version instead.

            • But it is a safe function. Microsoft's "safe" alternatives for the most part aren't safer. Never ever look to Microsoft for expert advice on anything, especially not for languages. If they wanted safer string functions they should have borrowed the BSD style extensions. I have an idea that there's a single eccentric person doing all the work for Visual Studio and his only unusual personality drives the design.

            • Lot's of people offered replacements over the years. None have been universally adopted.

              • by Uecker ( 1842596 )

                So what?

              • by tlhIngan ( 30335 )

                Lot's of people offered replacements over the years. None have been universally adopted.

                The _s versions of the functions have been adopted into the C standard.

                So instead of using strcpy, you use strcpy_s which like strncpy takes a size (_s takes the size in bytes, i.e., what sizeof() returns) and guarantees null termination if it runs out of room. It also checks to see if there is room to do anything, so you can't run off the end of the string which means the null terminator is kept in place.

                snprintf() has

            • by Uecker ( 1842596 )

              According to ISO C99, snprintf will always null-terminate. So one could use that to copy strings.

              Microsoft shipped until 2015 a version of snprintf that did not do null termination, but this changed and they are now compliant with the ISO C standard. I would still avoid MSVC.

        • It may be subtle, but that was a joke. Especially considering that strncpy() is a perfect function with no flaws.

          • by Viol8 ( 599362 )

            Actually its a long way from being perfect as many people have noted over time. I'l let you go find out why.

            • by nagora ( 177841 )

              Actually its a long way from being perfect as many people have noted over time. I'l let you go find out why.

              Your sarcasm detector is on the fritz.

            • "Perfect" was tahe joke. But... The Microsoft strcpy_s "safe" function only changes one thing; always sticking a NUL in the last spot; this is a convenience function not a safer function. There are many cases where the original behavior is exactly what you want and a terminating NUL should not be added, and cases where it is needed, and it's up to the developer to know when. The real problem and why some mistakenly call strncpy unsafe, is that many novices naively use strncpy as a safe version of strcpy.

      • by dfghjk ( 711126 )

        strncpy() isn't even part of C, bad faith in everything no matter how trivial

        • gets() is, and it's still part of ANSI C.

          • by Uecker ( 1842596 )

            What is known as ANSI C has long been superseded by ISO C.

            gets was removed in C11. The current standard is C17.

            • Though OP said this:

              ANSI C has been stable for decades. I have code I wrote from back in the 80's and 90's that is still in devices in use today written in C

              I take issue with comments like this because these guys talk of old code still working as if it's some kind of virtue about their preferred language. It's really not, and if anybody needs to know why, things like gets() is your answer.

              Generally, the older the code, the odds are much lower that it has taken novel exploits into consideration. This is true of newer languages as well, including rust. Take for example the Unicode exploit that affects literally all languages that support Unico

              • by Uecker ( 1842596 )

                Not for all code security is even an issue. I am quite happy that I can my numerical own algorithms from the past and could not care whether you input handling is safe not.

                Second, there is code where security is important but which is very well tested and audited, and sometimes even shown to be safe by formal methods. There absolutely no reason to throw it away. Yes, one has to regularly revisit whether there a new issues to consider. But no, it is neither a good idea nor even feasible to rewrite everythi

                • Not for all code security is even an issue.

                  The thing with being on the defensive in cybersecurity is that you have to be right 100% of the time. The attacker only needs to be right far less than 1% of the time.

                  So would you say that, 100% of the time, any given code security is never an issue?

                  Second, there is code where security is important but which is very well tested and audited, and sometimes even shown to be safe by formal methods. There absolutely no reason to throw it away. Yes, one has to regularly revisit whether there a new issues to consider. But no, it is neither a good idea nor even feasible to rewrite everything in newer languages and also do not believe that this will always be an improvement.

                  Nobody said throw it away. Revising it or updating it is certainly an option. But then it's not exactly 30 year old code at that point.

                  So I absolutely believe that a language should be stable and I would never invest my own time significantly into a language which is not.

                  However, as you already indicated, the language really isn't as stable as claimed.

      • by rlwinm ( 6158720 )
        strncpy() comes from the days of fixed-length fields. It was not meant to be a "safe strcpy()" and as noted elsewhere. Security bugs exist because of flawed assumptions. If you fix the basic things in C those security issues just move elsewhere. For example, Java can't have buffer overflows yet there are plenty of CVEs in Java software. The same is true of other languages (even Ada).

        Griping about strncpy() is a silly argument.
        • It was not meant to be a "safe strcpy()" and as noted elsewhere.

          But that's how it's usually used. Fail.

          If you fix the basic things in C those security issues just move elsewhere.

          If we remove lead from gasoline, the CO and particulates could still harm you.

          So let's just leave the lead in.

          • by rlwinm ( 6158720 )

            But that's how it's usually used. Fail.

            I guess Rust is all about surrendering to morons rather than professionals who learn their language.

            So let's just leave the lead in.

            By your previous analogy it doesn't matter as you would drink the gasoline, leaded or otherwise. LOL.

            • Have you ever had to fix a bug reported against your C code?

              If so, by your own definition, you're a moron.

              We can safely ignore anything you say.

    • by kriston ( 7886 )

      I remember before there was ANSI C. Each company's own compiler had its own flavor of C for years, most of them were like K&R C. ANSI C, also known as "C89," was not adopted for many years after its ratification.

      It was only when the ANSI C standard finally became adopted years after it came out that cross-platform programming started to get tolerable.

      And then C95 ANSI C came out and disrupted things yet again.

      • by rlwinm ( 6158720 )

        years after it came out that cross-platform programming started to get

        I think C89 was a great enhancement to the language (as I posted above). But cross-platform programming is not important in many cases, and 99% of the cases I work on (bare-metal embedded systems). C is still what runs the world. Your washing machine, microwave, car, and almost everything else with anything from an 8 bit uC to a 64-bit embedded ARM is programmed in some dialect of C.

        • by kriston ( 7886 )

          Most of my work was cross-platform with a smattering of embedded systems. Having to keep track of differences between traditional K&R C, C89, and C95 was a pain in the neck.

          Still no official strings package but that's okay, it started to land in C99.

          • by kriston ( 7886 )

            AND not to mention the many different flavors every single compiler vendor had of K&R C.

    • by HiThere ( 15173 )

      Perhaps. But I wrote code in the 80's that worked with the compiler that I used, but which was not acceptable by K&R. Rust is quite a young language, so rough spots are to be expected. (FWIW I was using Lifeboat C.)

    • Meanwhile, in February of this year, a relative applied for a C++ job for a small startup. He didn't get the job and reported that much of the interview revolved around details of C++-23. That is, a standard _not_ _yet_ finalized! That C++ community is somewhat nuts in my view by going whole hog in their newer-is-better idea, and most of those who seem to embrace the later standards also are writing the most obfuscated of code as well.

      I'm mostly a C guy firmly sticking to simpler-is-better idea instead,

      • by rlwinm ( 6158720 )
        I am no fan of C++ and feel that it has many of the same problems Rust and the Rust community have.
      • From my experience, many if not most professional C++ projects work quite a few years behind the most cutting-edge standard. That's partly because C++ compilers are incredibly complex, and it literally takes many years for full compliance of a standard, for both language and library. For example, I work in C++ 17, both at home and work, because C++ 20 compilers and tools are not really feature-complete enough for production, at least regarding several major features. And good heavens, C++ 23 has just bee

  • ... for its advocates and its spec actually stabilises without being changed ever 5 mins then *maybe* itll have a chance at eating some of C/C++'s lunch. Until then it's just an amateur hour chimps tea party with a vaguely interesting language attached.

  • by Anonymous Coward

    Seriously, the entire team quit a few years ago...did anyone miss them?

    Did the core team use naughty words? Did they assume people's gender? Did they use entirely benign words that certain snowflakes took offense to ( master/slave, I'm looking at you )?

    I have a better idea; how about the moderation team just keep fucking all the way off and let the teams that are actually working do the work without their horseshit?

    • Re: (Score:3, Insightful)

      It's the modus operandi of people fundamentally incapable of creation to try to infiltrate and take over pre-existing structures, siphon power out of them until they're gone, then move on to the next thing. Everyone involved in the culture war is an actual parasite.
  • Where is the "scathing account" PR? The link goes nowhere.

  • Can't the dev teams just fork and move on if they don't like what the moderation team is doing? Until they check in some code, the moderation team has no real power, no matter how many constitutions they write.

    • Can't the dev teams just fork and move on if they don't like what the moderation team is doing? Until they check in some code, the moderation team has no real power, no matter how many constitutions they write.

      It had to do with the "code of conduct" (which you can find here [rust-lang.org].

      Note the first line of the code of conduct, and contrast with Linus Torvalds who was a notoriously harsh critic on newbies, but kept a high degree of quality in the linux kernel code.

      There was apparently an incident between the core team and the mod team. Because the core team would not accept the mod team's ruling, the mod team resigned in protest. Both sides have not identified the incident, but rumor has that it was a blatant case of misand

      • by lsllll ( 830002 )

        ...which I suppose raises an important issue: who is the ultimate authority for Rust? If a small cadre of expert developers starts a new language, they open development up to the public, as part of this a mod team forms, when the mod team tries to enforce codes of conduct on the core team, what happens?

        Well, in that case the mod team can fuck off, errr, I mean fork off. That's how open source works. Anybody can fork a project, but once they do, it becomes their chore/responsibility to continue taking code from the core team and modify it to fit their fork. It's ultimately up to the users to decide which one they're going to go after: the original, or the forked version.

        In this case, I guess I don't even understand what the mod team does. Their web page [rust-lang.org] says "Helping uphold the code of conduct and

      • Can't the dev teams just fork and move on if they don't like what the moderation team is doing? Until they check in some code, the moderation team has no real power, no matter how many constitutions they write.

        It had to do with the "code of conduct" (which you can find here [rust-lang.org].

        Note the first line of the code of conduct, and contrast with Linus Torvalds who was a notoriously harsh critic on newbies, but kept a high degree of quality in the linux kernel code.

        My memory may be rusty, but I think he was not a critic of newbies. On the contrary, if he chewed someone out, it's precisely because that person should have known better than to do whatever sh*t was it that triggered Linus.

  • by byronivs ( 1626319 ) on Sunday March 05, 2023 @02:01PM (#63344915) Journal
    Some other language is putting out standards.

Keep up the good work! But please don't ask me to help.

Working...