- first-class transpiler support (pick your syntax sugar of choice, have it be sourcemapped easily in debuggers/stack traces/etc.)
- easy & accurate code coverage tools (with sourcemaps too)
- integrated console, debugger, memory, CPU profiler, network inspector (a key shortcut away, even in the production version of the app)
- remote debugging too (renderer and main process - with the UI showing remotely in a way you can interact with)
- great support for integration tests (aka webdriver - you basically send mouse/keyboard events and inspect the DOM to make sure what you expect to happen on screen happens)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# that's it! | |
export GIT_CEILING_DIRECTORIES=/:/home |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// before | |
const Component = require("./component"); | |
class Container { | |
render() { | |
return <Component/>; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
itch => ./itch (interpreter => /lib64/ld-linux-x86-64.so.2) | |
libnode.so => ./libnode.so | |
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 | |
libgtk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 | |
libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 | |
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 | |
libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 | |
libgdk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 | |
libXinerama.so.1 => /usr/lib/x86_64-linux-gnu/libXinerama.so.1 | |
libatk-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1117 silly decomposeActions remove [email protected] | |
1118 silly install executeActions | |
1119 silly doSerial global-install 734 | |
1120 verbose correctMkdir C:\Users\amwenger\AppData\Roaming\npm-cache\_locks correctMkdir not in flight; initializing | |
1121 verbose lock using C:\Users\amwenger\AppData\Roaming\npm-cache\_locks\staging-6211b113012dc3ab.lock for C:\msys64\home\amwenger\Dev\itch\node_modules\.staging | |
1122 silly doParallel extract 734 | |
1123 silly doReverseSerial unbuild 734 | |
1124 silly unbuild [email protected] | |
1125 info lifecycle [email protected]~preuninstall: [email protected] | |
1126 info lifecycle [email protected]~uninstall: [email protected] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- many cut lines --- | |
1117 silly decomposeActions remove [email protected] | |
1118 silly install executeActions | |
1119 silly doSerial global-install 734 | |
1120 verbose correctMkdir C:\Users\amwenger\AppData\Roaming\npm-cache\_locks correctMkdir not in flight; initializing | |
1121 verbose lock using C:\Users\amwenger\AppData\Roaming\npm-cache\_locks\staging-6211b113012dc3ab.lock for C:\msys64\home\amwenger\Dev\itch\node_modules\.staging | |
1122 silly doParallel extract 734 | |
1123 silly doReverseSerial unbuild 734 | |
1124 silly unbuild [email protected] | |
1125 info lifecycle [email protected]~preuninstall: [email protected] |
I'm so glad you asked!
Buying on itch.io:
- Supports creators - our default cut is 10%, but they can pick any.
- Lets you play the games you buy, DRM-free, whether you want to use our desktop client or not.
Many platforms out there are fighting for the "best Steam key reseller" title, which often means "the cheapest", and some are famously known for not caring whether said keys were acquired legitimately or not.
(Keep in mind that key reselling is something Valve allows because having more players now means more revenue later. If/when it stops being economically viable for them, they'll have no reason to keep allowing that. Those platforms might have to rethink their model then.)
So I'm storing data in SQLite now, which means I need to make sure I know what I send to the database.
Which is why I define objects that look like this:
const GamePasswordModel = {
tableName: "gamePasswords",
primaryKey: "id",
columns: {
- Fix the last coverage in trace log should be extracted. !11128 (dosuken123)
- Respect merge, instead of push, permissions for protected actions. !11648
- Fix pipeline_schedules pages throwing error 500. !11706 (dosuken123)
- Make backup task to continue on corrupt repositories. !11962
- Fix incorrect ETag cache key when relative instance URL is used. !11964
- Fix math rendering on blob pages.
- Invalidate cache for issue and MR counters more granularly.
- Fix terminals support for Kubernetes Service.