My uBitX arrived in the mail today and I found some time tonight to put together a sample of what is possible for developing our uBitX sketch on Github, similar to what Allard has done for the Bitx40. Farhan has indicated that he is looking for volunteers to help integrate patches () and tools like Git, GitHub, and continuous integration can make that job much more manageable for whoever is doing it.
I forked Farhan's afarhan/ubitx Github repository at . As a proof of concept, I merged the two existing pull requests from Farhan's repository. Then I added some configuration for the PlatformIO tool that has been mentioned on this list before (). PlatformIO allows building Arduino sketches from the command line and it reports many more warnings and errors than the Arduino IDE (unused variables, incorrect return types, incorrect type casts, see ). Finally, I added configuration for the Travis-CI.org continuous integration tool. This service is free for open-source projects and watches Github for changes and runs a test suite for the new versions. A tool like this is crucial when welcoming contributions from others because it provides some basic assurances that the submitted code will at least compile. As an example, I configured a test that fails if the Arduino code has trailing whitespace (yuck; ).? You can see here that the build "failed" because there was trailing whitespace in Farhan's code, but another change in Git removed the problem and made the Travis build pass . I just wanted to do this to show what is possible with modern software engineering tools to make it easy and reliable for many people to contribute to the uBitX code. I'd happily welcome Ian Lee's pull request adding further CAT control code for the BitX, or W8TEE's change to actual .cpp files, or improvements to the keyer timing, or who knows what comes next! Then all of us together can be sure that the code meets the (minimal) standards that the community sets out before it gets merged with the "master" branch. In my dream world, Farhan could keep shipping uBitX kits with the basic code from his afarhan/ubitx repository, while all of us together can iterate new features in a ubitx-ng repository. The hope would be that new builders would get a working radio, but the first thing we would encourage them to do is to get the latest and greatest code from ubitx-ng. Like Allard did with the bitx40, we would maintain hardware compatibility with the radio as delivered and people who wanted to make hardware modifications could make further changes in their own repositories. (Although K3NG has shown with his arduino keyer that many different configurations can be supported in one codebase with some additional effort.)
Thanks for reading this far, and I hope, whatever people decide, that uBitx firmware development will be rapid, reliable, long-lived, community-wide, and use modern software engineering tools, for all of our benefit.
-Neil N0FN
|
Looks like a useful
development, Neil. Well done!
Bill VK7MX
On 3/01/2018 5:39 PM, Neil
Martinsen-Burrell wrote:
toggle quoted message
Show quoted text
My uBitX arrived in the mail today and I found some
time tonight to put together a sample of what is possible
for developing our uBitX sketch on Github, similar to what
Allard has done for the Bitx40. Farhan has indicated that
he is looking for volunteers to help integrate patches ()
and tools like Git, GitHub, and continuous integration can
make that job much more manageable for whoever is doing
it.
I forked Farhan's afarhan/ubitx Github repository at .
As a proof of concept, I merged the two existing pull
requests from Farhan's repository. Then I added some
configuration for the PlatformIO tool that has been
mentioned on this list before ().
PlatformIO allows building Arduino sketches from the command
line and it reports many more warnings and errors than the
Arduino IDE (unused variables, incorrect return types,
incorrect type casts, see ).
Finally, I added configuration for the Travis-CI.org
continuous integration tool. This service is free for
open-source projects and watches Github for changes and runs
a test suite for the new versions. A tool like this is
crucial when welcoming contributions from others because it
provides some basic assurances that the submitted code will
at least compile. As an example, I configured a test that
fails if the Arduino code has trailing whitespace (yuck; ).?
You can see here
that the build "failed" because there was trailing
whitespace in Farhan's code, but another change in Git
removed the problem and made the Travis build pass .
I just wanted to do this to show what is possible with modern
software engineering tools to make it easy and reliable for
many people to contribute to the uBitX code. I'd happily
welcome Ian Lee's pull request adding further CAT control code
for the BitX, or W8TEE's change to actual .cpp files, or
improvements to the keyer timing, or who knows what comes
next! Then all of us together can be sure that the code meets
the (minimal) standards that the community sets out before it
gets merged with the "master" branch.
In my dream world, Farhan could keep shipping uBitX kits with
the basic code from his afarhan/ubitx repository, while all of
us together can iterate new features in a ubitx-ng repository.
The hope would be that new builders would get a working radio,
but the first thing we would encourage them to do is to get
the latest and greatest code from ubitx-ng. Like Allard did
with the bitx40, we would maintain hardware compatibility with
the radio as delivered and people who wanted to make hardware
modifications could make further changes in their own
repositories. (Although K3NG has shown with his arduino keyer
that many different configurations can be supported in one
codebase with some additional effort.)
Thanks for reading this far, and I hope, whatever people
decide, that uBitx firmware development will be rapid,
reliable, long-lived, community-wide, and use modern software
engineering tools, for all of our benefit.
-Neil N0FN
|
Neil,
WOW! You did a lot of work, and your approach has convinced me to
overcome my inherent reluctance to 'establishing an account'; I
will get started on PlatformIO.
I agree with your approach and support the effort 100%.
Thank you for your energy and insight.
Regards,
Rod KM6SN
On 01/02/2018 10:39 PM, Neil
Martinsen-Burrell wrote:
toggle quoted message
Show quoted text
My uBitX arrived in the mail today and I found some
time tonight to put together a sample of what is possible
for developing our uBitX sketch on Github, similar to what
Allard has done for the Bitx40. Farhan has indicated that
he is looking for volunteers to help integrate patches ()
and tools like Git, GitHub, and continuous integration can
make that job much more manageable for whoever is doing
it.
I forked Farhan's afarhan/ubitx Github repository at .
As a proof of concept, I merged the two existing pull
requests from Farhan's repository. Then I added some
configuration for the PlatformIO tool that has been
mentioned on this list before ().
PlatformIO allows building Arduino sketches from the command
line and it reports many more warnings and errors than the
Arduino IDE (unused variables, incorrect return types,
incorrect type casts, see ).
Finally, I added configuration for the Travis-CI.org
continuous integration tool. This service is free for
open-source projects and watches Github for changes and runs
a test suite for the new versions. A tool like this is
crucial when welcoming contributions from others because it
provides some basic assurances that the submitted code will
at least compile. As an example, I configured a test that
fails if the Arduino code has trailing whitespace (yuck; ).?
You can see here
that the build "failed" because there was trailing
whitespace in Farhan's code, but another change in Git
removed the problem and made the Travis build pass .
I just wanted to do this to show what is possible with modern
software engineering tools to make it easy and reliable for
many people to contribute to the uBitX code. I'd happily
welcome Ian Lee's pull request adding further CAT control code
for the BitX, or W8TEE's change to actual .cpp files, or
improvements to the keyer timing, or who knows what comes
next! Then all of us together can be sure that the code meets
the (minimal) standards that the community sets out before it
gets merged with the "master" branch.
In my dream world, Farhan could keep shipping uBitX kits with
the basic code from his afarhan/ubitx repository, while all of
us together can iterate new features in a ubitx-ng repository.
The hope would be that new builders would get a working radio,
but the first thing we would encourage them to do is to get
the latest and greatest code from ubitx-ng. Like Allard did
with the bitx40, we would maintain hardware compatibility with
the radio as delivered and people who wanted to make hardware
modifications could make further changes in their own
repositories. (Although K3NG has shown with his arduino keyer
that many different configurations can be supported in one
codebase with some additional effort.)
Thanks for reading this far, and I hope, whatever people
decide, that uBitx firmware development will be rapid,
reliable, long-lived, community-wide, and use modern software
engineering tools, for all of our benefit.
-Neil N0FN
|
Neil, You've got a ticket for a free beer from me.
MAc
I never used Travis before, have to learn...
|
Neil,
Thank you for doing this. I think having a centrally-managed repo for our code is an absolute necessity to maintain the sanity of everyone involved - users and developers!
73 -- K4OSS Charlie Ross
toggle quoted message
Show quoted text
On Wed, Jan 3, 2018, at 01:39, Neil Martinsen-Burrell wrote: My uBitX arrived in the mail today and I found some time tonight to put together a sample of what is possible for developing our uBitX sketch on Github, similar to what Allard has done for the Bitx40. Farhan has indicated that he is looking for volunteers to help integrate patches ( ) and tools like Git, GitHub, and continuous integration can make that job much more manageable for whoever is doing it.
I forked Farhan's afarhan/ubitx Github repository at . As a proof of concept, I merged the two existing pull requests from Farhan's repository. Then I added some configuration for the PlatformIO tool that has been mentioned on this list before ( ). PlatformIO allows building Arduino sketches from the command line and it reports many more warnings and errors than the Arduino IDE (unused variables, incorrect return types, incorrect type casts, see
).
Finally, I added configuration for the Travis-CI.org continuous integration tool. This service is free for open-source projects and watches Github for changes and runs a test suite for the new versions. A tool like this is crucial when welcoming contributions from others because it provides some basic assurances that the submitted code will at least compile. As an example, I configured a test that fails if the Arduino code has trailing whitespace (yuck; ). You can see here that the build "failed" because there was trailing whitespace in Farhan's code, but another change in Git
removed the problem and made the Travis build pass .
I just wanted to do this to show what is possible with modern software engineering tools to make it easy and reliable for many people to contribute to the uBitX code. I'd happily welcome Ian Lee's pull request adding further CAT control code for the BitX, or W8TEE's change to actual .cpp files, or improvements to the keyer timing, or who knows what comes next! Then all of us together can be sure that the code meets the (minimal) standards that the community sets out before it gets merged with the "master" branch.
In my dream world, Farhan could keep shipping uBitX kits with the basic code from his afarhan/ubitx repository, while all of us together can iterate new features in a ubitx-ng repository. The hope would be that new builders would get a working radio, but the first thing we would encourage them to do is to get the latest and greatest code from ubitx-ng. Like Allard did with the bitx40, we would maintain hardware compatibility with the radio as delivered and people who wanted to make hardware modifications could make further changes in their own repositories. (Although K3NG has shown with his arduino keyer that many different configurations can be supported in one codebase with some additional effort.)
Thanks for reading this far, and I hope, whatever people decide, that uBitx firmware development will be rapid, reliable, long-lived, community-wide, and use modern software engineering tools, for all of our benefit.
-Neil N0FN
|
Neil, this looks great! Looking forward to digging into this once I order my ubitx.
toggle quoted message
Show quoted text
On Thu, Jan 4, 2018 at 12:31 PM K4OSS < k4oss@...> wrote: Neil,
Thank you for doing this. I think having a centrally-managed repo for our code is an absolute necessity to maintain the sanity of everyone involved - users and developers!
73
--
K4OSS
Charlie Ross
On Wed, Jan 3, 2018, at 01:39, Neil Martinsen-Burrell wrote:
> My uBitX arrived in the mail today and I found some time tonight to put
> together a sample of what is possible for developing our uBitX sketch on
> Github, similar to what Allard has done for the Bitx40. Farhan has
> indicated that he is looking for volunteers to help integrate patches (
> ) and tools
> like Git, GitHub, and continuous integration can make that job much more
> manageable for whoever is doing it.
>
> I forked Farhan's afarhan/ubitx Github repository at
> . As a proof of concept, I merged the
> two
> existing pull requests from Farhan's repository. Then I added some
> configuration for the PlatformIO tool that has been mentioned on this
> list
> before (
> ).
> PlatformIO allows building Arduino sketches from the command line and it
> reports many more warnings and errors than the Arduino IDE (unused
> variables, incorrect return types, incorrect type casts, see
>
> ).
>
> Finally, I added configuration for the Travis-CI.org continuous
> integration
> tool. This service is free for open-source projects and watches Github
> for
> changes and runs a test suite for the new versions. A tool like this is
> crucial when welcoming contributions from others because it provides
> some
> basic assurances that the submitted code will at least compile. As an
> example, I configured a test that fails if the Arduino code has trailing
> whitespace (yuck;
> ).
> You can see here
> that the build "failed" because there was trailing whitespace in
> Farhan's
> code, but another change in Git
>
> removed the problem and made the Travis build pass
> .
>
> I just wanted to do this to show what is possible with modern software
> engineering tools to make it easy and reliable for many people to
> contribute to the uBitX code. I'd happily welcome Ian Lee's pull request
> adding further CAT control code for the BitX, or W8TEE's change to actual
> .cpp files, or improvements to the keyer timing, or who knows what comes
> next! Then all of us together can be sure that the code meets the (minimal)
> standards that the community sets out before it gets merged with the
> "master" branch.
>
> In my dream world, Farhan could keep shipping uBitX kits with the basic
> code from his afarhan/ubitx repository, while all of us together can
> iterate new features in a ubitx-ng repository. The hope would be that new
> builders would get a working radio, but the first thing we would encourage
> them to do is to get the latest and greatest code from ubitx-ng. Like
> Allard did with the bitx40, we would maintain hardware compatibility with
> the radio as delivered and people who wanted to make hardware modifications
> could make further changes in their own repositories. (Although K3NG has
> shown with his arduino keyer that many different configurations can be
> supported in one codebase with some additional effort.)
>
> Thanks for reading this far, and I hope, whatever people decide, that uBitx
> firmware development will be rapid, reliable, long-lived, community-wide,
> and use modern software engineering tools, for all of our benefit.
>
> -Neil N0FN
-- David K4DBZ Unofficial bitx chatroom:?https://discord.gg/CrHvWFc
|
I've been playing with Visual Studio Code in my day job (Software Engineer) and I see that there is an Arduino plugin for VS Code.? Might be worth looking at.??
I'm not volunteering, my plate is too full already :(? I will be looking at it's basic functionality though
K5KDT Kevin
|
I see that there is an Arduino plugin for VS Code. Might be worth looking at. If this is Visual Micro, I have been using it as my IDE for several years. I really like it as it just seems to me to be a more "real" IDE than the official Arduino IDE. (Probably having been doing software engineering and hardware for 45+ years.) 73 - Mark N1VQW
|