Shop OBEX P1 Docs P2 Docs Learn Events
PropellerIDE Development Progress — Parallax Forums

PropellerIDE Development Progress

Brett WeirBrett Weir Posts: 288
edited 2015-04-12 02:26 in Propeller 1
Hello everybody,

I've been doing quite a bit of work on PropellerIDE in the last couple of weeks, and I thought I'd share the progress with you and get your feedback before making a more formal release next week.

https://github.com/parallaxinc/PropellerIDE

I have been working to clean up the project, and automating the application lifecycle so that we'll be able to produce new releases more quickly. I have also been working to fully leverage what Qt offers for portability, so that it will be easier to support new platforms going forward.

So without further ado:

* The build system has been completely overhauled. All binaries and installation targets are generated using qmake to automatically handle dependencies.
* There are Windows, Mac, and Debian targets that can be built from a top-level makefile, with all new installers for each.
* The entire build can be driven by the command line without intervention.
* PropellerIDE can now be built on Windows without installing a full POSIX environment.
* The menu bar, tool bar, and icons have been reorganized.
* BSTL and BSTC are now distributed along with PropellerIDE while openspin is developed further.
* A continuous integration server now builds PropellerIDE every time a commit is made to GitHub, which opens up fun possibilities for unit testing.
* Datasheet / Manual links have been added, though they only work on Linux until I can make filesystem links platform-independent.

Those are the main things, but you're free to check the commit logs for the gory details.

I have made the initial results of this work available to try out. This download location is temporary and subject to change. Please have a look and let me know what you think!

http://lamestation.com/downloads/

This is a work in progress and there are plenty more changes on the way. If there is something you'd like to see in PropellerIDE, speak your mind! Check out the issue tracker and tell me what you want to see in PropellerIDE.

https://lamestation.atlassian.net/browse/IDE/

Other than that, have fun!

Comments

  • GadgetoidGadgetoid Posts: 47
    edited 2014-11-30 10:49
    Awesome work, and loving that it's open source and on GitHub. But no Issues tracking?

    I've got basically zero experience with Qt, so I may be barking up the wrong tree, but I've started hacking about with the codebase ( now that I can compile on a Mac, yay ) in order to remove Qt::GlobalColor and replace it with instances of QColor in an effort to gain more flexibility over foreground and background colours in the editor.

    I tend to write code with inverted backdrops, and find Parallax's choice of colours a little bit grating to say the least. I've managed to swap out the hard-coded background section colours, but tweaking the foreground appears to be beyond me- despite gutting and replacing all the GlobalColor with QColor and replacing the default colours in Preferences.cpp with my own, they're simply over-ridden by the defaults.

    When I'm not on a 3G network, I'll fork the repo and publish my "changes" (read: awful hacks) so you can see what I mean. I doubt I'll ever manage to whip up a suitable set of pull-request worthy changes though, and I wouldn't blame you for not prioritising something as inane as syntax highlighting flexibility!

    Cheers!
  • dgatelydgately Posts: 1,630
    edited 2014-11-30 11:08
    Great job, Brett!

    Nice changes to the menus as they make the app really shine for Mac OS... Packaging as a .dmg is nice as well!

    dgately
  • Brett WeirBrett Weir Posts: 288
    edited 2014-11-30 15:07
    Gadgetoid wrote: »
    Awesome work, and loving that it's open source and on GitHub. But no Issues tracking?

    I <3 GitHub and I couldn't think of a better place for it. =P There's tons of issue tracking though! I just use JIRA instead of GitHub Issues because it's vastly more powerful for project management (and free for open source! =P).

    Here's the link again:
    https://lamestation.atlassian.net/browse/IDE/
    Gadgetoid wrote: »
    I've got basically zero experience with Qt, so I may be barking up the wrong tree, but I've started hacking about with the codebase ( now that I can compile on a Mac, yay ) in order to remove Qt::GlobalColor and replace it with instances of QColor in an effort to gain more flexibility over foreground and background colours in the editor.

    I tend to write code with inverted backdrops, and find Parallax's choice of colours a little bit grating to say the least. I've managed to swap out the hard-coded background section colours, but tweaking the foreground appears to be beyond me- despite gutting and replacing all the GlobalColor with QColor and replacing the default colours in Preferences.cpp with my own, they're simply over-ridden by the defaults.

    Ahhh, that's because there's actually already a config-driven highlighter customization mechanism in place! >.< If you look in Edit->Preferences, then select the Highlight tab, you'll find it. So your hard-coded changes are being overwritten once you run the program (a la wrong tree)

    However, there is currently no way to customize the background colors like you said, and it would be really nice if there was a selection of default color schemes to choose from so you can find one closer to what you like without having to create one from scratch.
    Gadgetoid wrote: »
    When I'm not on a 3G network, I'll fork the repo and publish my "changes" (read: awful hacks) so you can see what I mean. I doubt I'll ever manage to whip up a suitable set of pull-request worthy changes though, and I wouldn't blame you for not prioritising something as inane as syntax highlighting flexibility!

    Haha, fear not. If you ever come up with some nice changes, I'd be happy to review them. But usability is very important to me (and I've always liked being able to customize the color scheme on Vim!) so while it's not first on my list, I've created an issue so that it won't be forgotten.

    https://lamestation.atlassian.net/browse/IDE-59

    Thanks for the feedback. :)
  • Brett WeirBrett Weir Posts: 288
    edited 2014-11-30 15:22
    dgately wrote: »
    Great job, Brett!

    Nice changes to the menus as they make the app really shine for Mac OS... Packaging as a .dmg is nice as well!

    dgately

    Thanks, Dennis! I found a great stackoverflow answer about creating a .dmg. :P

    Otherwise, this is my first time packaging for Mac OS, and I have to say, I'm really impressed with the whole app bundle concept. It was surprisingly straightforward to support. =)
  • David BetzDavid Betz Posts: 14,516
    edited 2014-11-30 15:45
    Brett Weir wrote: »
    Hello everybody,

    I've been doing quite a bit of work on PropellerIDE in the last couple of weeks, and I thought I'd share the progress with you and get your feedback before making a more formal release next week.

    https://github.com/parallaxinc/PropellerIDE

    I have been working to clean up the project, and automating the application lifecycle so that we'll be able to produce new releases more quickly. I have also been working to fully leverage what Qt offers for portability, so that it will be easier to support new platforms going forward.

    So without further ado:

    * The build system has been completely overhauled. All binaries and installation targets are generated using qmake to automatically handle dependencies.
    * There are Windows, Mac, and Debian targets that can be built from a top-level makefile, with all new installers for each.
    * The entire build can be driven by the command line without intervention.
    * PropellerIDE can now be built on Windows without installing a full POSIX environment.
    * The menu bar, tool bar, and icons have been reorganized.
    * BSTL and BSTC are now distributed along with PropellerIDE while openspin is developed further.
    * A continuous integration server now builds PropellerIDE every time a commit is made to GitHub, which opens up fun possibilities for unit testing.
    * Datasheet / Manual links have been added, though they only work on Linux until I can make filesystem links platform-independent.

    Those are the main things, but you're free to check the commit logs for the gory details.

    I have made the initial results of this work available to try out. This download location is temporary and subject to change. Please have a look and let me know what you think!

    http://lamestation.com/downloads/

    This is a work in progress and there are plenty more changes on the way. If there is something you'd like to see in PropellerIDE, speak your mind! Check out the issue tracker and tell me what you want to see in PropellerIDE.

    https://lamestation.atlassian.net/browse/IDE/

    Other than that, have fun!
    Great work! Want to help us create a better build system for PropGCC as well?
  • dgatelydgately Posts: 1,630
    edited 2014-11-30 20:23
    Brett Weir wrote: »
    Thanks, Dennis! I found a great stackoverflow answer about creating a .dmg. :P

    Otherwise, this is my first time packaging for Mac OS, and I have to say, I'm really impressed with the whole app bundle concept. It was surprisingly straightforward to support. =)

    Have a link for that stackoverflow article?

    Thanks,
    Dgately
  • dgatelydgately Posts: 1,630
    edited 2014-11-30 20:24
    Brett Weir wrote: »
    Thanks, Dennis! I found a great stackoverflow answer about creating a .dmg. :P

    Otherwise, this is my first time packaging for Mac OS, and I have to say, I'm really impressed with the whole app bundle concept. It was surprisingly straightforward to support. =)

    Have a link for that stackoverflow article?

    Thanks,
    Dgately
  • GadgetoidGadgetoid Posts: 47
    edited 2014-12-01 10:53
    Brett Weir wrote: »
    I
    Haha, fear not. If you ever come up with some nice changes, I'd be happy to review them. But usability is very important to me (and I've always liked being able to customize the color scheme on Vim!) so while it's not first on my list, I've created an issue so that it won't be forgotten.

    Brilliant! Thank you. I'm going to have to give it another punt when I'm less busy- I also like being able to customize vim and incidentally also like how vim accomplishes customisations. I wonder if a similar thing for PropellerIDE would make sense- a built-in folder of colour schemes as files. Certainly a somewhat ambitious and extremely low priority change, but a nice-to-have!
  • Brett WeirBrett Weir Posts: 288
    edited 2014-12-02 07:45
    dgately wrote: »
    Have a link for that stackoverflow article?

    Thanks,
    Dgately

    Hi Dennis, check it out!
    http://stackoverflow.com/questions/96882/how-do-i-create-a-nice-looking-dmg-for-mac-os-x-using-command-line-tools
  • Cluso99Cluso99 Posts: 18,069
    edited 2014-12-04 21:32
    I have just had my first look at v0.19 (labelled as 0.20???)..

    Looks good (although too bright for my liking as noted below). Congrats to all involved. At last the days of PropTool are numbered, and hopefully OpenSpin can shortly replace bst as well.

    Here a few observations...


    1. It would be nice (as Phil mentioned on Ken's thread) to have a combined EEPROM & Terminal command. I would prefer a combined RUN & Terminal command. I would be happy for this just to be an icon if that was easier. (also see 6. below)

    2. The Terminal font is quite large. Any way to make it smaller?

    3. Really need a DTR/RTS checkbox/button to reset the propeller. I use this all the time during testing, so this is a show-stopper for me.

    4. Colors - I find the screen quite brightly colored. I would prefer the background colors of PropTool, or be able to change them.

    5. The Terminal has to be closed to exit back to the PropellerIDE. I normally just change windows (ie click on PropTool to get back to there). I note that closing the Terminal window also loses the terminal screen of data (as expected). In the PropTool, I often go back and forth between the Terminal window and PropTool (looking at my code, and validating what I got on the terminal). ie PropTool's Terminal does not close when it loses focus, and you can return to the Terminal with everything as it was. I note that when going into Terminal from PropellerIDE a reset is issued to the Prop.

    6. Clicking on the Terminal icon, the code is recompiled, the propeller is reset, and the code is reloaded to the prop, and then the Terminal window is activated. ie it is a combination of RUN & Terminal.

    7. I note the Top Object behaviour is different from PropTool. In PropellerIDE, whatever tab has the focus is considered to be the top object. I like this behaviour.

    Postedit
    Windows 7
  • Heater.Heater. Posts: 21,230
    edited 2014-12-04 22:30
    A couple of little issues installing propelleride on my Debian Jessie amd64 box:

    1)

    Installing with :

    $ sudo dpkg -i propelleride-0.20-amd64.deb

    Fails due to a dependency of libftfi1:
    dpkg: dependency problems prevent configuration of propelleride:
     propelleride depends on libftdi1; however:
      Package libftdi1:amd64 is not installed.
    

    This is surprising as I have never had to use libftdi1 to use USB/serial adapters and may not even have an FTDI adapter.

    2)

    But OK I install libftdi1 and try again. Now propelleride installs but does not run:
    $ propelleride 
    propelleride: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory
    
    Hmmm...How come the dependency on libQt5Widgets did not come up with dpkg ?

    OK I install the libQt5Widgets5 package.

    Yay, propelleride starts up!


    3)

    Now the odd part....

    propelleride has no dependency on libfti1 !! It runs just fine without it and ldd does not show it as being required by the propelleride binary.
  • jazzedjazzed Posts: 11,803
    edited 2014-12-04 23:04
    PropellerIDE for linux should be built only with Qt4.x that is available with most linux distributions. If it is being built with Qt5, then it is not something I suggested.

    You can use FTDI chips without libftdi?

    The install procedure is this:

    $ sudo dpkg -i propelleride-0.20-amd64.deb
    $ sudo apt-get install -f

    Using install -f fixes dependencies automatically assuming the package was done right.
  • Heater.Heater. Posts: 21,230
    edited 2014-12-04 23:54
    I don't mind it requiring Qt5. I quite like the idea of moving forward with that. Perhaps it will cause issues with other distros though.

    Certainly you can use FTDI chips without libftdi. I have no idea what libftdi does, I guess it let's you poke around with FTDI adapters vids and pids and whatever extra features they have.

    Probably useful if FTDI's malware driver on Windows had reprogrammed and bricked your adapter for you! :)

    Linux will detect the FTDI adapter and load it's ftdi_sio driver module.

    As it happens here I'm using a non FTDI device anyway.
  • ozpropdevozpropdev Posts: 2,792
    edited 2014-12-05 00:28
    Nice work guys! :)

    Just loaded PropellerIDE on Win7 with no installation issues.
    I have a few observations and suggestions.
    I note a small issue in the PUB/PRI explorer on the left of the IDE, one of the PUB names
    seems to be incomplete. See attached picture.

    I like the fact that PropellerIDE can detect more than 1 propeller attached. Can this feature be expanded
    upon to allow the user to select the target programming port from the detected prop list. This would also
    be useful for the terminal function as well. This saves repeated removal/insertion of USB cables when
    developing multiple prop hardware.


    +1 to Cluso's suggestion on the DTR prop reset feature.

    Thanks again guys.:)

    Edit: Oops! Never mind....
    872 x 357 - 91K
  • kuronekokuroneko Posts: 3,623
    edited 2014-12-05 01:05
    ozpropdev wrote: »
    I note a small issue in the PUB/PRI explorer on the left of the IDE, one of the PUB names
    seems to be incomplete. See attached picture.
    That's already fixed in the trunk/master (IDE-58).
  • FredBlaisFredBlais Posts: 370
    edited 2015-04-09 07:20
    Is there a reason why we can't fill an issue on GitHub for the Propeller IDE ?
  • kuronekokuroneko Posts: 3,623
    edited 2015-04-09 07:24
    FredBlais wrote: »
    Is there a reason why we can't fill an issue on GitHub for the Propeller IDE ?
    It used to be available in the early days but IIRC Brett prefers JIRA so the issue tracker was switched off.
  • evanhevanh Posts: 15,920
    edited 2015-04-12 02:26
    I just bumped into what I think is a PropellerIDE quirk: When running a Prop test program from fresh compile, either as Debug, or as Run with terminal window open, and the Prop program has immediate debug reporting on the comport then at least the first couple of seconds of text does not appear in the terminal window.

    I'm using pre-built PropellerIDE 0.25.1 on Kubuntu 14.04
Sign In or Register to comment.