Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    RepRapFirmware 3.0RC1 released

    Scheduled Pinned Locked Moved
    Beta Firmware
    19
    77
    5.6k
    Loading More Posts
    • 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.
    • dc42undefined
      dc42 administrators @A Former User
      last edited by

      @bearer said in RepRapFirmware 3.0RC1 released:

      Great to see RRF3 maturing, seeing as this is RC1 does that imply the conditional g-code won't make it to the first stable release, or did I miss it on the whats new page?

      Release 3.0 won't include conditional GCode, but it does include some important preparation for it. I have already started work on 3.01.

      Duet WiFi hardware designer and firmware engineer
      Please do not ask me for Duet support via PM or email, use the forum
      http://www.escher3d.com, https://miscsolutions.wordpress.com

      1 Reply Last reply Reply Quote 0
      • fmaundefined
        fma
        last edited by

        David, could it be possible to change the revision numbering and the way releases are managed?

        I suggested in another thread to use a.b.c: 'a' for major release (3, here), 'b' for minor release (0, here), and 'c' for bug fixes.

        Currently, installing a new release for bugs fix introduces new features, so potentially new bugs: this is not a good thing. One should be able to dissociate bugs fix and new features...

        So, after the current release, which should be named 3.0.0, the next one should be named 3.1.0 (not 3.01). And bugs fix should go into 3.0.x (then in 3.1.x...)

        Thanks.

        Frédéric

        1 Reply Last reply Reply Quote 2
        • Danalundefined
          Danal
          last edited by

          @fma said in RepRapFirmware 3.0RC1 released:

          And bugs fix should go into 3.0.x (then in 3.1.x...)

          As we discussed in other threads, the above snippet is the flaw in this scheme. It requires re-integration feature to bug releases. Which takes time from a fixed resource.

          We are always going to disagree on this... therefore, I won't repeat the entire conversation. I'll just state that there are differing perspectives in the user community.

          Delta / Kossel printer fanatic

          1 Reply Last reply Reply Quote 1
          • fmaundefined
            fma
            last edited by

            Sorry, I missed that conversation; could you point it out?

            There are maybe differing perspectives in the user, but as RRF and Duet3 will be more and more used by high end printers, and by pro companies, introducing new bugs when fixing ones is a big concern...

            Frédéric

            A Former User? Danalundefined 2 Replies Last reply Reply Quote 0
            • A Former User?
              A Former User @fma
              last edited by

              @fma said in RepRapFirmware 3.0RC1 released:

              but as RRF and Duet3 will be more and more used by high end printers, and by pro companies, introducing new bugs when fixing ones is a big concern...

              As someone who uses major.minor.bf for 3 decades, I'll just add that this does not prevent regression bugs. It is more reflective of the release process than anything else. The only thing that solves regression bugs is testing, no process and especially no version scheme will help there.

              1 Reply Last reply Reply Quote 3
              • Danalundefined
                Danal @fma
                last edited by Danal

                @fma said in RepRapFirmware 3.0RC1 released:

                Sorry, I missed that conversation; could you point it out?

                Can we have a revised release process?

                My humble apologies for saying "We will always agree to disagree...". It was not you @fma; in fact you never posted to that thread.

                Therefore, let me rephrase:

                There are perspectives in the user community that the overhead of merging a "bugfix only" N.0.N into N.1.0 would yield a negative return when implemented by a very small (almost one man) development team. We'd prefer to stick to the current arrangement.

                Delta / Kossel printer fanatic

                fmaundefined 1 Reply Last reply Reply Quote 1
                • dc42undefined
                  dc42 administrators
                  last edited by

                  Some of you may not have have noticed that I did a 2.05 bugfix release, at the expense of delaying the 3.0RC1 release which was almost ready.

                  Duet WiFi hardware designer and firmware engineer
                  Please do not ask me for Duet support via PM or email, use the forum
                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                  Danalundefined 1 Reply Last reply Reply Quote 0
                  • Synapsisundefined
                    Synapsis
                    last edited by

                    I did and thank you for that bug fix, but I do have a question. For us "home users" is it better to stay with 2.05 or update to 3.0RC1 seeing thing are very different in the way things are set up.

                    Phaedruxundefined 1 Reply Last reply Reply Quote 0
                    • Danalundefined
                      Danal @dc42
                      last edited by

                      @dc42 said in RepRapFirmware 3.0RC1 released:

                      Some of you may not have have noticed that I did a 2.05 bugfix release, at the expense of delaying the 3.0RC1 release which was almost ready.

                      I did notice! And thank you.

                      At the same time, I believe a 2.xx bugfix interacting with the schedule of a 3.xx release is somewhat different than a regular practice of (in order):

                      3.00 initial release with however many RCs, not shown.
                      3.01 bug
                      3.10 feature (and fork)
                      3.02 bug (on 3.0 base)
                      3.03 bug (same)
                      3.13 (integrating 3.0x and 3.1x)

                      It is the hours that go into that last 'integrating' line that are my concern. Those hours simply disappear from the pool that advances both fixes and features. Factually, they slow things down.

                      Numerous industry studies show that within software projects that continue to evolve, 80 to 90 percent of fix code hits prior fix code, not base or feature. If that metric is accepted as fact, then fork separating and later re-integrating really accomplishes very little or nothing toward stability.

                      Therefore, I continue to advocate that a single code path, without multiple fork and re-integration, is proper engagement mode for very small development teams

                      Large team? Whole different set of answers. DevOps continuous integration, forked bugfix releases, production patch hotfixes, lots of things apply to large teams that just don't apply to very small teams.

                      Of course, this is all just a fun discussion. The development philosophy is ultimately up to DC42. 🙂

                      Delta / Kossel printer fanatic

                      1 Reply Last reply Reply Quote 5
                      • Phaedruxundefined
                        Phaedrux Moderator @Synapsis
                        last edited by Phaedrux

                        @Synapsis said in RepRapFirmware 3.0RC1 released:

                        I did and thank you for that bug fix, but I do have a question. For us "home users" is it better to stay with 2.05 or update to 3.0RC1 seeing thing are very different in the way things are set up.

                        In my opinion, most users should stick with the RRF2 for the time being unless there is a feature of RRF3 that you really want. At least until RRF3 has been more fully developed and tested and becomes the main release. Besides that, the effort required to convert from RRF2 to RRF3 is (currently) not trivial. So unless you like to be on the bleeding edge and like testing firmware and submitting bug reports and understand that's what you're getting into, best to stick with 2.05 for now and print happily.

                        Z-Bot CoreXY Build | Thingiverse Profile

                        dc42undefined Synapsisundefined 2 Replies Last reply Reply Quote 2
                        • dc42undefined
                          dc42 administrators @Phaedrux
                          last edited by

                          @Phaedrux said in RepRapFirmware 3.0RC1 released:

                          @Synapsis said in RepRapFirmware 3.0RC1 released:

                          I did and thank you for that bug fix, but I do have a question. For us "home users" is it better to stay with 2.05 or update to 3.0RC1 seeing thing are very different in the way things are set up.

                          In my opinion, most users should stick with the RRF2 for the time being unless there is a feature of RRF3 that you really want. At least until RRF3 has been more fully developed and tested and becomes the main release. Besides that, the effort required to convert from RRF2 to RRF3 is (currently) not trivial. So unless you like to be on the bleeding edge and like testing firmware and submitting bug reports and understand that's what you're getting into, best to sticktwith 2.05 for now and print happily.

                          @Phaedrux has summed it up perfectly.

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          1 Reply Last reply Reply Quote 0
                          • gtj0undefined
                            gtj0
                            last edited by gtj0

                            Oh boy! A semantic versioning discussion and release process!!! COUNT ME IN! 🙂

                            OK, so here's what we do at Asterisk.
                            Assuming the current RRF major version is 3 and the next will be 4...

                            We start with 2 branches, "3" (current), and "master" (anything targeted for 4). With no prior history, "master" and "13" are equal.

                            We start with a "3" branch where all development goes, bug fixes and new features that are slated for major release "3". Commits are also cherry-picked to "master".
                            When we'd create the first RC of "3.0" (3.0.0-rc1), so we'd create branch "3.0" from "3", tag it "3.0.0-rc1" and release from it.
                            If there are no issues with rc1, we tag that same commit in the "3.0" branch as "3.0.0" and release it.
                            Meanwhile development continues in "3".
                            If there are issues with rc1, the fix is committed to "3" then only that commit is cherry-picked to "3.0" and rc2 is cut.
                            This way the ONLY difference between rc1 and rc2 are fixes for issues found in rc1.
                            Meanwhile development continues in "3".
                            If we discover a critical bug that needs to be released quickly, the fix is committed to "3" and cherry-picked to "3.0".
                            If there are other critical fixes, they are also cherry picked to "3.0".
                            We then create a release (skipping rc/beta) of "3.0.1" which ONLY has the critical fixes.
                            Meanwhile development continues in "3".
                            When it's time to create "3.1" it's the same process.

                            All thew while all commits in "3" are cherry-picked to "master" so "master" is always up to date with "3" plus it has any development that is slated for the next major release.

                            When we start thinking about a new major version, we create "4" from "master".
                            Assuming "3" is still the current release, from here on, any new commits are cherry-picked to both "4" and "master". New stuff for "4" also goes into "master" and any experimental stuff for the future goes only in "master".

                            It sounds complicated but we use Gerrit so the cherry-picking is easy. 🙂

                            I'm not saying all of that stuff should be done here of course. I just wanted to highlight the differences between release versions. Also, this scheme would require that commits contain only 1 functional change and that'll be a big change for both @dc42 and @chrishamm .

                            I do believe though that as the user base picks up with the Duet3, RRF and DSF that changes will ultimately have to be made in the release process as well as the issue reporting process or customer perception will suffer.

                            @dc42 and @chrishamm , Welcome to the "real" Open Source world. 🙂

                            1 Reply Last reply Reply Quote 1
                            • dc42undefined
                              dc42 administrators
                              last edited by

                              Sounds good; but in trying to apply the same fixes to RRF 2.04 and RRF3beta12, I found cherry-picking left such a mess (because the code had diverged so much between the branches) that it was better to copy across the changes manually. In doing so, I spotted that one of the fixes I had done in 3.0beta wouldn't work in 2.04 anyway. Cherry picking commits would work OK if nothing had changed in/around the code that the bug fixes were applied to, and the bug fixes didn't interact with other code that was different between the branches.

                              Either way, applying the same fixes to more than one branch involves a lot of extra work, especially in testing. That's why I try to avoid it. If I had an army of users running tests, it might be different. Even better from my POV would be for me to work just on the next release, and for someone else to pick up fixes from the branch I work on, back-port them to the previous stable release, do the tests, and do a patch release.

                              Duet WiFi hardware designer and firmware engineer
                              Please do not ask me for Duet support via PM or email, use the forum
                              http://www.escher3d.com, https://miscsolutions.wordpress.com

                              Phaedruxundefined 1 Reply Last reply Reply Quote 2
                              • Phaedruxundefined
                                Phaedrux Moderator @dc42
                                last edited by

                                @dc42 said in RepRapFirmware 3.0RC1 released:

                                Even better from my POV would be for me to work just on the next release, and for someone else to pick up fixes from the branch I work on, back-port them to the previous stable release, do the tests, and do a patch release.

                                Perfect, when is your new clone being decanted?

                                Z-Bot CoreXY Build | Thingiverse Profile

                                gtj0undefined 1 Reply Last reply Reply Quote 0
                                • gtj0undefined
                                  gtj0
                                  last edited by

                                  Yep. There is NO "right" way. It's all about what works for specific projects, community participation levels, etc. When you're only one person you have to budget your time accordingly. The more time you spend on admin, the less you can spend on real work. Making it easier for folks to contribute both code and time can help but even that takes time in the short term.

                                  One thing that can help in the really short term with little effort is to create a new category in the forum specifically for reporting bugs, regardless of whether it's a DSF or RRF bug. A user should triage their own issue in one of the other categories by asking for help first but if they really think it's a bug, report it in that new category. I'm still confused about where I should report bugs for which components. 🙂

                                  Danalundefined 1 Reply Last reply Reply Quote 0
                                  • gtj0undefined
                                    gtj0 @Phaedrux
                                    last edited by

                                    @Phaedrux said in RepRapFirmware 3.0RC1 released:

                                    @dc42 said in RepRapFirmware 3.0RC1 released:

                                    Even better from my POV would be for me to work just on the next release, and for someone else to pick up fixes from the branch I work on, back-port them to the previous stable release, do the tests, and do a patch release.

                                    Perfect, when is your new clone being decanted?

                                    He needs a few unpaid interns as part of a work/study program. It might actually be pretty attractive to someone because he deals with both hardware and software design in a growing technology.

                                    1 Reply Last reply Reply Quote 0
                                    • Danalundefined
                                      Danal @gtj0
                                      last edited by

                                      @gtj0 said in RepRapFirmware 3.0RC1 released:

                                      One thing that can help in the really short term with little effort is to create a new category in the forum specifically for reporting bugs, regardless of whether it's a DSF or RRF bug. A user should triage their own issue in one of the other categories by asking for help first but if they really think it's a bug, report it in that new category. I'm still confused about where I should report bugs for which components.

                                      Yes, YES, YES, please!

                                      Delta / Kossel printer fanatic

                                      Phaedruxundefined 1 Reply Last reply Reply Quote 0
                                      • Phaedruxundefined
                                        Phaedrux Moderator @Danal
                                        last edited by

                                        @Danal said in RepRapFirmware 3.0RC1 released:

                                        @gtj0 said in RepRapFirmware 3.0RC1 released:

                                        One thing that can help in the really short term with little effort is to create a new category in the forum specifically for reporting bugs, regardless of whether it's a DSF or RRF bug. A user should triage their own issue in one of the other categories by asking for help first but if they really think it's a bug, report it in that new category. I'm still confused about where I should report bugs for which components.

                                        Yes, YES, YES, please!

                                        The issue with this is that the average user is not really savvy enough to determine what is a bug and what is a configuration issue and typically just assume something must be a bug.

                                        I would think that users savvy enough to be looking through the code should report the actual bug via github, but that may actually be more work for DC42 than it just being reported on the forum.

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        gtj0undefined A Former User? dc42undefined 3 Replies Last reply Reply Quote 0
                                        • gtj0undefined
                                          gtj0 @Phaedrux
                                          last edited by

                                          @Phaedrux said in RepRapFirmware 3.0RC1 released:

                                          @Danal said in RepRapFirmware 3.0RC1 released:

                                          @gtj0 said in RepRapFirmware 3.0RC1 released:

                                          One thing that can help in the really short term with little effort is to create a new category in the forum specifically for reporting bugs, regardless of whether it's a DSF or RRF bug. A user should triage their own issue in one of the other categories by asking for help first but if they really think it's a bug, report it in that new category. I'm still confused about where I should report bugs for which components.

                                          Yes, YES, YES, please!

                                          The issue with this is that the average user is not really savvy enough to determine what is a bug and what is a configuration issue and typically just assume something must be a bug.

                                          I would think that users savvy enough to be looking through the code should report the actual bug via github, but that may actually be more work for DC42 than it just being reported on the forum.

                                          Yeah a new category isn't a perfect solution but @chrishamm seems to want his issues reported on github but I'm not sure where @dc42 would prefer them. Github is also a problem when an issue crosses over. For instance, I've had a few issues open against DSF but @chrishamm is waiting on @dc42 to do work in RRF. There have been a few the other way around as well.

                                          This is where a common issue tracking system comes into play but that also takes time to set up and administer.

                                          1 Reply Last reply Reply Quote 1
                                          • A Former User?
                                            A Former User @Phaedrux
                                            last edited by

                                            @Phaedrux said in RepRapFirmware 3.0RC1 released:

                                            typically just assume something must be a bug.

                                            thats not how you spell feature! ... but fair point.

                                            And how to version things is not how I'd prefer the limited development effort to be focused no matter how much I'd rather see the major.minor.bugfix scheme adopted.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA