-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix #146: use compiler hash instead of volatile mtime #147
Conversation
This addresses issue where GitHub actions runners report different mtime for compiler causing incorrect cache misses
I am willing to merge an optional setting.
It is a special case if the |
I would suggest setting it as default for macOS (I have seen it in other projects using github actions as well), but I don't know how. If you're happy with this suggestion, can you try implementing that? |
…darwin This addresses issue where GitHub actions runners report different mtime for compiler causing incorrect cache misses
I tried implementing that as a default for macOS. |
If this is a mac-only issue, the implementation looks good to me. What about Windows? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Originally (aseprite#2699) ccache was only enable for Linux due to suspiciously low macOS yields. I have addressed the likely issue upstream (hendrikmuhs/ccache-action#147) and ccache can be used on macOS now as well.
* Include build type in ccache key This should lead to better cache utilisation, smaller caches * Use ccache on macOS Originally (aseprite#2699) ccache was only enable for Linux due to suspiciously low macOS yields. I have addressed the likely issue upstream (hendrikmuhs/ccache-action#147) and ccache can be used on macOS now as well. * Fix blend mode usage for GraphicsContext:drawImage(image, x, y) (fix aseprite#3960) * Use transparent color when the source indexed image uses mask color (fix aseprite#3960) * [lua] Add GraphicsContext.palette property to set the palette used to draw indexed images * Set GraphicsContext.palette automatically when a Sprite's indexed image or tileset's tile indexed image is drawn * Fix Full Preview and Edges setting on Cursors preferences (fix aseprite#3188) * Update INSTALL.md Including all the steps for the ARM version of the mac install instructions, rather than partial steps. * Show brush preview for custom brushes when using Paint Bucket tool (fix aseprite#4052) * Fix unused variable warnings * Fix sprintf() warnings using snprintf() or fmt::format() * Clarify Windows instructions for 64-bit Skia * Update laf module New changes required for aseprite#3684/aseprite#4063 to trigger mouse buttons with keys correctly. * Add more accessible option to re-enable the Aseprite file dialog (fix aseprite#4051) As now the native file selector is the default one, we moved the option to re-enable the previous file selector to Edit > Preferences > General > Show Aseprite file dialog option. Related to aseprite#3615 and added as a simple alternative to aseprite#2745 which require native widgets on each native file dialog. * fixed time duration not including ending frame * Add Timeline visibility button to Toolbar, extracted button draw logic to separate member function * Add new icon for the button to switch the timeline visibility (aseprite#4081, aseprite#4092) * Minor fix in new timeline button in the toolbar (aseprite#4081, aseprite#4092) The button was being painted with "toolbutton_last" part instead of "toolbutton_normal" when it wasn't highlighted/in "hot" state. * Fix std::clamp() assert in Manager::onInitTheme() * respect slice keys frame number on ase file format (fix aseprite#4062) * Prevent crash when in Auto or Stack mode the user tries to move pixels from a tilemap with inexistent tiles (fix aseprite#4071) * Fix disable delete layer button when only one layer exists (fix aseprite#3649) * [x11] Update clip module to fix a problem pasting text to some text editors * Revert timeline behavior to the v1.2 default (aseprite#4024) This change was introduced in dd7e27a as a possible fix for aseprite#4024, but the change is too disruptive to be introduced at this stage, we need some extra UI elements to make the drag & drop accessible in both modes: the default v1.2 behavior, and a possible new selection mode, e.g. aseprite#1498 * Rename scale_xxbits_to_8bits() -> scale_xbits_to_8bits() * Take some tests out from a loop they don't depend on * Support scaling down bits (e.g. from 10 to 8) with scale_xbits_to_8bits() doing a bit shift * Update submodules (fix aseprite#4102) * Improve script engine's exception handling More details about the implications of this change can be found in aseprite#4057 * [lua] Limit the possibility to create a tileset with origin != 0,0 (fix aseprite#4118) * [lua] Make Sprite:newTileset(Rectangle) work (fix aseprite#4117) * [lua] Sprite:newTileset() uses sprite grid size by default (fix aseprite#4116) * Update clip submodule * EditorConfig: Don't use tabs in .md files * Show custom pattern brushes for Paint Bucket (fix aseprite#4053) * [lua] Fix crash when saving tilemap's cel image (fix aseprite#4069) * Remove ';' chars from lua tests * Fix crash deleting layers while using "Change Layer" w/scroll wheel (fix aseprite#4114) E.g. If we configure Shift+scroll wheel to "Change Layer" action, and Shift+J to delete a layer, we can press Shift key and move through layers with the mouse whell while we press the Shift key, and if we press J (without releasing the Shift) start deleting layers. At some point a crash will happen. * Update laf module * Fix error message when attempting to delete layer in a group (fix aseprite#4083) If the sprite contained only one layer group, and we tried to delete one child, we got an error message about "You cannot delete all layers". This fixes this (the error message is only when we delete the last top level layer). * Minor comment in AppOptions::VerboseLevel * Log UUID when -debug option is specified (fix aseprite#4104) In this way, in some cases, we could ask to the user for the -debug report and match some Sentry crash report with the user. * Possible fix for crash reports re-opening IntEntry popup when it's already open (fix aseprite#4124) * Fixed unnecessary scrollbar in X dimension for dithering selector dropdown. Added offset to dithering selector dropdown width to avoid X dimension scrollbar obscuring the bottom of the dropdown. This also removes the need for a vertical scrollbar for the generic number of dithering options. Related to Issue aseprite#4001 * Minor refactor to set DitheringSelector combobox size hint (aseprite#4001, aseprite#4075) Changed the required size to its minimum (6 instead of 8). Minor refactor from 1c3224a All these values are hard-coded in DitherItem (so we cannot use theme-related values yet for this). * Fix export sprite sheet to RGB is not exporting the palette (fix aseprite#3881) * New tile flags meaning (x/y/diagonal flip) + serialize then correctly * Changed the "90cw" flag to "diagonal flip" (the tile should be rendered with X/Y axis switched in this case) * Each time we read/write an .aseprite file we have to convert the mask/shift from the file to the values expected in memory (tile_f_xflip/yflip/dflip) * Add simple rendering of tiles w/flags (x/y/d flip) * [lua] Add test about saving/loading/modifying tilemap w/flags Something interesting is that Image:drawPixel() must ask for a rehash to the tileset when the tile is modified, maybe we can find a better way to handle this in the future. * Fix eyedropper to pick colors/tiles correctly from flipped tiles * Added a new app::Color type for tiles, to store the flags of the picked tile. * Fixed color bar/status bar with a new draw_tile() to draw tiles with flip flags. * Fix painting on flipped tiles in manual mode * Fix eyedropper for tiles w/flags when picking colors from "Current Layer" * Fix tile information (index/flags) in StandbyState * Fix painting with tiles and flags * Add support to flip/rotate tiles to ChangeBrush command (like aseprite#1222) * Fix assert converting Color{index} to a tile from tilemap.lua test We must be able to convert a app::Color::IndexType to a tile index. * Remove unused variable in lambda function * Show tile flags in the editor canvas when we use Ctrl key/move tool Added build_tile_flags_string() utility to create the string used in to show the tile flags (XYD) on the status bar, the editor canvas, etc. * Add Space+X and Space+Y alternatives to flip brush/tile flags We already have Space+H and Space+V, but as the flags are XYD probably Space+X/Y makes more sense. * Fix bug w/auto tileset mode adjusting tiles when we replace a unique instance of a tile+flag with a new tile The assert() in remove_unused_tiles_from_tileset() checking for the tiles histograms was failing because we weren't adjusting the histogram correctly when a tile w/a flag is replaced w/another without flags. * Add support to match flipped tiles automatically in Auto/Stack modes By default Aseprite will not try to match flipped versions of the tiles (as it requires more CPU), but when we create a tileset we can specify which flips can be matched automatically (new Tileset::matchFlags() property). These flags are just for the Auto mode, if we manually insert a flipped tile, that is always supported, even when the matchFlags() are not specified. * Fix eyedropper in Tiles mode to pick tiles that are flipped and have masked areas Sprite::pickCels() wasn't taking care of the tile flags to pick tilemap layers correctly with flipped tiles. * Add a workflow to close spammy PRs First attempt, not sure if this will be useful at all. * Remap tiles with flags correctly * Move the timeline button in the toolbar to the bottom * Add "Advanced Options" checkbox in Tileset selector To hide "Base Index" & "Allowed Flips" options by default. * Fix possible crash adding reference layer (fix aseprite#3949) * [osx] Fix mouse misalignment and show tabs area again when Screen Scaling=100% (fix aseprite#4142) Originally reported here: https://steamcommunity.com/app/431730/discussions/0/3954784199573459745/ * Add option to enable the Snap to Grid option for the brush preview (fix aseprite#4137) * Update About dialog copyright year * Fix crash making a tileset bigger and pressing Remap (fix aseprite#4144) This happens only if the tilemap already has tile references outside the valid range of the tileset (and even bigger than the new tileset size). * Fix typo in en.ini file: extra " char (fix aseprite#4148) * [lua] Fix crash calling io.open() without argument (fix aseprite#4159) * Use configured dynamics of active tool w/o opening dynamics popup (fix aseprite#4151) * Add option to disable Snap to Grid by default when we move the selection (fix aseprite#4153) --------- Co-authored-by: Michał Janiszewski <[email protected]> Co-authored-by: Martín Capello <[email protected]> Co-authored-by: Gaspar Capello <[email protected]> Co-authored-by: Andrés Colón <[email protected]> Co-authored-by: David Capello <[email protected]> Co-authored-by: Ashray Shah <[email protected]> Co-authored-by: Rowan Douglas <[email protected]> Co-authored-by: Akylzhan <[email protected]> Co-authored-by: Nicolás Pinochet <[email protected]> Co-authored-by: Dariy Guzairov <[email protected]> Co-authored-by: ChikenUni <[email protected]>
This addresses issue where GitHub actions runners report different mtime for compiler causing incorrect cache misses