Version 3.0.2 (25428)
1 Nov 2016CodeKit 3!
I've been working on this for 1.5 years and I'm thrilled to release it. It's faster, better, packed with new features: A full build system, SVG optimization, GIF optimization, Babel,js, ESLint and more. For a full list of everything that's new, click here.
All 2.0 Features Stay Unlocked
CodeKit 3 automatically finds and uses your 2.x license. EVERY SINGLE FEATURE that was part of CodeKit 2 will remain unlocked, for free, forever.
You get a 10-day trial of all the new 3.0 features. After that, the 3.0 features will lock until you upgrade your license. You get to upgrade at a 40% discount (or for free if you bought CodeKit 2 in the last 90 days). Just click the link for upgrade pricing on the order form.
- This is an entirely new app.
- You'll see a whole new UI. Don't worry; it's super intuitive.
- Your Projects won't be in the new app automatically. BUT, when you add them to CodeKit 3, all their settings are migrated; you will NOT lose any settings.
- For details about the upgrade process, click here.
- For details about using CodeKit 3, watch the screencasts or read the extensive help pages.
Upgrades From Older Releases
If you're not running CodeKit 2.9.1, attempting to install this update automatically will fail. Head to https://codekitapp.com/ and download the app manually.
What About Version 2?
CodeKit 2 will not receive any more updates. That's because it's FREE for you to update to CodeKit 3 and continue using all the stuff that's in version 2.
Thanks for using my app and for supporting me all these years. It's a privilege to write software for other developers and creators. I look forward to making CodeKit 3 even better for many years to come!download Download
Version 2.9.1 (19142)
20 Oct 2016New
This update adds a few things that will enable a seamless migration to CodeKit 3, which is launching next week. Skipping or procrastinating on this update is a poor life decision.download Download
Version 2.9 (19137)20 September 2016Wait, You're Still Alive?
- Neither myself nor CodeKit has been George-R-R-Martined.
- More on that after a word from our sponsor.
My thanks to Squarespace for sponsoring this episode of my release notes. I have no idea why they decided to be a sponsor—you guys build stunning websites by hand; seems like you don't need Squarespace. ...Maybe their ad department was drunk? Anyway, Squarespace: build it beautiful.*
Where Have You Been?
- Buried in Xcode. And as a result, I'm happy to announce that this is likely the very last release of CodeKit 2.x
- Put down the pitchfork; I have something better:
- Before Apple ships new Macs, that's for sure.
- I'm finishing up a couple edge-cases around transpiling JS files. (Transpiling JS files ALWAYS has more edge cases.) Then I have to update the Help pages and record some screencasts.
What's The Upgrade Story?
- If you own a 2.0 license, you install 3.0 and every single feature that was part of 2.0 stays unlocked. Forever. For free.
- That's why this is the last 2.x release: you can install and use CodeKit 3.0 without paying anything. You even get the swanky new UI, a 2,500% speed increase and a bunch of little features I'm too lazy to lock. Free. No banners, no upgrade prompts. Just a nice, clean app.
- When you decide all the new 3.0 features are worth it, upgrade your license at a huge discount and they're yours.
- Oh, and the migration is seamless. Drop a 2.x project on 3.0 and all your settings come across. All your preferences and New Project Defaults come across on first-run, too.
- And, of course, if you buy a 2.x license now, you'll get a free 3.x license.
So What's In 2.9?
This update provides stability on macOS Sierra. And fixes a few bugs by updating components.
- Less --> 2.7.1
- Uglify.js --> 2.7.3
- Stylus --> 0.52.5
- JSLint --> 31 August 2016 release
- AutoPrefixer --> 6.4.1
- Node --> 6.6.0
*I listen to too many podcasts. Squarespace is not actually a sponsordownload Download
Version 2.8 (19127)10 May 2016New
- Safari Technology Preview is now an option for the Preview Browser.
- Hired Ramsay Bolton to deliver my totally constructive, friendly, and 100% positive feedback to Apple Developer Relations.
You may need to change the Output Module type for your TypeScript files from commonJS to system after this update, due to a change in the TypeScript compiler.
So I've been working on something. You might be interested: https://incident57.com/codekit/3
- Libsass --> 3.3.6
- MultiMarkdown --> 5.2
- Less --> 2.6.1
- Stylus --> 0.54.4
- TypeScript --> 1.8.10
- Jade --> 1.11.0
- Uglify.js --> 2.6.2
- Autoprefixer --> 6.3.6
- Bourbon --> 4.2.7
- Bourbon Neat --> 1.7.4
Version 2.7.1 (19115)11 February 2016Security:
CodeKit uses the open-source Sparkle framework to manage updates. Last week, a large man-in-the-middle vulnerability was found in Sparkle. Prior releases of CodeKit should be unaffected because all updates are delivered over SSL. Nevertheless, this release includes a new, fixed version of Sparkle (1.13.1).
The original CodeKit 2.7 release contained Libsass 3.3.3, which had a critical regression that broke Sass compiling for many people. Version 2.7.1 returns to Libsass 3.3.2 until the Libsass team fixes the problem. Ask me how many emails I've gotten in the last 5 hours.
- Sass --> 3.4.21
- Autoprefixer --> 6.3.1
- Bower --> 1.7.7
- Less --> 2.6
- Stylus --> 0.53.0
- TypeScript --> 1.7.5 (new ES6 Module type option)
- Susy --> 2.2.12
- Haml --> 4.0.7
- Node --> 4.3.0
- JSLint --> 7 February 2016 Release
I Can Haz New Features?
You probably missed my tweet at Christmas, so I'll just leave this here:download Download
Version 2.6.1 (19102)20 November 2015Foundation 6:
- Foundation 6, which launched today, is now built in!
- Installing it is super complicated: File > New Foundation Project
- The old Foundation 5 templates are still available, but you should not use them. They're "soft-deprecated" by Zurb. Version 6 is way better!
This update brings Libsass to 99% feature parity with the Ruby Sass compiler. It contains hundreds of fixes and makes Libsass about 50% faster than it already was. If you're not using Libsass at this point, you're doing it wrong.
- An issue where OS X incorrectly reported CodeKit as damaged and unable to run for some users.
- An issue introduced in version 2.6 where Nib did not work with Stylus.
- An issue introduced in version 2.6 where the Sass-globbing plugin went nuts.
- An issue where The Walking Dead writers maybe killed a major character at the end of an episode, then did not reveal his fate in the next episode or the episode after that and the writers themselves were not killed.
- Markdown --> MultiMarkdown 5.0
- Jade --> 1.11.0
- JSLint --> 20 Oct 2015
- Uglify --> 2.6.1
- AutoPrefixer --> 6.1.0
- Bourbon --> 4.2.6
- CoffeeLint --> 1.14.0
- Libsass --> 3.3.2
- Bless --> 3.0.3
Version 2.5.1 (19076)16 October 2015Fixes:
- On El Capitan, dragging a folder onto the window would not work in some instances. It now does.
- In BBEdit, certain file icons caused choppy scrolling. That is no longer the case.
- When setting an output path for a file, the path sometimes erroneously re-started at /Users/ if your filesystem had corruption. This will no longer happen. Apple fixed the corruption issue in 10.11, so this affects only those on 10.10 and below.
- An issue where certain http downloads were rejected on El Capitan.
- An issue where Autoprefixer whined about something being deprecated.
- In some edge cases, sending Matt Damon into space results in unpredictable behavior. This update addresses the issue by no longer sending Matt Damon into space.
This release brings TypeScript 1.6.2, which is notable for a few reasons:
- TypeScript now supports JSX and React with the new *.tsx file extension.
- There are two new options: module resolution and JSX handling. If you work with TypeScript, you should check the docs and make sure these are set correctly for your project.
- There are some backwards-incompatible changes. Read the TypeScript blog for more information.
- Less --> 2.5.3
- Sass --> 3.4.19
- Stylus --> 0.52.4
- CoffeeScript --> 1.10
- TypeScript --> 1.6.2
- Uglify --> 2.5
- Autoprefixer --> 6.0.3
- Bourbon --> 4.2.5
- Node --> Not 4.0 because Aaron said it screwed everything up.
Version 2.4 (19051)10 August 2015
A nice little maintenance update for the dog days of summer.
- Variables in Kit files can now be set to nil: <!-- $myVar = nil -->
- When nil, a variable is essentially a no-op; nothing is put in its place in the final HTML output.
- It's still an error to have undefined variables; they must be something or nil.
- This makes it easy to do stuff like active classes on nav menu items, etc.
Doug Crockford recently overhauled JSLint to be less Donald Trump-ish. Most of the old options are gone and only a few remain. This release includes the new JSLint and you might actually like it because it will no longer find 4,567 errors in a 25-line file.
- Libsass --> 3.2.5
- Sass --> 3.2.16
- Less --> 2.5.1
- Stylus --> 0.52.0
- CoffeeScript --> 1.9.3
- Slim --> 3.0.6
- Windows --> 10
- Jade --> 1.11.0
- TypeScript --> 1.5.3
- Uglify --> 2.4.24
- Autoprefixer --> 5.2
- Node --> 12.7
And finally, I'll just add this: it's going to be a crazy fall.
Version 2.3.10 (19033)26 May 2015Analytics:
- CodeKit now reports anonymous analytics such as which version of the app and OS X you're running.
- You can turn this off in Preferences and I will never collect any identifying information.
- This data will help me make better decisions about the app, like when I can drop support for Mavericks (soon).
- Plus, the hipsters won't let you into any of the cool bars in San Francisco if you don't have analytics.
Fixes and Changes:
- Fixed: an issue introduced in 2.3.9 where certain config.codekit files could crash the app.
- The FSEvents fix is even more refined.
Version 2.3.9 (19022)21 May 2015The FSEvents bug is DEAD.
- What this means: auto-compiling will never stop working again.
- Apple's proposed fix in the last update did not work.
- Fortunately, a bunch of people working together found a workaround that DOES fix this OS X bug.
- Andrey Tarantsov deserves a huge thanks for writing the actual workaround. And an Apple Engineer named Kevin Elliott gave me the critical info we needed to write that workaround.
- If you're curious, a full writeup of the issue is available here.
- The "Remove Whitespace" output style for Less files is no longer supported by the Less compiler. It has been removed. Files that used this setting will automatically be set to "Compressed" output.
- Libsass has been updated to version 16.7.1, which will be released in November, 2028.
- To get this, I had to send Matthew McConaughey through a blackhole. He missed his daughter's entire life. I hope you're happy, Libsass. This is what happens when you try to update more frequently than me.
- To preserve the stability of the spacetime-continuum, the About Window refers to this version as Libsass 3.2.4
Other Component Updates:
- Stylus --> 0.51.1
- Uglify.js --> 2.4.23
- CoffeeLint --> 1.9.6
- Bourbon --> 4.2.3
- Node --> 0.12.3
Version 2.3.8 (18966)5 May 2015The FSEvents Bug: Killed. Maybe.
So you know how CodeKit sometimes can't see file-changes because of a bug in Apple's FSEvents API? I've spent five days discussing this with Apple Engineering. They've given me a fix, but they're not completely sure it's going to work. (So...kinda like WiFi in Yosemite.) This update has the fix in it.
If you still find a folder that's not responding to file-changes, quit and relaunch CodeKit. If that doesn't fix it, please contact me so I can berate tell Apple.
- The Assets area has been tweaked to show more information about components
- You can now search by the git:// address of a component, as well as by owner, URL, keyword, name and description.
- The 'All Components' tab now lists literally every component you can possibly install with Bower—dead or alive. Some of the ones that 404 are actually, magically, still installable. (Previously, I pruned the 404-ed components.)
- You'll see lightning bolts next to some components. These are components that are registered with Bower, but are NOT in the online search results at bower.io/search. Many of these components are dead and will fail to install. Many are not. Good luck!
- Compiling a Sass file with lots of warnings could cause the Compass compiler to hang and never finish. This is no longer true.
This update includes Libsass 3.2.2, which was released 15 hours after CodeKit 2.3.7 which was released 15 hours after Libsass 3.2.1 which was released 15 hours after CodeKit 3.2.6 which was released 15 hours after Libsass 3.2. See you in 15 hours.
And, of course, there's STILL all the stuff from those three updates last week:
Version 2.3.7 (18917)29 April 2015Libsass 3.2.1
- The Libsass team released an update to the update they released yesterday.
- It has some really important fixes, including one for @import url(...) problems introduced in Libsass 3.2
- The CodeKit team released an update to the update they released yesterday to the update they released the day before that.
- *Cracks Knuckles* Bring it, Libsass. This isn't the Mac App Store; I can do this all week.
This update also brings support for refreshing stylesheets that are included through HTML5 Imports and makes browser refreshing compatible with WebComponentsJS's ShadowDOM Polyfills.
And, of course, there's STILL all the stuff from the 2.3.6 and 2.3.1 updates, 48 hours ago:
Version 2.3.6 (18911)28 April 201573% Faster
- Large projects now refresh about 73% faster.
- My example project has 9,500 files. It used to take 15.1 seconds to refresh. It now takes 3.9.
- The Libsass team released the final version of Libsass 3.2 about 15 hours after my last update.
- I released a new version of CodeKit about 15 hours after the Libsass team's last update.
- Your move, Libsass.
And, of course, there's all the stuff from the 2.3.1 update, yesterday:
Version 2.3.1 (18904)27 April 2015
Beyoncé was spotted using CodeKit Edition at Coachella. Eat it, Apple Watch.
- CodeKit has switched from the Discount Markdown compiler to MultiMarkdown!
- This brings a ton of features for Markdown, including the ability to import MD files into each other.
- If you use Markdown in CodeKit, you'll want to check the file's settings after updating; none of the old options exist any more.
- For full details, see this help page.
NEW: JSON Language Support
- You can now minify and alphabetize JSON files.
- This is opt-in; you have to turn on processing for JSON files in your project. By default, CodeKit won't do anything when you save a JSON file because most of them probably aren't meant to be processed.
- For full details, see this help page.
NEW: Apple Watch Support
- Because of course Apple Watch Support.
- Success messages will continue to be logged to the CodeKit window.
- Error messages will now be logged only to your Apple Watch Edition.
- The line number of the syntax error is indicated by haptic feedback. Simply count the number of pulses on your wrist.
Other Interesting Improvements:
- The HTTP verbs DELETE and PUT are now supported. You'll still need an external server, but CodeKit will now proxy these requests correctly.
- There is now an "Open With" command if you right-click a file in the list. Works like every "Open With" menu since the dawn of time.
- Literate CoffeeScript is now fully supported. Note: you cannot combine *.litcoffee files with regular Coffee or JS files, but you can combine litcoffee files with each other.
- You can now compile *.sass files with Libsass.
- If your project has a 'bower.json' file, it should now be updated correctly when you install assets.
- Bash Hooks can now get a list of all the files that CodeKit processed and created through the special environment variables CK_INPUT_PATHS and CK_OUTPUT_PATHS.
- For full details, see this help page.
Stuff you probably don't care about:
- The Inspector Panel is now scrollable. Lots of new options coming soon, so these had to go scrollable to fit everything I'm working on.
- The Output Path section of the Inspector Panel has been tweaked for clarity.
- Kayne West
- Kit files in a subfolder of a CodeKit Framework were not found for import linking. That sucked. Let's not do that anymore.
- TypeScript error messages stopped being displayed in the log. You make ONE joke about Bill Gates on Twitter, and suddenly all the Microsoft stuff stops working in your app.
- If your DOM is really complex, Browser Sync could fire events on the wrong element. This is no longer the case.
- Clicking 'Apply' while editing the AutoPrefixer Browser String in Project Settings will no longer discard your edits.
- The 'Pause File-Watching' menu items now update their titles correctly when file-watching is, in fact, paused.
- Libsass --> 3.1 Beta 6 (TONS of fixes, including support for all output styles)
- Sass --> 3.4.13
- Less --> 2.5.0 (source maps now work with compressed output!)
- Stylus --> 0.50.0
- Autoprefixer --> 5.1.1
- Uglify.js --> 2.4.20 (adds keep_fnames & bare-returns options)
- CoffeeScript --> 1.9.2
- CoffeeLint --> 1.9.4
- JSHint --> 2.7 (adds futurehostile, varstmt & nocomma options)
- Bourbon --> 4.2.2 (now the same version for both Ruby Sass and Libsass!)
- Bourbon Neat --> 1.7.2
- Bower --> 1.4.1
- Node --> 0.12.2
After releasing 2.3 on Friday, some folks pointed out some bugs that I needed to fix quickly:
- The Sass Decimal Precision dropdown in Project Settings now works again.
- The "check for updates" command no longer worked correctly
- Libsass always generated source maps, even when you turned them off.
Version 2.2 (18493)24 January 2015
Here's what I've been working on for the past two months:
NEW FEATURE: Browser Sync
- When previewing your website on multiple devices, whatever you do on one device is mirrored to all others.
- It's pretty much magic.
- You configure it in Preferences > Browsers.
- It's ON by default, but if your network is slow or congested, you should turn it off.
- For full details, see this help page.
- No, CodeKit does not use the Node.js BrowserSync project; this is totally custom.
- Files in CodeKit Frameworks can now import files in other CodeKit Frameworks. This is a terrible idea that's sure to end both your sanity and the human race, but some Guy wanted it.
- The "default preview browser" preference has been moved from the General tab to the new Browsers tab.
- You can choose the output format for Slim files: HTML, XHTML or XML.
- CodeKit's browser injection script no longer pollutes the global scope with so many variables.
- Sometimes, file output paths would magically change to root-relative paths (/Volumes/Macintosh HD/...) that were totally not correct. This was a terrible feature; it has been removed.
- (It took a while because understanding the relationship between HFS+ filesystem paths and POSIX file system paths requires hallucinogens and a spirit guide.)
- On some networks (especially VPNs), CodeKit would beachball while waiting for the network to return an address. F*** beachballs.
- The Server Status was not displayed correctly when the server automatically restarts after your network connection changes. That no longer happens.
- The "replace components" output path option would occasionally produce incorrect output paths. That no longer happens.
- Hooks that run utilities installed in /usr/local/bin (like Grunt) will now work correctly.
- The bundled version of Git is updated to 2.2.1 to close a zero-day exploit discovered in Git a couple weeks ago.
- The entry for Modernizr in the Assets list is updated to reflect that project's new location.
- TypeScript's <reference path='...' /> syntax is now fully supported.
- The old way of combining TypeScript files (@codekit-prepend/append) has been removed.
- After updating, you'll need to manually change your TypeScript files to use the official syntax; all existing links based on the old append/prepend statements will be destroyed.
- Libsass --> 3.1.0 (TONS of fixes)
- Sass --> 3.4.10
- Less --> 2.2.0
- Compass --> 1.0.3
- Autoprefixer --> 5.0
- Uglify.js --> 2.4.16 (adds drop_console, pure_getters, keep_fargs & negate_iife options)
- CoffeeLint --> 1.8.1 (adds spacing_after_commas, ensure_comprehensions & could_you_make_your_option_names_any_longer options)
- JSHint --> 2.6
- TypeScript --> 1.4.1
- Jade --> 1.9.1
- Bourbon --> 4.1.1 (for Ruby Sass) & 3.2.4 (for Libsass)
- Bourbon Neat --> 1.7.1
- Susy --> 2.2.1
- Node --> 0.10.35
Version 2.1.9 (18270)10 November 2014
This is a huge release with lots of changes. Let's break them down by section.
- NEW: Autoprefixer and Bless are now (finally!) available in Compass projects.
- NEW: Source Maps are now available in Compass projects.
- CHANGED: the Output Style, Debug Style, Decimal Precision and Source Map options for Sass files in a Compass project are now configured in CodeKit's UI. The values for these options in the config.rb file will be ignored.
- Output paths for Sass files in a Compass project must still be set in the config.rb file because Compass does not have an API that lets me override those.
- Other items in the config.rb file such as required libraries, extra Ruby code to run, etc. are still honored. Only the "compiling options" have moved to CodeKit's UI.
- For the reasoning behind these changes, see the help page.
- NOTE: when you open existing Compass projects in this version of CodeKit for the first time, you must verify that the compiling settings in the UI are what you want them to be. They will not automatically match the settings in the project's config.rb file.
- Libsass has been updated to version 3.0.2
- This is a MASSIVE change that brings Libsass much closer to full Sass compatibility.
- NOTE: if you use Zurb Foundation, you MUST update Foundation to the latest release (5.4.7). Older versions of Foundation do not support the current Sass syntax and will fail to compile. Use the 'Assets' tab in CodeKit to update Foundation.
- OS X's Notification Center done got stupider in Yosemite. If more than about 8 notifications are posted in quick succession, it just shows nothing. (In Mavericks, they were combined into one notification.) This can lead you to believe that CodeKit is not working when, in fact, it is. This update addresses the problem by posting a single notification per group of files compiled rather than one notification for each file.
- More safety checks: if the Ruby environment on your Mac encounters a problem that makes it unstable, this can no longer crash CodeKit.
- Firefox Developer Edition is now available as a Preview Browser. And yes, that browser just came out today.
- The Bonjour Preview Address is now more reliable on Yosemite.
- Some text was blurry on Yosemite. That is no longer the case.
- The oldest bug in CodeKit's history — intermittent overlapping text in the log view — has been fixed.
- Clicking the preview button when CodeKit's internal server is not running will no longer cause a crash.
- Clicking "Open Website" on a Bower asset that has no website URL defined now shows an intelligent alert message.
- The Server popover no longer erroneously reports the Internal Server as "stopped" when it's actually starting up for the first time after the app is launched.
- Sass --> 3.4.7
- Stylus --> 0.49.3
- JSHint --> 2.5.10
- CoffeeLint --> 1.6.1
- Bourbon Neat --> 1.7.0
- Everyone who installs this update between now and December will be automatically entered to win Drew Wilson's new Retina 5K iMac.
- It would be best if we did not tell Drew about this.
Version 2.1.8 (18041)18 October 2014Hotfix:
I'm re-releasing 2.1.8 to correct an issue where include statements did not work with Slim 2.1 and an issue where Frameworks did not remember settings. Plus, there's now a CodeKit plugin for Sublime Text available. Was there a bug in the original 2.1.8 release? Yes. Did it stop 40,000 iPhone 6's from making phone calls? No. We'll mark that a win.
Original 2.1.8 Changes:
- NEW: CodeKit now supports AppleScript! This enables editor plugins like the one below. See https://incident57.com/codekit/help.html#applescript for examples and details.
- CHANGED: CodeKit now reloads stylesheets of all media types. Previously, any stylesheet containing a print type was skipped.
- CHANGED: Support for the latest version of Google Web Starter Kit
- FIXED: Scroll position is now restored only when a full-page reload occurs. Previously, scroll position was incorrectly set while navigating links.
- FIXED: an issue that made it impossible to re-select "none" for "Debug Style" while inspecting a Sass file
- FIXED: the bower_components subpath is now settable as a new-project-default
- FIXED: an edge-case potential crash if a folder's name matched an expected file's name (e.g. "_main.scss")
- FIXED: an issue where files in disabled frameworks incorrectly appeared in "linked files" lists
- More Yosemite refinements, including support for dark menubar mode
- Stylus updated --> 0.49.2
- Haml updated --> 4.0.5
- Slim updated --> 2.1.0
- Bourbon Neat updated --> 1.7.0rc
Use Coda? Me too. Wish Coda would automatically launch CodeKit and add projects to the app as needed? Me too. So I made that happen. Download the new CodeKit Plugin For Coda and CodeKit will automatically launch itself and add project folders in the background as you work in Coda.
Use a different editor? Check out the new AppleScript APIs and the Coda Plugin Source Code to see how I did it. Make a plugin for your editor of choice and email me so I can feature it! Also: first person to find a bug in my source code wins a free CodeKit license. First person to email me about how if statements should have braces on the same line and I should really be using tabs instead of spaces...wins a 4,389 word email about proper coding style.
Keep using Libsass to compile Sass files in a Zurb Foundation project because the latest Ruby Sass compiler (3.4.5) is not yet supported by Foundation. This should clear up in the next few weeks. See the link in the 2.1.7 release notes, below, for more information.
Version 2.1.7 (17945)2 October 2014
- The default global shortcut to toggle file-watching is now command + option + control + /. (It's the three keys to the left of the spacebar plus a forward slash like a // comment.) The previous default shortcut conflicted with several IDEs.
- You can now customize this shortcut in the preferences window.
- FIXED: An issue introduced in the last update that broke drag/drop links between CoffeeScript files.
- FIXED: CoffeeLint settings are now recorded correctly in the config.codekit file, so they'll stick around.
- FIXED: An issue that could cause CodeKit to bend if run from your pocket.
If you use Zurb Foundation, you need to read this thread about the current state of Sass: https://github.com/bdkjones/codekit2/issues/443. There are a few edits you need to make to the Compass config.rb file after creating a new Foundation project in CodeKit or it won't compile. If you use Libsass to compile your Sass files, you're unaffected.
TL;DR --> Use Libsass to compile Sass files in Foundation projects until you see an 'all clear' message here.
Version 2.1.6 (17908)24 September 2014
- NEW: You can now hide CodeKit's dock icon and use the app from the status bar only. Switch between the two states (or use both) without restarting the app. See the preferences window.
- NEW: Added a global keyboard shortcut to toggle CodeKit's file-watching. Hit command + option + control + / in ANY app and CodeKit will ignore all changes in all projects until you hit the shortcut again. PERFECT for just before Git pulls/switches! (Pro-tip: to remember the shortcut, think of the slash as the // comment delimiter. Hit the two keys to the right of the spacebar, plus a comment.) The pause command is also available in the File menu.
- NEW: include statements are now supported in Slim files. See the help page for details.
- NEW: The project list can now be sorted alphabetically.
- FIXED: Import links created via drag/drop will no longer be lost when you refresh a project or share it with teammates.
- SECURITY: CodeKit now periodically verifies that its binary has not been tampered with. This is especially important if you use Hooks; you don't want a compromised app running random code on your Mac. Plus, the L33T H4XX0R5 from the torrent sites need something to keep them busy.
- The File menu's "Preview in Browser" command now uses the browser you specify in Preferences rather than the system default.
- The Status Bar menu has been expanded so that all app features are available when the dock icon is hidden.
- Resolved several UI issues for Yosemite.
- From this release onwards, if the app's data file was created by a newer version of CodeKit than the one you're running or if that file is corrupt, you'll see an option to perform a "safe start" when the app launches. Previously, you would see a cryptic "cannot initialize store" message.
- The default Sass decimal precision for new projects has been increased from 5 to 10 digits. (Assuming you have not previously customized this yourself.)
- Sass updated --> 3.4.5
- Less updated --> 1.7.5
- Stylus updated --> 0.49.0
- Autoprefixer updated --> 3.1
- Jeet updated --> 6.1.2
- Jade updated --> 1.7.0
- JSHint updated --> 2.5.6
- Node.js updated --> 0.10.32
- This release contains zero U2 albums.
Version 2.1.5 (17756)5 September 2014
- Sass updated to 3.4.3 (which was released yesterday, right after the CodeKit update). This resolves several bugs in Sass.
- WARNING: The current release of Zurb Foundation is broken when compiling with Sass 3.4+. Fortunately, the fix is very easy. See this thread for the one-line change to make.
- Sass deprecated the old behavior back at the start of 2014 but Zurb still hasn't updated their code.
- In related news, I nominate the Zurb Foundation team for the ALS Ice Bucket Challenge.
Version 2.1.4 (17753)4 September 2014
- NEW: Source maps are now available for Stylus.
- NEW: Jeet (a cool grid system that supports both Sass and Stylus) is now built-in. See the help page for details. Or just add @import 'jeet'; to the top of your stylesheet.
- CHANGED: "node_modules" folders are now skipped by default for new projects
- CHANGED: separator comments have been removed from concatenated JS and Coffee files
- CHANGED: the live-reloading script is now inlined in <head>. This makes the preview server a hair faster and eliminates an issue for one guy who is quite the persistent emailer.
- FIXED: under rare conditions, an import statement in a *.sass file that targets a *.scss file was not detected correctly.
- FIXED: links on the "no index page" now properly strip query parameters from their URLs so that the links actually work.
- The update-checker has been updated.
- Bower has been updated to 1.3.9, resolving several edge-case issues installing assets
- Sass updated: 3.4.2
- Stylus updated: 0.48.1
- Jade updated: 1.6.0
- Compass updated: 1.0.1
- CoffeeScript updated: 1.8
- JSHint updated: 2.5.4
- CoffeeLint updated: 1.6.0
- Autoprefixer updated: 3.0.0
- Bourbon Neat updated: 1.7.0pre
Version 2.1.3 (17682)30 July 2014
- FIXED: Excessive "Could Not Start HTTP Server" alerts no longer appear. When your network connection status changes (e.g. your Mac goes to sleep), the server now updates without restarting itself.
- FIXED: Android and Windows devices no longer infinitely refresh every 5 seconds.
- NOT FIXED: Some of you use Android.
- CHANGED: The self-healing feature introduced in the last update has been removed. See the discussion below.
Discussion: I tested the self-healing feature on a strong, fast WiFi network. If your WiFi is laggy (e.g. a public network), the self-healing routine would repeatedly try to reconnect to CodeKit because the HTML5 websocket protocol has no way to determine if a connection is truly dead or just laggy. In version 2.1.3+, if a page loses touch with CodeKit for 15+ seconds, it will display a banner telling you that the connection is unstable, but it will NOT attempt to automatically reconnect, since the connection may not be dead.
Auto-refresh on remote devices really requires a solid, fast WiFi network to work well. If the network is bogged down with traffic or you're at the edge of the router's signal range, refreshes will probably be slow and/or unreliable.
Version 2.1.2 (17670)24 July 2014
- NEW: Connections between your devices and CodeKit are now self-healing. When a device loses contact with CodeKit, it will try to reconnect every 5 seconds automatically.
- FIXED: Browsers on your Mac will continue working with CodeKit's refresh server no matter what happens to your network connection now.
- FIXED: An issue where files with names like someSass.sass would handle the file extension incorrectly if you omitted it in an @import statement because the extension was also the last part of the file name.
- Better error messages when Foundation, Bower components and Web Starter Kit fail to download correctly.
- More fixes for those of you who will try to run CodeKit on the Yosemite Public Beta. You know who you are.
Version 2.1.1 (17625)18 July 2014
- NEW: @import globbing is now fully supported for Sass, Compass and Stylus files. Writing @import "someFolder/*" will cause all relevant files in that folder to be imported in alphabetical order. CodeKit will correctly mark them as imported and recompile the base file when they change.
- NOTE: Libsass does not support globbing. "Tree globbing" (i.e. writing @import "someFolder/**/*"; to import all files in all subfolders of 'someFolder') is NOT supported anywhere because that's how the world ends.
- FIXED: Uglify.js updated to 2.4.15 to resolve an issue that prevented source maps from being written correctly.
- FIXED: You can now add Hooks in the New Project Defaults area and those Hooks will automatically be added to brand new projects from then on.
- FIXED: The Google Web Starter Kit link now actually works.
- FIXED: If you import files with periods in their names like @import "somefile.colors"; and omit the extension (because you like to live dangerously), CodeKit will now try to guess what you meant and link files correctly, instead of assuming '.colors' is the extension. (If you use file names with dots in them, you should never omit the extension.)
- FIXED: Deleting the config.codekit file in a project while it's in CodeKit will no longer cause that project's settings to warp back to your New Project Default values.
Version 2.1 (17580)15 July 2014
For lo, on the sixth day St. Ive descended from on high and said unto the masses, "Abandon thy wicked ways my brothers and sisters. Let not thy elements have bevel nor depth nor gradient. Walk not in the drop shadows of thy forebearers, but be flat and translucent in all thy ways that you may know paradise." And the masses rejoiced except one man who said unto St. Ive, "But does not translucency distract, my lord? Surely it is wasteful and ornamental!" And St. Ive looked upon the man and the man was no more.
- NEW: The UI has been completely overhauled for Yosemite. I don't always redesign my apps. But when I do, I redesign them again four months after I launch.
- NEW: Google Web Starter Kit is now built-in. See the help page for details.
- NEW: You can now set all files of a given type to NOT generate output files by default. Open Project Settings, choose a language and see the Output Paths section. (Remember to click the "apply" button if you make changes; output paths for existing files do not change as you alter project settings.)
- NEW: You can now set a default pattern to use for output filenames. Want all your Sass files to compile to "*-awesome.min.css"? Want your Kit files to compile to "*.php" instead of "*.html"? You can do that. Open Project Settings, choose a language and look in the Output Paths section.
- CHANGED: Pressing enter while typing in a Project Settings text field will deselect the text field and save your changes
- CHANGED: The "installed" tab of the Assets area is much improved
- CHANGED: When you save a file that is set to NOT create an output file, CodeKit will now reload your browsers. Previously, it did nothing
- FIXED: The internal server now sets the correct Content-Type HTTP response header for all 983 file extensions recognized by Apache
- FIXED: Text fields in the Project Settings area will no longer magically deselect themselves while you type
- FIXED: Issue where setting an Uglify.js Reserved Names or Define string caused minification to fail
- FIXED: Links on the "no index page" now work correctly once you navigate into a subfolder of that list
- FIXED: Project icons with transparency now always draw with a white background
- FIXED: An issue that caused Kit variable declarations to output extra newlines into compiled files
- FIXED: False warnings about infinite import loops. This warning is now shown only when an actual infinite loop exists
- FIXED: A crash triggered by dragging a folder with exactly 30 characters in its name onto the window. Programming is hard.
- FIXED: An issue where the "replace X part of input path with Y" output path option incorrectly left the input file's name at the end of the path, leading to bad output paths.
- Less updated: 1.7.3
- Sass updated: 3.3.10
- Libsass updated. No longer fails on !global declarations.
- Stylus updated: 0.47.1
- Slim updated: 2.0.3
- Bourbon updated: 4.0.2 for Ruby Sass projects, 3.2.3 for projects using Libsass
- JSLint updated: 8 July 2014 release
- JSHint updated: 2.5.2
- CoffeeLint updated: 1.5.2
- Nib updated: 1.0.3
- Susy updated: 2.1.2
- Uglify.js updated: 2.0.14
- Autoprefixer updated: 2.1
Note: Although the UI has been updated in preparation for Yosemite, you should NOT run CodeKit on OS 10.10 yet. There are several issues that will make your life difficult. These get fixed as Apple eliminates bugs in OS X so I don't worry about testing my apps until Apple ships a Release Candidate build.
Version 2.0.6 (17018)30 May 2014
- NEW: click and hold (or click and drag) the Preview button to select a browser with which to view your project.
- NEW: if your project has no index file, the page that CodeKit displays in your browser now has a directory listing so you can select something else.
- CHANGED: The "Tools" menu has been renamed "Tasks"
- NEW: under the Tasks menu, there is now a command to tell Git to use the https:// protocol instead of git:// when installing components. Use this if you're on a network that blocks the default port for git:// URLs (corporate networks, etc).
- Auto-refreshing now works on pages that have <link> tags outside of the <head> element. (Wordpress is a big offender here.)
- Note: putting link tags outside of the head element is a really bad idea because the browser has to restart its whole rendering process when it encounters the late <link> tag.
- FIXED: custom project icons now display properly in the Projects Sidebar.
- FIXED: the no_unecessary_fat_arrows option on CoffeeLint now works correctly
- FIXED: in Sass files, @import statements without quotes around the file path are now recognized properly.
- FIXED: in the files list, icons no longer disappear when you select a row for a file that's imported into another file.
- FIXED: in Kit files that use two variables in a line like this: href='http://<!--$someVar-->/folder/<!--$otherVar-->, the second variable will now be handled correctly. Previously, it went unprocessed because no space/newline existed between special comments.
- FIXED: the overlay that appears when you drag a folder onto the window now displays non-Latin characters correctly.
- Note: as a result of the above, Kit variables can no longer contain the string "-->".
- CHANGED: It's no longer possible to enable Libsass for *.sass files. (Libsass does not support Sass's indented syntax.) Had this feature been implemented sooner, the developer of CodeKit would not have wasted 25 minutes of his life trying to figure out why a damn Sass file wouldn't compile.
- The Server popover has undergone a redesign in preparation for cool stuff to come.
And now, it's time for "Minor Differences: 2015 Automobiles Edition":
Version 2.0.5 (16921)12 May 2014
- NEW: Custom project icons. If your project has 'apple-touch-icon.png', '/images/apple-touch-icon.png' or 'img/apple-touch-icon.png', that image will be the icon when you add the project to CodeKit for the first time. For existing projects, right-click any image in the file list to set it as the icon.
- FIXED: Edge-case issue when using an external server for a project that could break browser-refreshing.
- FIXED: Hooks will no longer cause crashes on OS 10.8.5.
- FIXED: The "conditions" editor in the Hooks section of the Project Settings area now always shows friendly text descriptions.
- Sass updated to 3.3.7
- Stylus updated to 0.44.0
- JSHint updated to 2.5.0 (Several options were removed, including the one about trailing whitespace.)
- JSLint updated to 21 April 2014 release
- Bourbon updated to version 4.0.1
- WARNING: Bourbon 4 uses Sass 3.3+ syntax. This means Libsass will NOT work with Bourbon 4+ (yet). Normally, this would make your life difficult. But this isn't "Steve's Shady Mac App" (a.k.a. "Messages"); this is CodeKit. The app will automatically use Bourbon 3.2.1 if your Sass file is set to compile with Libsass.
- WARNING: The above means that if you use Bourbon with Libsass, you need to reference the 3.2.1 Bourbon docs! Also, if you install Bourbon 4's files in your project, you can't use Libsass to compile them.
- Bourbon Neat updated to 1.5.1. This version has feature-parity with Neat 1.6, but is compatible with older Sass syntax (and therefore Libsass).
- CoffeeLint updated to 1.3. New options added.
- TypeScript updated to 1.0.1.
Version 2.0.4 (16903)19 April 2014
The Starks send their regards.
- Susy 2 is now built-in. If you have existing projects that use Susy 1.x, you need to change the @import 'susy'; statement to @import 'susyone'; to continue working with Susy's 1.x syntax.
- Sass updated to 3.3.5
- Stylus updated to 0.43.1
- @require statements are now recognized in Stylus files.
- Uglify.js updated to 2.4.13
- Jade updated to 1.3.1
- Node.js updated to 0.10.26
- Libsass updated to the latest commit from the GitHub repo.
Version 2.0.3 (16895)28 March 2014
First new feature since the 2.0 launch plus some bug fixes.
- New: You can now choose which browser opens when you click 'Preview'. See the Preferences area.
- Fixed: If you set an output path for a file that is outside of the project folder, that output path will now stay put. Previously, it would be incorrectly added to the project folder's path.
- Justified: If you are an Iowa State fan, this update formats your hard disk.
Important: if you want to set output paths outside of your project folder, you'll need to set them one more time after updating to 2.0.3. Also, setting output paths beyond the project folder is not a good idea unless you're sure that project will never be used on a different Mac. Ideally, keep everything in the project folder so that CodeKit can sync the paths across machines.
Version 2.0.2 (16877)21 March 2014
Eliminates a few more issues faster than the NCAA Tournament eliminates Duke.
- Fixed: Bower will now work correctly even if Git is not installed on your machine or is misconfigured.
- Changed: Autoprefixer updated to version 1.1. Fixes an issue where initial source maps from Sass/Less files were mishandled by Autoprefixer.
- Improved: The Bower components list will now download much faster and more reliably, thanks to some tweaks to the app and the CDN that powers my website.
- Go Heels.
Version 2.0.1 (16844)13 March 2014
Eliminates a few issues that cropped up after the initial launch of 2.0 last week.
- Fixed: possible crash when re-enabling disabled projects
- Fixed: memory leak for Hooks that run bash scripts
- Fixed: tool-tip messages on some buttons were incorrect
- Fixed: editing text values for certain JSHint and JSLint options in the "Defaults For New Projects" area no longer causes a crash AND the values are now saved correctly.
- New: clearing the log will now reset the menu bar icon to black
- Changed: Sass updated to the official 3.3.2 release
- Changed: Compass updated to 1.0.0.alpha.19 (should resolve a few Compass-related issues)
- Unfortunate: 4 beta testers were killed during the production of this update
Version 2.0 (16828)4 March 2014
Finally, eh? This is a complete re-write of CodeKit. If you're upgrading, MAKE SURE you watch the "Browser Refreshing" screencast; it's totally different now. Don't be the guy that emails me and asks, "Why isn't CodeKit 2 reloading localhost anymore!?"
- Changed: Everything.
- Sped Up: Everything.
- Note: 2.0 is a new app; it will not overwrite 1.x. Do not run both apps at the same time, but you can quit one and switch to the other if needed.
- Note: 2.0 requires Mac OS 10.8 plus. It will not run on 10.7.
- There may be bugs. I have my laptop all day and I'm ready to help. Bear with me; it's a major launch.
- For every bug that shipped, I kill a beta tester.
CodeKit 2.0 includes pre-release versions of Sass and Compass. There are two known issues with this pre-release of Compass:
- If you add any include paths to your config.rb file in a Compass project, CodeKit cannot tell Compass about resources bundled into the app (Bourbon, Susy, etc.) Compass will fix this soon.
- If you have Sass 3.2 and/or Compass 0.12 installed on your system, you may see an error about a "superclass mismatch for class Literal" when performing any Compass actions in CodeKit. To resolve this, run gem uninstall compass and gem uninstall sass on the command line to remove earlier versions of these gems from your system.
Version 1.9.3 (8403)1 January 2014
Jade updated to 0.35.0. (NOTE: if you want to use includes with Jade, you must install the relevant node packages at the command line. For example, to include Less code in your Jade files, you must install Less through NPM.)
- FIXED: The crash reporter screen no longer randomly shows up on launch when running Mavericks.
- FIXED: Imported/ignored files are dimmed again on Mavericks. (Ask me how long it took to track down THAT little issue.)
- Less updated to version 1.5. New CSS compressor for Less files is astronomically faster.
- Good stuff around the corner. Hang in there.
Version 1.9.2 (8376)23 October 2013
- FIXED: Resolves an issue where Sass, Haml and Slim report errors about non-ASCII characters on Mavericks. (This one wasn't my fault; Apple forgot to specify UTF-8 as the default encoding for the upgraded version of Ruby in 10.9!)
- FIXED: Resolves an issue on Mavericks where GateKeeper falsely reports that the downloaded app bundle is damaged.
Version 1.9 (8348)20 October 2013
- MAVERICKS COMPATIBILITY. Three key things in 10.9:
- One --- it's no longer possible to run the app from only the menu bar. (10.9 changed the whole menu bar API to better support multiple screens, but that made it impossible for a single binary to reliably switch between Dock and Menu "modes".) There's a new option in the preferences to toggle the menu bar icon on and off and you no longer need to restart the app to do it. However, CodeKit will always show in the Dock. This also applies to 10.8 and 10.7.
- Two --- CodeKit does not participate in "App Nap". You WANT CodeKit to stay alive in the background to listen for file changes. (I tested it with App Nap and found delays of up to six seconds between the time you pressed 'save' and the time OS X got around to allowing "napped" CodeKit to wake up and do something.) Luckily, CodeKit isn't very power-hungry to begin with.
- Three --- The WebKit team procrastinates even more than me. WebKit nightlies, as of right now, do not run at all on 10.9. For technical reasons, this means that I cannot currently build a CodeKit binary that includes the code to auto-refresh the WebKit Nightly browser. So, for now, auto-refresh will no longer work for that browser on 10.9, 10.8 or 10.7. When the WebKit team gets their act together, I'll release another update that brings back auto-refresh for WebKit Nightlies. Also, WebKit team: Chrome Canary has been running on 10.9 for months. Just saying.
- A certain Compass dependency was crashing on 10.9, so I removed it. Compass still works fine, but processing sprites may be a tad slower.
- Sass updated to 3.2.12
- Stylus updated to 0.38.0
- Node updated to 0.10.21
- JSHint updated to 2.3.0. New options: 'freeze' and 'notypeof'
- Slim updated to 2.0.1
- JSLint updated to the 22 Sept 2013 release
- Jade updated to 0.35.0. (NOTE: if you want to use includes with Jade, you must install the relevant node packages at the command line. For example, to include Less code in your Jade files, you must install Less through NPM.)
- FIXED: The "Run Bless" checkbox was accidentally removed from the Less options in the previous update. The people responsible for the previous update have been shot.
- Looks like I've run out of decimal points. What to do, what to do...
Version 1.8.1 (8326)11 September 2013
- Resolves an issue where the Susy Compass plugin may not be detected properly in certain projects.
- Note: I've had reports that PNG optimization sometimes fails for folks still on OS 10.7. I'm looking into it. If this affects you, please email me.
- I almost released an update with no issues.
- This is why they don't let me write software for nuclear reactors anymore.
Version 1.8 (8322)4 September 2013
- NEW: Bourbon Neat is now built-in. All you need to do is add @import "bourbon"; @import "neat"; to the top of your main stylesheet. CodeKit will do the rest; there is no need to install any files in your project.
- NEW: Susy support for Compass. Compass projects that use Susy will now simply compile correctly right out of the box. You no longer need to switch CodeKit to an external Compass compiler to use Susy. Again, there's nothing to configure. Just add require "susy" to your Compass configuration file and CodeKit will do the rest.
- FIXED: Compass will now regenerate sprites only when needed, which means compiling in Compass projects that use sprites is much faster.
- Less updated to version 1.4.2
- Sass updated to version 3.2.10
- Stylus updated to version 0.36.1
- JSHint updated to version 2.1.10
- JSLint updated to the 26 August 2013 release
- PNGCrush updated to 1.7.67
- ChunkyPNG and OilyPNG (two Compass dependencies) have been updated to attempt to resolve a crash that's occurring on the 10.9 Mavericks Developer Preview. 10.9 ships with Ruby 2.0 as the default environment and these libraries are currently crashing in Ruby 2.0, which brings down CodeKit itself. Be aware of this issue if you plan to update to 10.9! Compass may not work correctly until the developers of these libraries update them for Ruby 2.0 compatibility.
- Other minor bugfixes
- Captain's Log, Supplemental: I'm not sure who coined the term 'twerking', but if we could find that person and not have them on the planet anymore, that would be great.
Version 1.7.1 (8317)9 July 2013
- Fixes an issue where Less files in CodeKit Frameworks were not found correctly by Less 1.4.1.
- Does not fix season 4 of Arrested Development.
Version 1.7 (8316)8 July 2013
- NEW: Less 1.4.1, with a whole slew of new options. Read the documentation over at lesscss.org for details. NOTE: there are some backwards-incompatible syntax changes in Less 1.4, so your code may need revisions after this update!
- Stylus: updated to 0.33.1
- CoffeeScript: updated to 1.6.3
- Uglify.js: updated to 1.3.5
- JSLint: updated to the 2 July 2013 release
- JSHint: updated to version 2.1.4
- Bourbon: updated to version 3.1.8, which brings new awesomeness. See bourbon.io for details. (Seriously, if you write Sass/Scss and haven't tried Bourbon yet, you're doing it wrong.)
- Slim: updated to version 2.0. (NOTE: if you have really old Slim code, you might find that 2.0 throws some errors because it has backwards-incompatible changes. Time to update your code!)
- Node.js: updated to version 0.10.12
- Jade. Ah yes, Jade: the clingy, needy hipster-girlfriend of compilers. Here's the deal: CodeKit is going to continue to support Jade, but for now you should install Jade at the command line and switch CodeKit to use that external Jade compiler (do this in Preferences > Languages > Jade > Advanced Compiler Settings). The bottom line is that Jade has simply become too unwieldy to continue bundling into CodeKit. Jade requires a bunch of third-party libraries, each of which require other third-party libraries, which require yet *other* third-party libraries and so on. It's become a massive web of complexity. Right now, the built-in version of Jade in CodeKit is frozen at 0.30.0 and if you want to use any "filters" in your Jade files, you'll definitely need to install Jade externally. I hope to return to bundling Jade in 2.0, once I have time to sit down and de-clusterf$@# the project.
- On a happier note, I'm going to need some beta testers in a month or so. I'll be making that announcement on Twitter. So if you'd like to see a shiny "2.0" in the About Window before everyone else AND you don't mind if your Mac becomes sentient and destroys your house AND you'll file a bug report instead of a lawsuit when that happens, follow me on Twitter. End shameless plug.
Version 1.6.2 (8300)23 May 2013
- Component updates:
- Sass --> 3.2.9 (resolves some caching bugs)
- CoffeeScript --> 1.6.2
- Haml --> 4.0....