PropellerIDE Development Progress
Brett Weir
Posts: 288
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!
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
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!
Nice changes to the menus as they make the app really shine for Mac OS... Packaging as a .dmg is nice as well!
dgately
I 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/
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.
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.
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
Have a link for that stackoverflow article?
Thanks,
Dgately
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!
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
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
1)
Installing with :
$ sudo dpkg -i propelleride-0.20-amd64.deb
Fails due to a dependency of libftfi1:
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: 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.
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.
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.
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....
I'm using pre-built PropellerIDE 0.25.1 on Kubuntu 14.04