Hello fellow contributors!
I've made a bunch of changes recently that you should be aware of:
1) Added Tridion 2013 SP1 support, by way of a separate installer and build compilation symbols.
2) Added a new Carbon2 theme to match the new look & feel of 2013 SP1.
3) Created an automated build for both installers that uploads the results to my Google Drive.
4) Fixed a ton of bugs and cleaned up code according to our guidelines.
One code-base
Luckily, very few changes were needed to add 2013 SP1 support; so I decided to drop the 2013 branch in favor of having everything in one code-base.
In cases where you need to have something specific to the new version (i.e. the method signature changed) you can use the TRIDION2013 compilation symbol to implement it.
There's also a Tridion2013 build configuration to go along with it (which sets the compilation symbol on the projects).
Should you need to differentiate between the versions on the client-side, first try to work around it by checking for available features / elements / controls.
For an example of that, have a look at the constructor of
BasePowerTool.js - which checks for the availability of the
UserNotification control (which replaced the Message Center in 2013) as opposed to checking for a specific Tridion version.
If it turns out that this becomes too complicated over time, let's discuss introducing another method.
Test both installers!
What does 2013 SP1 support mean for you? The most important change is that you have to test your changes on both 2011 SP1 and 2013 SP1.
Preferably before you check in the code.
If you don't have the means to do so, please let me know and we will figure something out.
Quite a few bugs were a result of files not being included in the Visual Studio solution and thus not included in the installers.
You aren't going to notice that if you are running it straight out of your sources - so please test using the installer.
You can do so by right-clicking on the PowerTools.Installer project and choosing "Build" and then "Install"; it will uninstall your previous version and install the new one.
CSS file changes
Introducing a new theme meant moving all of the CSS files into the Themes/Carbon folder first (otherwise you cannot overwrite the CSS in the theme).
So if you create a new tool now, you should not place the CSS file next to the rest of the files - but rather create a CSS file in both the /Themes/Carbon and /Themes/Carbon2 folders.
Remember that CSS is often optional (as there's defaults for most things) so you should only add a tool-specific CSS file if you need very specific changes - and then you should only add those specific classes to the CSS.
There was a lot of duplication between the different CSS files, which I have mostly managed to clean up now. Please don't make me do that again! :)
Automated build
As mentioned, I have set up a build server that automatically creates new installers whenever there's a new check-in.
Assuming the build goes correctly, they are uploaded into the
/PowerTools/latest directory of my Google Drive.
The idea is to have a "stable" directory too, where the installers will eventually end up.
I'm thinking if 3 people sign off on a new installer (having tested it on both Tridion versions), we can promote a "latest" installer to "stable".
Let's get organized?
I think those were the most important changes that happened recently.
I'd like for us to get a bit more organized and motivated in the coming year.
I'm thinking of pruning inactive contributors (say, if you haven't checked in anything in a year and don't plan to for a while).
I also suggest having regular meetings (say once a month or every other month) to talk about what has happened recently and what we still need to do to keep the PowerTools awesome :)
Please share your thoughts on any of the above!