Warning, /utilities/krusader/doc/development/index.md is written in an unsupported language. File is not indexed.
0001 # Krusader Development Documentation 0002 0003 This reference will help you to get started with Krusader development. 0004 0005 0006 ## Krusader resources for users 0007 0008 * [Project homepage](https://krusader.org/) 0009 * [Release downloads](https://download.kde.org/stable/krusader/) 0010 * [User mailing-list](https://groups.google.com/group/krusader-users) — for user questions, tracked by maintainers, answered by users and maintainers 0011 * [System & Utilities forum on kde.org](https://forum.kde.org/viewforum.php?f=225) — user questions rarely appear here, answered by forum community 0012 * [Bugzilla](https://bugs.kde.org/buglist.cgi?product=krusader) — all bugs and wishes are tracked here 0013 * [Krusader extensions](https://store.kde.org/browse/cat/370/ord/top/) — user-contributed styles and user actions 0014 * [Krusader app page on kde.org](https://kde.org/applications/en/utilities/org.kde.krusader) 0015 0016 0017 ## Krusader resources for developers 0018 0019 * [Developer mailing-list](https://groups.google.com/group/krusader-devel) — for development discussion and questions 0020 * [Repository](https://invent.kde.org/utilities/krusader) 0021 * [Repository mirror on GitHub](https://github.com/KDE/krusader) — pull requests are ignored here 0022 * [Automatic builds](https://build.kde.org/job/Extragear/job/krusader/) 0023 * [Krazy: static code analysis](http://ebn.kde.org/krazy/reports/extragear/utils/krusader/index.html) 0024 * [Krusader coding style](https://techbase.kde.org/Policies/Frameworks_Coding_Style) — same style as for Frameworks 0025 * [Release Howto](release-howto.md) — step-by-step release guide 0026 * [krusader.org website repository](https://invent.kde.org/websites/krusader-org) — the website is deployed via CI from this repo 0027 0028 ### General KDE development resources 0029 0030 * [KDE developer mailing-list](https://mail.kde.org/mailman/listinfo/kde-devel) 0031 * [KDE general announcements mailing-list](https://mail.kde.org/mailman/listinfo/kde-announce) 0032 * [KDE applications release announcements mailing-list](https://mail.kde.org/mailman/listinfo/kde-announce-apps) — [we announce](release-howto.md#send-a-letter-to-mailing-lists) Krusader releases here 0033 * [IRC channel #kde-devel on Libera Chat](irc://irc.libera.chat/kde-devel) — for quick questions regarding anything related to KDE development 0034 * [Git hooks for KDE Bugzilla](https://community.kde.org/Infrastructure/Git/Hooks#Keywords) — use these keywords in your commits 0035 * [Closing issues through commit messages](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues) — add "Resolved #xxx" in a commit message to close a GitLab issue automatically 0036 0037 ### Krusader dependencies 0038 0039 * [KIO API](https://api.kde.org/frameworks/kio/html/index.html) — KIO is heavily used for file related operations (local and remote). 0040 * [KIO repository](https://invent.kde.org/frameworks/kio) 0041 * [KBookmarks repository](https://invent.kde.org/frameworks/kbookmarks) — used for editing Krusader bookmarks 0042 0043 ### Recommended IDE and developer tools 0044 0045 * [KDevelop IDE](http://kdevelop.org) 0046 * [Qt Creator IDE](https://www.qt.io/ide/) 0047 * [Cuttlefish](https://community.kde.org/Plasma/DeveloperGuide#Icon_Viewer:_Cuttlefish) — a useful icon browser for KDE 0048 0049 ### Recommended reading 0050 0051 * [Qt Howto pages](https://wiki.qt.io/Category:HowTo) 0052 * [Qt New Signal Slot Syntax](https://wiki.qt.io/New_Signal_Slot_Syntax) 0053 * [Freedesktop icon names](https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html) — official cross-DE icon names, please try to use these first and fallback to the icon names included in Breeze to be more independent from specific icon themes 0054 0055 0056 ## Contributing 0057 0058 ### Quick guide 0059 0060 1. Get a [KDE identity account](https://community.kde.org/Infrastructure#Identity_Accounts). 0061 2. Fork the [Krusader repository](https://invent.kde.org/utilities/krusader). 0062 3. Clone your fork to your dev box. 0063 4. Make changes in your local repository in a branch. 0064 5. Push your branch to the fork. 0065 6. Create a merge request (aka pull request) to the main repo, mark it with "Needs Review" label. 0066 7. Wait for devs to review and resolve all comments. 0067 8. Once the label is changed to "Approved" and all threads are resolved, devs will merge your change to the main repo. 0068 0069 Find more details in [Forking workflow](https://invent.kde.org/help/user/project/repository/forking_workflow.md). 0070 0071 ### Commit guidelines 0072 0073 Familiarize yourself with commit message style by reading several commit messages in the repository. Notice that for simple changes we use single commits and for multiple related changes we use branches and merge them into master with a descriptive merge commit message. 0074 0075 If your change fixes a bug reported on bugs.kde.org, use both the `FIXED:` keyword with the bug number in square brackets and bug title, and `BUG:` keyword that triggers the Git hook to close the bug. Refer to an example below. 0076 0077 Your change must be reviewed and approved before you can push it to master branch. 0078 You must adhere to [Krusader coding style](https://techbase.kde.org/Policies/Frameworks_Coding_Style) and use the best coding practices. 0079 0080 Your commit (or branch merge if your change is a series of commits) must contain the code review link. It's recommended to place it on the last line and separate it from summary with an empty line. For example: 0081 0082 ``` 0083 One-line commit title 0084 0085 Description of the change. The change description 0086 continues. 0087 0088 FIXED: [ 123456 ] Bug title in case you fixed a bug 0089 BUG: 123456 0090 0091 Discussion: https://invent.kde.org/utilities/krusader/-/merge_requests/7 0092 ``` 0093 0094 Gitlab understands the discussion link and nicely [integrates it](https://invent.kde.org/help/user/markdown#special-gitlab-references) into the UI like this: utilities/krusader!7 ([see example commit](9198345c62ff6c2337fb37c9913bff933f57414b)). 0095 0096 Once you push the commit to the repository, it will be automatically discovered by the Gitlab and it will close the merge request. 0097 0098 If your changes are important enough to be included in the ChangeLog, please add a line to the commit message beginning with one of these keywords {`FIXED:`, `ADDED:`, `CHANGED:`, `REMOVED:`} and a description. For example: 0099 ``` 0100 CHANGED: When the big red button is pressed, foo is activated and not bar anymore 0101 ``` 0102 This line should not be the title of the commit message. 0103 If your change spreads across multiple commits, use the keywords and discussion link in the merge commit message. 0104 Keep in mind that the link and the keywords should go to either your single commit or branch merge commit, i.e. only appear once in history. 0105 Check git history and ChangeLog for more examples of using the keywords. 0106 0107 If your change contains multiple commits, which you'd like to keep, and you are still on top of master, please use `--no-ff` to keep it as a branch merge: 0108 ``` 0109 git checkout master && git merge --no-ff feature/new-foobar-widget 0110 ``` 0111 and then amend the commit message accordingly. Substitute `master` with your base branch if needed. 0112 0113 ### FAQ 0114 0115 > I want to fix a bug but there is no bug report for it yet. Do I need to file one? 0116 0117 No, not if you are certain that it really is a bug. Feel free to just submit a review. 0118 0119 > I am unsure about the right approach to solve an issue, what is the best place to discuss? 0120 0121 Ask us on the [developer mailing list](http://groups.google.com/group/krusader-devel). 0122 0123 > How do I start tracking Krusader bug reports? 0124 0125 1. Sign-in to [Bugzilla](https://bugs.kde.org/). 0126 2. Go to Preferences → Email Preferences tab. 0127 3. On the "User Watching" section add `krusader-bugs-null@kde.org` to your watch list.