So many things!
v0.3 is a huge milestone for Guppy. A dozen new features were added, a bunch of bugs were fixed, and the quality of our codebase has increased as we've adopted more scalable coding patterns. I'm really proud of this one, and the work that so many hard-working contributors put into it.
The following list isn't comprehensive, but serves as a good indication of how much good stuff is in this release!
New Features
Queue and batch dependency actions
In 0.2, dependencies had to be installed one at a time. If you needed to add 5 dependencies, it could take quite a while, as you had to wait for each one to finish installing before adding another! It was a huge burden when setting up new projects and installing your go-to dependencies.
This was a surprisingly complex problem, as it's a fundamental limit with NPM; when you start installing a dependency, it effectively write-locks the project's package.json
, so installing another dependency will fail. This feature skirts that issue by setting up a queue system, and batching not-yet-started actions together.
Contributed by @superhawk610.
Allow projects to be edited and deleted
Project management was an essential bit of functionality missing from past releases. Now, projects can be modified by clicking a settings icon, and deleted through the application menu.
Contributed by @AWolf81 and @melanieseltzer
Auto-Update
Behind the scenes, we switched packaging systems, and our new one (electron-builder) allows for auto-updates! No more having to come back to this releases page to download new versions, the app will prompt you when new versions are available :D
Contributed by @Jtfinlay and @AWolf81
Customize project path
A critical bit of functionality is being able to choose where projects are created. You can do that now!
Contributed by @kermit-xuan
Whimsical interactive while creating projects
Creating a new project is slowww, because it has a bunch of work to do behind the scenes. We added a whimsical Windows-98-style animation, and made it interactive, to make the process feel faster
Contributed by @joshwcomeau
Add "Clear console" button and menu item
A cluttered console is no fun - worse still, it could lead to performance degradation when it gets too full. Consoles can now be cleared, through a dedicated button as well as a menu item.
Contributed by @prasoc and @melanieseltzer
Add "Open in Finder" and "Open in Editor" controls
Being able to quickly open a project in finder/explorer, as well as being able to open it in your code editor, is a big quality-of-life win. Can be done through dedicated buttons, or the main application menu.
Contributed by @AWolf81 and @joshwcomeau
Additional features
In addition to the ones already mentioned, our team contributed a bunch of amazing new features for this release. We could go on forever about them, but to keep these release notes brief, here's a quick summary:
- Add "Report an issue" menu item (@mathieudutour)
- Prompt to "Move to Applications Folder" when not already there, on MacOS (@rfbotto)
- Add Mixpanel analytics (@joshwcomeau)
- "Clear State" menu item for resetting Guppy state (@AWolf81)
- Switch between projects from the menu (@AWolf81)
- Lots of work improving our documentation (@superhawk610, @joshwcomeau, @joshuahhh)
- Improvements to performance, so that animations are less janky, and the app opens more smoothly (@joshwcomeau)
- Add loading indicator when deleting projects (@melanieseltzer)
- Warn when closing the app while actions are ongoing (@AWolf81)
- Sidebar can now be scrolled, when you have lots of projects (@beyersito)
Bugfixes
- Fix bug where processes would continue running when Guppy was quit (@superhawk610)
- Ensure Gatsby projects are named correctly (@melanieseltzer)
- When reimporting a project that was previously managed by Guppy, its original settings are used for things like icon and color (@melanieseltzer)
- Really long stroked buttons no longer have visual glitches (@prasoc)
- Fix links to docs in Help menu (@melanieseltzer)
- Fix handling of long-running task failure (@joshwcomeau)
- Show a helpful error message and open docs, if no Node installation can be found (@AWolf81)
- Fix for various onboarding issues, related to the Sidebar and Application Menu (@melanieseltzer)
Code Health
This release features a bunch of under-the-hood work to make Guppy more stable and flexible. There are far too many improvements to list them all, but some highlights:
- A BUNCH of code health stuff, including using Redux Saga for our async orchestration, removing React Router, switching to Electron Builder, adding Storybook and a bunch of stories, improving test coverage, better ESLint rules, and so much more.
- Shout-out to code-health changes from new contributors:
- @raerpo created a ProjectIconSelection component to remove duplication.
- @V1shvesh refactored our Task reducer
- @AbhiPrasad for adding tests for our Projects reducer
Privacy
One other important thing to mention: we're starting to collect data on usage. Our goal is really just to understand how people are using Guppy, so that we know where to invest our time. The data is non-personal, and we tried to collect as little as possible. For example, we care whether you're creating a "vanilla react" or a "gatsby" project, because features depend on that choice, but we don't care (or collect) what you name your project, since that veers into personally-identifiable territory.
If you're curious to see exactly what we're collecting, you can do a project-wide search for logger.logEvent
. That'll show you exactly what we're collecting.
We plan to allow users to opt out of this behaviour, but we don't have that functionality yet. If you're uncomfortable with this data collection, you can continue to use 0.2 (which collects zero info, not even download stats) until we create an opt-out mechanism.
For full information, see our new Privacy Policy.