Why hello there! It’s been quite a bit of time since we’ve last talked. I hope everything is going great on your end! We’ve got something very serious to talk about. We have an issue…with GitHub issues.

You may have noticed that we haven’t done a great job addressing GitHub issues lately. We’ve heard your concerns loud and clear and we want to let you know:

  • We’re not ignoring you and we’re sorry for not communicating that to you.
  • While the Master branch has been very quiet, we’ve been actively working on a different branch.

As many of you know, the entire team has been heads down working towards one major goal: the release of Ionic Angular v4. This has been a massive undertaking for our team since this represents a complete refactoring of the Ionic internals. Don’t worry though, this does not mean you’ll be dealing with a major rewrite of your app, like going from 1.0 to 2.x. There have been some changes in the markup, but these are necessary in order to work with the new Ionic components.

So let’s go over a few things about Ionic 4.

  • All of the Ionic components have been rewritten as Web Components.
  • The core Ionic components will be released as @ionic/core on npm.
  • The Angular bindings will be released as @ionic/angular on npm. These will be small providers and directives that enable our web components to work with Angular.
  • We’ll be integrating more with the greater Angular ecosystem by integrating with the Angular CLI and using the Angular Router.

We’re really excited about this new version and we’ll be going more into detail on the changes it brings in future posts. With that in mind, 3.9.2 is the last of the 3.x releases in preparation for 4.0.

Now, what’s going on with issues?

How did we get here?

As with many projects on GitHub, there’s not enough time in a day to work on triaging/resolving issues and adding new features to the framework. This has lead to the current influx of issues that we have on the Ionic repository. So how can we fix this? In the past we’ve added a proper issue submission form, but that was a barrier for many folks. We’ve also included an issue template so that users can provide the correct information we need, but this can easily be deleted and ignored. So what’s the best way?

Release the Bots!

We’re recently discovered Probot and instantly fell in love with the community behind it. For those who don’t know, Probot is a bot system that can manage a lot of GitHub tasks automatically. The bot itself is quite extensible and is able to be heavily customized, allowing for more functionality.

We’ve taken some time to set up a proper bot (with the face of Ionitron) that can help us manage issues more effectively. Currently it performs the following actions:

  • Marks new issues with a label of “triage”.
  • Handles issues that have deleted the issue template and responds appropriately.
  • Closes old issues that have had no activity on them in X amount of time.

We’re hoping to add more functionality to the bot, but we think this is great start so far. We really believe that this will help us manage issue reports in a much more effective way.

Outstanding Issues

So our bot is going to be helping us out for future issues, but I can already hear you asking:

What about my PR’s or my open issues?

Excellent question. We’ve been working though the issue list internally to address as many open issues in our 4.0 release. This means that while we’re not closing the issue (due to branching), we are fixing the underlying issues and addressing open issues as much as possible.

A perfect example of this is Virtual Scroll. Our current 3.x implementation contains bugs and hacks to work around various issues. With 4.0, we’ve been able to go back and rework Virtual Scroll to be much faster, and fix many of the issues people have reported.

Issues that are related to the Angular version of the Ionic components will be closed as the refactor to use Web Components resolves these problems within the components. Any bugs related to the new Angular binding with Ionic components should be opened in a new issue.

Moving Forward

So to recap, for our 4.0 release:

  • We’ll be releasing @ionic/core and @ionic/angular
  • We’ll be enabling a bot to help us better improve our issue triaging process
  • We’ll be closing older/outstanding issues that are either fixed in 4.0 or no longer valid given the new version.

We hope that this clears up a lot of questions that you may have, and if you have any comments/concerns please reach out to us!