Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. I used the phrase 'too big to fork' in another thread.

I used the phrase 'too big to fork' in another thread.

Scheduled Pinned Locked Moved Uncategorized
19 Posts 4 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

    I used the phrase 'too big to fork' in another thread. It's something I try to avoid in projects I maintain. I don't want to control how you use my code. Giving you a license that lets you do whatever you want with it is part of that, but it's on the start. The rest is making sure that, if we disagree on how it can evolve, you can take your copy and make it do something different. That means building small projects, building projects with well-defined and stable interfaces between components, and documenting how things work.

    I'm not always good at these things, but they're always my goals. If a project is too big to fork, those freedoms that the license gives you are freedoms in name only: you don't have the ability to exercise them.

    lritter@mastodon.gamedev.placeL This user is from outside of this forum
    lritter@mastodon.gamedev.placeL This user is from outside of this forum
    lritter@mastodon.gamedev.place
    wrote last edited by
    #3

    @david_chisnall with source control, diffing, patching, merging, the size of the project does not matter.

    david_chisnall@infosec.exchangeD 1 Reply Last reply
    0
    • lritter@mastodon.gamedev.placeL lritter@mastodon.gamedev.place

      @david_chisnall with source control, diffing, patching, merging, the size of the project does not matter.

      david_chisnall@infosec.exchangeD This user is from outside of this forum
      david_chisnall@infosec.exchangeD This user is from outside of this forum
      david_chisnall@infosec.exchange
      wrote last edited by
      #4

      @lritter That is so obviously untrue, I can’t even begin to think of how to argue with it.

      lritter@mastodon.gamedev.placeL 1 Reply Last reply
      0
      • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

        @lritter That is so obviously untrue, I can’t even begin to think of how to argue with it.

        lritter@mastodon.gamedev.placeL This user is from outside of this forum
        lritter@mastodon.gamedev.placeL This user is from outside of this forum
        lritter@mastodon.gamedev.place
        wrote last edited by
        #5

        @david_chisnall we have two very different views of reality, it appears.

        lritter@mastodon.gamedev.placeL david_chisnall@infosec.exchangeD 2 Replies Last reply
        0
        • lritter@mastodon.gamedev.placeL lritter@mastodon.gamedev.place

          @david_chisnall we have two very different views of reality, it appears.

          lritter@mastodon.gamedev.placeL This user is from outside of this forum
          lritter@mastodon.gamedev.placeL This user is from outside of this forum
          lritter@mastodon.gamedev.place
          wrote last edited by
          #6

          @david_chisnall it certainly does help to keep projects small and focused.

          but, for instance, ibm's eclipse ide, despite being, to put it gently, a collossal turd, has been forked numerous times.

          1 Reply Last reply
          0
          • lritter@mastodon.gamedev.placeL lritter@mastodon.gamedev.place

            @david_chisnall we have two very different views of reality, it appears.

            david_chisnall@infosec.exchangeD This user is from outside of this forum
            david_chisnall@infosec.exchangeD This user is from outside of this forum
            david_chisnall@infosec.exchange
            wrote last edited by
            #7

            @lritter So you maintain a fork of LibreOffice with custom features? Or Chromium? Or even something smaller like LLVM? Or any other million-line or larger project?

            Have you, in fact, ever tried to do the thing that you’re saying is easy independent of scale? When someone does a refactoring upstream and removes a function that your local change was calling and changes a data structure that it relies on, version control makes it easy for you to keep the update? When this happens once a week, it’s easy for you to keep up with security updates and keep your custom feature working?

            lritter@mastodon.gamedev.placeL serapath@mastodon.gamedev.placeS 2 Replies Last reply
            1
            0
            • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

              @lritter So you maintain a fork of LibreOffice with custom features? Or Chromium? Or even something smaller like LLVM? Or any other million-line or larger project?

              Have you, in fact, ever tried to do the thing that you’re saying is easy independent of scale? When someone does a refactoring upstream and removes a function that your local change was calling and changes a data structure that it relies on, version control makes it easy for you to keep the update? When this happens once a week, it’s easy for you to keep up with security updates and keep your custom feature working?

              lritter@mastodon.gamedev.placeL This user is from outside of this forum
              lritter@mastodon.gamedev.placeL This user is from outside of this forum
              lritter@mastodon.gamedev.place
              wrote last edited by
              #8

              @david_chisnall woah hey now, i didn't say it was easy. but you made it sound like it is impossible.

              david_chisnall@infosec.exchangeD 1 Reply Last reply
              0
              • lritter@mastodon.gamedev.placeL lritter@mastodon.gamedev.place

                @david_chisnall woah hey now, i didn't say it was easy. but you made it sound like it is impossible.

                david_chisnall@infosec.exchangeD This user is from outside of this forum
                david_chisnall@infosec.exchangeD This user is from outside of this forum
                david_chisnall@infosec.exchange
                wrote last edited by
                #9

                @lritter You literally said that the tooling makes the size of the project irrelevant:

                with source control, diffing, patching, merging, the size of the project does not matter.

                And this is obviously incorrect for anyone who has maintained a fork of a large project for any length of time.

                lritter@mastodon.gamedev.placeL 1 Reply Last reply
                1
                0
                • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

                  @lritter So you maintain a fork of LibreOffice with custom features? Or Chromium? Or even something smaller like LLVM? Or any other million-line or larger project?

                  Have you, in fact, ever tried to do the thing that you’re saying is easy independent of scale? When someone does a refactoring upstream and removes a function that your local change was calling and changes a data structure that it relies on, version control makes it easy for you to keep the update? When this happens once a week, it’s easy for you to keep up with security updates and keep your custom feature working?

                  serapath@mastodon.gamedev.placeS This user is from outside of this forum
                  serapath@mastodon.gamedev.placeS This user is from outside of this forum
                  serapath@mastodon.gamedev.place
                  wrote last edited by
                  #10

                  @david_chisnall @lritter

                  i have no clue what the background of this discussion is but it popped into my notifications right before i went to bed and i personally agree with the take of tiny small easy to focus modules being true open source and big projects an anti pattern.

                  i wonder why somebody woupd say size doesnt matter. isnt it obvious that smaller is better? 😁

                  ...i mean - who knows, maybe we get stable reliable deterministic LLMs who lagically make size not matter, but for now 🤷‍♀️

                  1 Reply Last reply
                  0
                  • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

                    @lritter You literally said that the tooling makes the size of the project irrelevant:

                    with source control, diffing, patching, merging, the size of the project does not matter.

                    And this is obviously incorrect for anyone who has maintained a fork of a large project for any length of time.

                    lritter@mastodon.gamedev.placeL This user is from outside of this forum
                    lritter@mastodon.gamedev.placeL This user is from outside of this forum
                    lritter@mastodon.gamedev.place
                    wrote last edited by
                    #11

                    @david_chisnall ok. maybe i was too optimistic in my wording.

                    what you just wrote about seems to weigh more heavily though: frequent breaking changes. and they can also occur in small projects.

                    lritter@mastodon.gamedev.placeL 1 Reply Last reply
                    0
                    • lritter@mastodon.gamedev.placeL lritter@mastodon.gamedev.place

                      @david_chisnall ok. maybe i was too optimistic in my wording.

                      what you just wrote about seems to weigh more heavily though: frequent breaking changes. and they can also occur in small projects.

                      lritter@mastodon.gamedev.placeL This user is from outside of this forum
                      lritter@mastodon.gamedev.placeL This user is from outside of this forum
                      lritter@mastodon.gamedev.place
                      wrote last edited by
                      #12

                      @david_chisnall and when you depend on a bunch of small projects and they all break abi all the time, does it then make much of a difference if the dysfunctionality is monolithic or modular?

                      david_chisnall@infosec.exchangeD 1 Reply Last reply
                      0
                      • lritter@mastodon.gamedev.placeL lritter@mastodon.gamedev.place

                        @david_chisnall and when you depend on a bunch of small projects and they all break abi all the time, does it then make much of a difference if the dysfunctionality is monolithic or modular?

                        david_chisnall@infosec.exchangeD This user is from outside of this forum
                        david_chisnall@infosec.exchangeD This user is from outside of this forum
                        david_chisnall@infosec.exchange
                        wrote last edited by
                        #13

                        @lritter

                        If small projects break their APIs (or ABIs) all the time, that affects all of their users. If a large project breaks their internal APIs, that only affects downstream forks. That makes the cost-benefit calculations for them very different.

                        lritter@mastodon.gamedev.placeL 1 Reply Last reply
                        0
                        • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

                          @lritter

                          If small projects break their APIs (or ABIs) all the time, that affects all of their users. If a large project breaks their internal APIs, that only affects downstream forks. That makes the cost-benefit calculations for them very different.

                          lritter@mastodon.gamedev.placeL This user is from outside of this forum
                          lritter@mastodon.gamedev.placeL This user is from outside of this forum
                          lritter@mastodon.gamedev.place
                          wrote last edited by
                          #14

                          @david_chisnall i would say this too depends on style and internal culture. but yes. there's a good reason why i always stuck to LLVMs/libclangs rather stable C ABI rather than messing around with their volatile class system. it takes them forever though to expose all the parts.

                          lritter@mastodon.gamedev.placeL 1 Reply Last reply
                          0
                          • lritter@mastodon.gamedev.placeL lritter@mastodon.gamedev.place

                            @david_chisnall i would say this too depends on style and internal culture. but yes. there's a good reason why i always stuck to LLVMs/libclangs rather stable C ABI rather than messing around with their volatile class system. it takes them forever though to expose all the parts.

                            lritter@mastodon.gamedev.placeL This user is from outside of this forum
                            lritter@mastodon.gamedev.placeL This user is from outside of this forum
                            lritter@mastodon.gamedev.place
                            wrote last edited by
                            #15

                            @david_chisnall we can also debate how much of that is due to C++ leaking implementation details almost by design.

                            david_chisnall@infosec.exchangeD 1 Reply Last reply
                            0
                            • lritter@mastodon.gamedev.placeL lritter@mastodon.gamedev.place

                              @david_chisnall we can also debate how much of that is due to C++ leaking implementation details almost by design.

                              david_chisnall@infosec.exchangeD This user is from outside of this forum
                              david_chisnall@infosec.exchangeD This user is from outside of this forum
                              david_chisnall@infosec.exchange
                              wrote last edited by
                              #16

                              @lritter

                              C++ here doesn’t make a difference for forks. You can build stable public interfaces in C++ but it’s harder. But when you’re maintaining a fork, it’s the internal structure that matters. No amount of information hiding helps when you’re on the other side of that boundary. The Linux kernel is a good case study here: they strive for 100% ABI compatibility for things in userspace but routinely make changes that break out-of-tree kernel modules and cause huge merge headaches for downstream forks.

                              lritter@mastodon.gamedev.placeL 1 Reply Last reply
                              0
                              • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

                                @lritter

                                C++ here doesn’t make a difference for forks. You can build stable public interfaces in C++ but it’s harder. But when you’re maintaining a fork, it’s the internal structure that matters. No amount of information hiding helps when you’re on the other side of that boundary. The Linux kernel is a good case study here: they strive for 100% ABI compatibility for things in userspace but routinely make changes that break out-of-tree kernel modules and cause huge merge headaches for downstream forks.

                                lritter@mastodon.gamedev.placeL This user is from outside of this forum
                                lritter@mastodon.gamedev.placeL This user is from outside of this forum
                                lritter@mastodon.gamedev.place
                                wrote last edited by
                                #17

                                @david_chisnall good points. what is your opinion on how they could fix it?

                                david_chisnall@infosec.exchangeD 1 Reply Last reply
                                0
                                • lritter@mastodon.gamedev.placeL lritter@mastodon.gamedev.place

                                  @david_chisnall good points. what is your opinion on how they could fix it?

                                  david_chisnall@infosec.exchangeD This user is from outside of this forum
                                  david_chisnall@infosec.exchangeD This user is from outside of this forum
                                  david_chisnall@infosec.exchange
                                  wrote last edited by
                                  #18

                                  @lritter

                                  I’ve written a lot on this subject, most recently this post, which is probably a good starting point.

                                  lritter@mastodon.gamedev.placeL 1 Reply Last reply
                                  0
                                  • david_chisnall@infosec.exchangeD david_chisnall@infosec.exchange

                                    @lritter

                                    I’ve written a lot on this subject, most recently this post, which is probably a good starting point.

                                    lritter@mastodon.gamedev.placeL This user is from outside of this forum
                                    lritter@mastodon.gamedev.placeL This user is from outside of this forum
                                    lritter@mastodon.gamedev.place
                                    wrote last edited by
                                    #19

                                    @david_chisnall i'm familiar with conway's law. there is nothing to object to in this post except that it's too abstract to answer my question.

                                    1 Reply Last reply
                                    0
                                    • R relay@relay.mycrowd.ca shared this topic
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    • Login

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • World
                                    • Users
                                    • Groups