(Structured/thorough) Beta testing of resource system in Krita 5.0
I thought it would make sense to make a bit more structured beta testing of the resource system. The idea is: there are multiple sections in the resource system. They all need to be thoroughly tested, but it’s a lot of work. It would be better to divide the work into multiple testers. However, some sections are more often used than others. Hence, when testers just choose what they want to test, it will be usually the same things: brush presets, maybe bundles. And not everyone knows how to report issues efficiently.
Solution: a list of sections, where volunteers and/or developers can assign a specific section for themselves (can be more than one person for a section, but one section with 5 testers and another with 0 would be bad). Every section will have a list of example actions to test/check, but doing things outside of the list is encouraged, too. Ideally, I’d like to have every section being tested at least by two different people.
I assigned myself to “Bundles” already since I’ve seen some complaints about it, and I have a few minor known bugs to fix so I’ll be testing this part more thoroughly.
If you say that you’ll test some section and you end up not doing that, or doing just partially, then it’s completely fine, just write a comment about it so we know about it.
Also huge thank you for everyone who decides to participate in this action, I really really appreciate it and I know future users will appreciate it too.
Btw the pictures below are derivatives from @deevad 's work on the building Krita manual.
Process
-
Tell in the comment below which section you want to test. I’ll add you to do the list.
-
Test the section in the latest version of Krita 5.x you can get.
-
Write a comment with:
- which section you tested (in case you assigned yourself to multiple ones),
- in which version (if beta, write
beta1
orbeta2
etc., if Krita Next, write the hash value; you can get it inHelp -> Show system information for bug reports
) - what are your general feelings (so if everything works, please do write that everything worked well/as expected in your tests, don’t just not write a comment because “everything works so there is nothing to say” since “everything’s fine” is an information, too).
-
Write down every issue you encountered.
How to write about issues
-
Write in a way you’d like someone to write a tutorial for a specific technique for you. Which means: precise, step-by-step don’t omit “obvious” (but not trivial) steps, don’t assume the person reading will know what you did. When in doubt, better write it out.
-
If you see some “magic” happening, like “something appeared”, tell what exactly appeared and when it appeared (after some action you did? After a restart of Krita? etc.). Usually it’s not magic, but there is some detail that makes it behave this way: and this detail is crucial to fix the issue, which means, we gotta know all the details and then maybe we’ll be able to figure out which detail was the “guilty” one. (For example there is a known bug that brush tips from .abr files can’t be saved into bundles, so knowing which preset and what is the brush tip it uses is crucial to figure out whether the bug you’re experiencing is the same known one, or something new).
Tips for beta testing
-
The more up-to-date version you use, the better; best way: download Krita Next the morning you start beta testing. But if you don’t want to bother with it, using the latest beta (now: beta1, but if we release beta2, please do update) is fine.
-
Pay extra attention to what you’re doing (remember steps you’ve taken) and what is happening, for example if you can’t find a resource in the resource chooser for that resource type, check if it exists in the Resource Manager, and check in the resource folder itself if it exists and what is the situation.
-
Try to break things; do something unusual, things that you don’t think Krita can handle. Like saving a bundle to inexistent directory (…for which there is a bug report already). Note that “Krita didn’t tell me that an action was unsuccessful” is a bug/issue, too.
-
Bonus points if you know what a database is and you can check out the sqlite database for resources; I use little program called “DB Browser for SQLite”. This is the “behind the curtain” info Krita keeps about resources.
Before you start (how to back up things)
-
Back up Resource Folder: Easiest way is to go to Krita, go to Settings → Manage Resources → Open Resource Folder and then go one folder up, and back up the whole
krita
folder. Keep it in a safe place. -
Back up configuration: Krita FAQ — Krita Manual 5.0.0 documentation - note that the files you might want to backup are:
kritarc
(general configuration),kritadisplayrc
(display information: like whether to use OpenGL acceleration for the canvas, very important),kritashortcutsrc
(custom shortcuts you haven’t saved into a shortcuts scheme),klanguageoverridesrc
(keeps information about your custom language for Krita, if it’s different from the system language).
Dictionary
-
Resource - one of: Brush Tips; Gamut Masks; Gradients; Layer Styles; Brush Presets; Palettes; Patterns; Sessions; Symbols (Symbol/Vector Libraries); Task sets; Window Layouts; Workspaces
-
Resource folder - one specific folder where the user can see all of the resources available for Krita. The user can choose a different location for the resource folder in
Configure Krita -> General -> Resources
. -
Resource cache - the SQLite database file called
resourcecache.sqlite
that contains information about all the resources, but doesn’t actually have the resources inside. Though it does contain tags. Apparently you can choose the location of the cache too. By default, it’s located in the resource folder.
Special forum badges for all participants
I made a special badge for everyone who is participating in this initiative or more general beta testing of Krita 5.
How to get it: either participate in this beta testing of the resource system, or contribute to beta testing and improvement in some other way (for example make a bug report that was accepted by a developer, or report issues with Krita 5 on a thread etc.). It’s assigned manually by admins. Please do remember that the goal of it all is to improve Krita, not to get a badge but if you did help already, you can nudge the admins to get it.
What can you do with it: you can click on your profile, then go to Badges
, then find this badge, click on it, and then there will be a button or something “Use it as a user title”. Then a text “Krita 5 Beta Tester” will appear next to your nickname in every post.
The badge is similar to this emoji:
Sections that have no testers yet:
- Brush Presets
- Document
- Patterns
- Resource Manager
- Resources
- Search
- Workspaces
- Others
- Resource folder & cache shenanigans
Sections that still need more beta testers:
- Brush Editor
@sooz
- Brushes (more general)
@anon71590212
- Brush Tips
@Michelist
- Bundles
- Gamut Masks
@rebecca @Hocori_Yuki
- Gradients (but wait a bit until I fix all the already mentioned issues)
@TheTwo
- Layer Styles
@TheTwo
- Palettes
@rebecca
- Tags
@sooz
- Task Sets
@sooz
- SeExpr
@TheTwo
- Sessions
@emilm
Sections
A: Brush Preset Editor
Tests
- Edit the name (to a unique one) and save the preset
- Create New Brush Preset with unique name
- RGBA brush tip
- masked brush
- animated RGBA brush tip
- brush tip from an ABR storage
- GRTT-1, GRTT-2, GRTT-3, GRTT-4
B: Brush Presets
Tests
- Mypaint presets - Should have icons when you create a new one
- Mypaint presets - Should have icons when you create and then import a bundle
- Mypaint presets - Loading mypaint brushes from a bundle
- Mypaint presets - Overwrite a mypaint preset after changes
- MyPaint presets - Create New mypaint preset
- Mypaint presets - Save a mypaint preset into a bundle
- Resource Manager - Import Resources → Import a MyPaint Preset (what about the thumbnail?!)
- Presets with .abr tips (Loading brush presets with .abr brush tips)
- Selected preset (Preset selected when you restart Krita is the same one you see on startup next time)
- Selected preset (Check the behavior on creating new documents, changing the current preset, and then closing all of them)
C: Brush Tips
Tests
- ABR brush tips library (Download 3 Set of Eyes For Character Doodles Brushes - Free Photoshop Brushes at Brusheezy! and see that there are more than just one brush tip)
- Import in Brush Editor (Import in brush editor, then select as a brush tip for the current preset)
- Brush tips chooser (Loading brush tips from inside a folder inside /brushes/)
- Brush Tips chooser (Import a .abr library)
- GRTT-1, GRTT-3, GRTT-4 (just open the brush tip file in Krita and then save to overwrite - do it twice, because there was a bug in doing it the second time) in brush tip chooser
D: Brushes
Tests
- Brush Editor (Change option; reload original preset)
- Brush Editor (Change option; save new brush preset) - GRTT-3
- Brush Editor (Change option; overwrite preset) - GRTT-4
- Brush Editor (Switch to another brush inside Brush Editor)
- Brush Editor (Remove one of the default presets)
- Brush Editor (Remove a preset from bundle_modified)
- Brush Editor (Add new preset in an engine) - GRTT-3
- Brush Editor (Remove a custom preset)
- Brush Editor (Filter by engine)
- Brush Editor (Rename a default preset)- GRTT-2
- Brush Editor (Select Ink Brush Rough and try to paint)
- Brush Editor (Draw in the brush settings scratchpad)
- Brush Editor (Click on the lock icon in Brush Editor)
- Brush Editor (Create a new EMPTY preset in the brush engine, then edit its name)
- Brush Editor (Clicking on “Temporarily save tweaks to presets”)
- Brush Editor (shortcut to call it (F5 by default), and then maybe close?)
- Brush Editor (Overwrite a preset) - GRTT-4
- Toolbar dropdown (Import a preset)
- Toolbar dropdown (Remove a default (unchanged) preset from a bundle)
- Toolbar dropdown (Remove a preset that was default from a bundle, but then you overwrote it with your own changes)
- Toolbar dropdown (Remove a custom preset (a new one that you created))
- Brush Presets docker (Switching a tag shouldn’t remove a selection of the brush (selection = highlighting in the listview widget), unless the new tag doesn’t contain that preset)
- Brush Presets History (Changing the current brush preset should make that one selected in both Brush Presets History and in the Brush Presets docker)
- Brush Presets docker (Brush presets should be sorted by name)
- Brush Presets docker (Is switching brush presets fast)
- Brush Presets docker (Switching brush presets with /)
- Brush History docker (Switching brushes)
- Brush History docker (Switching brushes after you delete one of them)
E: Bundles
Tests
- Bundle Manager (Activate/deactivate bundle)
- Bundle Manager (Create - the bundle needs to be importable)
- Bundle Manager (Create - make sure it embeds brush tips without asking)
- Bundle Manager (import a bundle)
- Bundle Manager (Create - make sure it embeds tags you asked it to)
- Bundle Manager (Open Bundle Manager with for example wojtryb’s bundle (long name))
- Bundle Management (Remove a bundle from the resource folder (manually in the file browser), next time you open Krita, Krita should remove the bundle from the list (forget about the non-existent bundle))
- Bundle Management (Create a bundle with resources from subfolders)
- Bundle Creator (Create a bundle with metadata and import it)
- Bundle Management (Potential issue: Krita doesn’t start if all the bundles are deactivated)
- Bundle Manager (Correct metadata and a thumbnail for a selected bundle)
- Resource Manager (import a bundle using “Import Resources” button)
F: Document
Tests
- Layer Styles (Loading a file saved in 4.4.1 with layer styles - make sure that it contains a pattern and a gradient)
- Layer Styles (Loading in 4.4 a file saved in 5.x with layer styles)
- Layer Styles (Loading a file saved in 5.x with layer styles)
- Layer Styles (Saving a file with custom pattern)
- Layer Styles (Loading a file with custom pattern)
- Layer Styles (Loading a file with a pattern that isn’t inside the file - not sure how to get this kind of file though…)
- Layer Styles (Saving a file with custom gradient)
- Layer Styles (Loading a file with custom gradient)
- Palettes (Loading a file saved in 4.4.1 with a palette)
- Palettes (Loading in 4.4 a file saved in 5.x with palette)
- Palettes (Loading a file saved in 5.x with a palette)
G: Gamut masks
Tests
- Gamut masks docker (Create new mask) - GRTT-3
- Gamut masks docker (Edit selected mask) - GRTT-4
- Gamut masks docker (Duplicate selected mask)
- Gamut masks docker (Delete selected mask)
- Gamut masks docker (Use Save button in the Gamut Masks docker after editing/creating/duplicating the mask)
H: Gradients
Known issues: see Help Krita improve with structured Beta Testing of the new resource system in Krita 5.0 - #18 by TheTwo
Tests
- Gradient chooser (Press Cancel after editing)
- Gradient chooser (Edit the gradient)
- Gradient chooser (Add a new gradient) - GRTT-3
- Gradient chooser (Import gradient from gradient dialog) - GRTT-1
- Gradient chooser (Delete gradient)
- Foreground to back. (Foreground to background should be the exact opposite of background to foreground)
- Gradient Map filter (Choosing Foreground to Transparent or Foreground to Background gradient should have an effect)
- Gradient Map filter (Changing foreground or background color should make the gradient update)
- Gradient Map filter (Foreground to background and foreground to transparent gradients should appear on the top of the list)
- Gradients chooser (Remembering the last used gradient on closing Krita)
I: Layer styles
Known issues: Help Krita improve with structured Beta Testing of the new resource system in Krita 5.0 - #22 by TheTwo
Tests
- Layer styles menu (New) - GRTT-3
- Layer styles menu (Import…) - GRTT-1
- Layer styles menu (Collections/storages combobox)
- Layer styles menu (Export…)
J: Palettes
Known issues: Help Krita improve with structured Beta Testing of the new resource system in Krita 5.0 - #19 by Rebecca
Tests
- Palette docker (Add a color)
- Palette docker (Modify this spot)
- Palette docker (Edit this palette)
- Palette docker (Delete color)
- Palette docker (Changing the palette)
- Color Picker (Pick color from canvas into the palette)
- Palette docker - palettes (Add a new palette - in resources)
- Palette docker - palettes (Add a new palette - in a document)
- Palette docker - palettes (Export current palette to file)
- Palette docker - palettes (Import a new palette from file)
- Palette docker - palettes (Remove current palette)
- Palette docker (Edit palette to have less columns)
- Color Sampler (Update view in Palette docker when the user uses color sampler to add swatches)
- Palette docker (Color Sampler + Palette docker)
- Palette docker (Create a new palette)
- Saving
- Color Sampler (Use “save to palette” on a custom palette, close and reopen Krita)
K: Patterns
Tests
- Patterns docker (Import resource)
- Patterns docker (Delete resource)
- Filter docker
- Patterns popup (Add to predefined patterns) - here check in both Patterns popup and Resource Manager afterwards if the pattern really exists
- Patterns popup (Use as Pattern)
L: Resource Manager
Tests
- Implementation (entry to open it)
- Implementation (filter by storage)
- Implementation (filter by type)
- Implementation (filter by tag)
- Implementation (Show deleted resources checkbox)
- Implementation (filter box)
- Implementation (brushes box)
- Implementation (icon + info for the brush)
- Implementation (tags selector)
- Implementation (delete/undelete resource)
- Implementation (import resource(s) or bundles/storages)
- Implementation (open resources folder)
- Gradients - nice thumbnails
- Tag selector working as expected
- List of resource types (List of resource types should be user-friendly, like “Brush Presets” instead of “paintoppresets”)
- Create bundle (Create a bundle out of selected resources)
- Storages listed
- Resources List View updates (Select “All Untagged”, then add a tag to a resource)
- Rename a resource (A text edit widget with a OK at the end)
- Import of a resource (Importing a resource with the same name as existing one)
- Import the preset file again (the same name), or create a new resource with this name)
- Brush Presets (example) (- Import a preset | - Delete it)
- Sorting
- Tags widget [+] button
M: Resources
Tests
- Resource choosers (Scrolling through pattern chooser or toolbar brush preset chooser or brush presets docker)
- Resource management (Moving a resource into a subfolder or back - Krita should recognize it as removing the old resource and creating a new one; it’s an unsupported behavior but Krita shouldn’t break if someone does this…)
- Resource choosers (Start of Krita)
- Translations (Start of Krita in a new language - that can only work in some versions of Krita, I’m not sure if Krita Next now has translations… I think it can have, though)
N: Search
Tests
- Brush Presets docker (Filter in tag checkbox - checked)
- Brush Presets docker (Filter in tag checkbox - unchecked)
- Brush Presets docker (Filter/search by name part working as expected)
O: SeExpr
Known issues: Help Krita improve with structured Beta Testing of the new resource system in Krita 5.0 - #28 by TheTwo
Tests
- Create a new script
- Overwrite the old script
- Rename a script
- Import a script (.kse)
P: Sessions
Known issues: Help Krita improve with structured Beta Testing of the new resource system in Krita 5.0 - #41 by emilm
Tests
- Sessions dialog (New)
- Sessions dialog (Rename)
- Sessions dialog (Switch to…)
- Sessions dialog (Delete…)
- Sessions dialog (Correct/not empty MD5 sum in the database)
Q: Tags
Tests
- Tag dropdown (Add a new tag)
- Tag dropdown (Rename a default tag)
- Tag dropdown (Rename a custom tag)
- Tag dropdown (Delete a default tag)
- Tag dropdown (Delete a custom tag)
- Tag dropdown (Undelete a default tag - note that you need to do it just after deleting it, in the same session)
- Tag dropdown (Undelete a custom tag - note that you need to do it just after deleting it, in the same session)
- Preset context menu (Assign an existing default tag)
- Preset context menu (Assign a new tag)
- Preset context menu (Deassign from another tag)
- Preset context menu (Deassign from the current tag)
- Preset context menu (Deassign from the current tag when it’s “All” or “All untagged” - should be impossible)
- Tag selected at startup - should reflect the last selected tag when you closed Krita
- Brush Presets docker (Hover cursor over preset to show tooltip)
- Tags Translated (On a Polish system with English Krita, it should create English tags)
- All (“All” tag works)
- All untagged (“All untagged” tag works)
- Tags (Deactivating bundle should remove associated tags)
- Create a few new tags, some with presets, some without; then go to Resource Manager → Export Tags to Folder; then remove the
resourcecache.sqlite
file; then open Krita and see if those tags are still there.
R: Task sets
Tests
- Tasks sets docker (Save task set)
- Tasks sets docker - chooser (Import a task set)
- Tasks sets docker - chooser (Delete a task set)
S: Workspaces
Tests
- Workspaces chooser (the button on the toolbar) (correct MD5 sum in the database)
- Workspaces chooser (If the bundle Krita 3 is switched off, the workspaces should still be available)
- Workspaces chooser (Import) - GRTT-I
- Workspaces chooser (Delete) - it should stop being available in both Workspace chooser and Window → Workspaces
- Workspaces chooser (Save) - GRTT-III
- Workspaces chooser (Overwrite a workspace) - GRTT-IV
- Workspace chooser - switching to a workspace
- Menu → Window → Workspaces - switching to a workspace
- Menu → Window → Workspaces → Import - GRTT-I
- Menu → Window → Workspaces → Create - GRTT-III
T: Others
Tests
- Script Ten Brushes (Potential issue: The current preset is activated, not the one assigned to the button)
- Brush Presets docker (Switching on/off different storages)
- Startup (Start krita for a second time after adding manually (in the file browser on your system) new resources to the folder)
U: Resource folder & cache shenanigans
Tests
- Make sure to backup your resource folder and your configuration files beforehand!!! The instruction is above.
- Remove the resources folder completely, start Krita 5.x, check that everything is fine, close it and start again. It should still be fine and the second time should be faster.
- Remove the resources folder completely, start Krita 4.x, close, start Krita 5.x, check that everything is fine and that you see MyPaint brushes, then close Krita and start it again, still everything should be fine and this start should be faster.
- Make a new custom resource, change the location of the resource folder AND the cache to some non-standard and empty location (but don’t change the cache location), and make the two above tests again (without removing the folder). The new resource shouldn’t appear in those tests.
- Now do something similar, but with cache still pointing to the old location. Note if there is anything wrong. Cache should always just show the reality of the resource folder.
- Try to have two different resource folders with different sets of custom resources and juggle between them. See i there is anything wrong.
- Correct behaviour: (1) resource folder created by Krita contains all the resources that come with Krita 5.x, so for example MyPaint brushes and WaterC brushes and Krita 3 and 4 bundles and SeExpr bundles; (2) the cache always shows the reality of the resource folder; it shouldn’t show resources that are not available, (3) cache database contains the most up-to-date tags, so if you change the cache location, you will lose them (unless you copied the database? or unless Krita copies the database? I’m not sure what the current behaviour is
).
Generalized resource type tests process (GRTT tests)
I. Import Resource File:
- Import a new resource file
- Import the same resource file again
- Import a different resource file with the same filename
- Import an incorrect resource file
II. Rename resource:
- Rename to something
- Rename to a name of an existing resource
III. Add a new resource
- Add a new resource with unique name
- Add a new resource with a filename that already exists: in case of brush presets, just create “Test Brush 2” and then try to create “Test Brush 2” again.
- Choose “Cancel”
- Choose “Overwrite”
- Add a new resource with a name that already exists: in case of brush presets, create a preset called “Test Brush 3A”, then rename it to “Test Brush 3B”, and then try to create a new brush called “Test Brush 3B”
- Choose “Cancel”
- Choose “Yes”
IV. Overwrite a resource
- Simply make changes and overwrite a resource - make sure that:
- the resource selected is the one you overwrote
- correct values are in GUI and the resource works correctly
- that if you further make changes, the dirty indicator (if relevant) appears
- reloading the resource works
- Make changes, change the name and overwrite a resource with a new name (if it’s possible)