bdkjones / CodeKit

CodeKit 3 Issue Tracker
https://codekitapp.com
82 stars 5 forks source link

Feature request/App suggestions: sorting and updating and alerting #636

Closed dlewand691 closed 3 years ago

dlewand691 commented 3 years ago

Quick, short summary: Feature request for updating packages, sorting installed packages, and changing the dock icon when compiling.

Expected results:

  1. When a package update is available, would like to be able to update it across all projects that have it installed instead of having to go one by one.
  2. When viewing installed packages, the list is always randomly sorted. Must always click the table header to sort (usually by name). Would like it to always sort by default setting across any project.
  3. Many times I have CK hidden or behind other windows. Would like the app icon to show some kind of icon when compiling so I know it's working. Would be similar to when it's paused.
iocouto commented 3 years ago

Might be a better idea to split these suggestions into 3 separate issues, so we can more easily comment on them individually.

I like point 2: a 'default' sort order that is clearly indicated in the interface would be helpful.

I also like point 3: some ongoing visual feedback that the app is busy is good to have - specially when compilation is complex and takes more than just a few seconds.

Point 1 would be disastrous for me. I have dozens of projects that span several years, with various combinations of packages - and updating them ALL at once would inevitably introduce incompatibilities or bugs into old projects, which I might not even know about... Definitely need to hand-pick the projects I want to update the packages for.

If you want a 'blanket' approach, one solution might be to use CodeKit Framewors: create a framework using the packages you will be constantly updating, and include the framework in your projects. Then, when the packages are updated, simply update your framework - and all projects that use that framework should be updated automatically.

bdkjones commented 3 years ago
  1. This definitely can't be a thing. Updating packages in all projects at once would be disastrous for most folks.

  2. Ah, yea, this is a leftover from the old Bower package UI. You used to be able to drag components into any order in your Favorites list and the app would remember that order. That's why there is no default sorting when the view loads initially. It's a good suggestion to add that.

  3. Changing the Dock icon: this is a little technical, but because CodeKit actually uses a plugin to show two variations of the icon depending on whether the system is in Dark or Light mode, customizing the icon dynamically isn't a possibility. However, I can badge the icon with a short text string, as Mail or Messages do to show unread counts. I tried that with various symbols, but it just feels incorrect. The badge isn't used to show "progress" or "action"; it means "there's this many new things to see in this app right now." The correct approach would be to add some sort of graphic to the dock icon itself, but I'll have to look into that more extensively.

bdkjones commented 3 years ago

Okay, I've tweaked the Package sorting for the next update. By default it will now start with alphabetical by name in ascending order. Additionally, if you sort by any other header and re-scan for installed packages, your selected sorting method will be applied once all information about packages has populated. On fast Internet connections, that should be virtually instant. CodeKit also caches fetched information about a Package for a few hours, so requests to npm's servers don't happen on subsequent loads.

Note: The search results never obey the sorting method you've chosen until you manually click a column header to apply the sort. That's by design. CodeKit shows you the ranked-order of packages as you'd find them at npmjs.org. npm does a bunch of heuristics to determine the best matches for a given query and CodeKit maintains that order until you manually change it.