Qt Contributor Summit 2024 - Program and Jira Cloud migration: Difference between pages

From Qt Wiki
(Difference between pages)
Jump to navigation Jump to search
m (→‎Table of session details: Link name (and remove misplaced surname).)
 
(Link redirect info added)
 
Line 1: Line 1:
'''Event main page:''' [[Qt Contributor Summit 2024]]
This Page is an FAQ for upcoming migration of Qt's bug tracking system to the Atlassian cloud. The migration is planned for September 2025.
 
Please, add your sessions/talks/presentations to [[#Table of session details|the table]] at the end of the page.
 
→ <small>'''If you have any issues while editing this page, please contact Pedro Bessa directly at pedro.bessa@qt.io'''</small>
 
 
== Our Program ==
 
'''Thursday, September 5th'''
 
Morning: Keynote Sessions
 
Afternoon: Breakout rooms
 
Evening: Dinner!
 
'''Friday, September 6th'''
 
Morning: Keynote Sessions
 
Afternoon: Breakout rooms


== Rationale ==
In 2024 Atlassian discontinued the support for the Jira Server version. The only alternative option for Open Source usage is a Jira Cloud license. This means the current content from https://bugreports.qt.io must be migrated to https://qt-project.atlassian.net. After this migration bugreports will stay around as read-only reference for some time to come.


== Migrated  projects ==
The following projects were migrated to https://qt-project.atlassian.net.
{| class="wikitable"
{| class="wikitable"
|+
!
! colspan="5" |Thursday, Sep 5th
!
!
!
|-
|-
! style="background-color:#41cd52" |Time (CEST)
|Coin (COIN)
! colspan="4" style="background-color:#41cd52" | Room 12+13
|Qt Design Studio (QDS)
|Qt Tools for Android (QTTA)
|Qt AS Partners Only (QTAUTO)
|-
|-
|08:30 - 09:00
|Qbs ("Cubes") (QBS)
| colspan="4" |Registrations, Welcoming, Coffee
|Qt Extensions (QTEXT)
|Qt Visual Studio Tools (QTVSADDINBUG)
|Qt Product Management Organization (QTPMO)
|-
|-
|09:00 - 11:00
| colspan="1" |Qt (QTBUG)
| colspan="4" |Keynotes
| colspan="1" |Qt Installer Framework (QTIFW)
 
| colspan="1" |Qt WebBrowser (QTWB)
* State of the Qt Project
| colspan="1" |Qt Requirements Management (QTPM)
* Opportunities and Challenges after Qt 6.8
* User perspective: developing and maintaining projects on top of Qt 6
|-
|-
|11:00 - 12:00
| colspan="1" |Qt 3D Studio (QT3DS)
| colspan="4" |Session pitching
| colspan="1" |Qt Playground Projects (QTPLAYGROUND)
| colspan="1" |Qt for Python (PYSIDE)
| colspan="1" |Qt Product Installation Framework (QTPIF)
|-
|-
!style="background-color:#41cd52" |Time (CEST)
| colspan="1" |Qt Bugtracking interface (QTJIRA)
!style="background-color:#41cd52" |Room 12+13
| colspan="1" |Qt Project Website (QTWEBSITE)
!style="background-color:#41cd52" |Room 11
| colspan="1" |VS Code Extension (VSCODEEXT)
!style="background-color:#41cd52" |Room 10
!style="background-color:#41cd52" |Common area
|-
|12:00 - 13:00
| colspan="4" |''Lunch in the "Franconia Foyer"''
|-
|13:00 - 13:45
|[[QtCS2024 QProperty|Whither QProperty?]]
|[[QtCS2024 Qt Documentation|Qt Documentation]]
|[[QtCS2024 Qt on Windows|Qt on Windows: Windows 11 Style and Recent Developments]]
|
|-
|13:45 - 14:30
|[[QtCS2024 std::format|std::format support in Qt]]
|[[QtCS2024 QtGraphs|What's new in QtGraphs]]
|[[QtCS2024 How to hate QML|How to hate QML]]
|
|-
|14:30 - 15:00
| colspan="4" |''Coffee break in the "Franconia Foyer"''
|-
| 15:00 - 15:30
|[[QtCS2024 Error handling|Error handling in Qt (and C++)]]
|[[QtCS2024 Qt Lottie|Qt Lottie: Where it is, where to go]]
|[[QtCS2024 Qt for Python|Qt for Python]]
|
|-
|15:30 - 16:00
|[[QtCS2024 C++26 Reflection|C++26 Reflection and Qt]]
|
|
|
|[[QtCS2024 Wayland protocols for Qt|Wayland protocols for Qt]]
|-
|-
|16:00 - 16:30
| colspan="1" |Qt Creator (QTCREATORBUG)
|[[QtCS2024 C++20|C++20]]
| colspan="1" |Qt Quality Assurance Infrastructure (QTQAINFRA)
| colspan="1" |Qt Automotive Suite (AUTOSUITE)
|
|
|[[QtCS2024 AI tooling for Qt developers|AI tooling for Qt developers]]
|[[QtCS2024 qt-project.org|qt-project.org]]
|-
|16:30 - 17:00
| colspan="4" |Summary of Day 1
|-
|17:00 - 18:30
| colspan="4" |Unplanned time
Option 1 - Franconian wine at the Alte Mainbrüke (Old Main Bridge). Leave <u>'''hotel'''</u> lobby together at '''<u>17.15</u>''' for the 700m walk. 
|-
|18:30 - ...
| colspan="4" |''Dinner at the Event Venue''
|}
|}
This is not the complete list of all projects on bugreports. In particular old projects or QtC internal projects were left behind. Other cases involve The Qt Company specific projects which were migrated to a different Jira Cloud instance.


== Timeline & Target ==
The target server is https://qt-project.atlassian.net.
{| class="wikitable"
{| class="wikitable"
|+
|+
! colspan="5" | Friday, Sep 6th
!State
!Status
!Time Line
!Description
|-
|-
! style="background-color:#41cd52" |Time (CEST)
|Test migrations
! colspan="4" style="background-color:#41cd52" |Room 12+13
|Ongoing
|Started on 16. June 2025
|Admin working on playbook for migration. Users cannot log into the instance yet but the Jira cloud instance is publicly visible.
|-
|-
|08:30 - 09:00
|User acceptance tests
| colspan="4" |Welcome back and Coffee
|Not started
|August 2025
|Voluntary testers collect first impressions, log in and can interact with a copy of the data.
|-
|-
|09:00 - 12:00
|Final migration
| colspan="4" |Keynote
|Not started
|Planned for September
|The day when the data is moved for good and bugreports becomes read-only.
|}
 
=== Link redirection & History preservation ===
After the migration has completed, [https://bugreports.qt.io/ https://bugreports.qt.io] will be moved to the new URL  [./Https://bugreports-old.qt.io https://bugreports-old.qt.io]. From this point on-wards the server serves as historical reference. All projects will be changed to read-only permission schemes. The URL is shifted because a URL redirect will be put in place. The new URL for bugreports will ensure that it remains accessible despite the redirect.
 
The redirect will be as follows
 
* <nowiki>https://bugreports-test.qt.io/browse/QTBUG</nowiki> -> <nowiki>https://qt-project.atlassian.net/browse/QTBUG</nowiki>
* <nowiki>https://bugreports-test.qt.io/browse/QTBUG-abc</nowiki> -> <nowiki>https://qt-project.atlassian.net/browse/QTBUG-abc</nowiki>
 
== First login ==
The Jira instance is configured such that a login is not required to browse the content of the server. If you want to create bugs, comment or simply track activity on an issue you need to log into Jira. Please verify whether you are logged in by checking the top right corner of your screen:
[[File:Not-logged-in.png|border|center|thumb|Not logged in]]
[[File:Logged-in.png|border|center|thumb|Logged In]]
 
=== For migrated users ===
During the migration the email address of each user is migrated to the Atlassian user directory and an invitation is being sent out. The invite comes from id.atlassian.com and was sent/will be by "Alex Blasche". You have to accept the invite which ultimately leads to an Atlassian login prompt.
 
Note that '''not all accounts''' on bugreports.qt.io '''were migrated''' because Atlassian employs email filtering which prevents usage of certain email domains (e.g. one-time mailer domains). Secondly, only accounts with actual changes and comments were migrated. If your login attempt fails please fall back to the [https://wiki.qt.io/Jira_Cloud_migration#First_time_users First time user] section below. 
 
If the user has an Atlassian identity/account with the same email already, your existing account will gain access to an additional Jira instance. Out of the box, Atlassian already offers a couple of identity provider integrations such as Google, Microsoft & Apple. Alternatively, you may use a simple email+password combination. If this is the first time that an Atlassian login is used and none of the existing identity providers matches, you may have to select the '''Can't log in?''' option to reset the account password.
 
if you are using a qt.io email address, please choose the Microsoft identity provider option.
 
[[File:Atlassian Login prompt.png|thumb|border|none]]
 
=== First time users ===
New users who have not used https://bugreports.qt.io  before or were not migrated due to missing activity should follow one of the options below.
 
==== Automatic login ====
<u>'''Disclaimer'''</u>: This option is currently not yet working due to a bug which is actively investigated.
 
Assuming you have an active Atlassian account please go to https://qt-project.atlassian.net and attempt log into the Jira instance. Upon first login you will be automatically added to the user directory for the Jira instance. The default permission set grants the rights to comment, file new issues and vote/watch issues.
 
==== Invite other user ====
Every user with an existing account can invite another user. The screen short below depicts where the invite option can be found in the user interface. As consequence the to-be-invited user will receive an email from Atlassian with a link to follow. This option might be helpful if you already know a colleague or  other community member who has known access.[[File:Invite other user.png|none|thumb]]
 
==== Ask Jira admin ====
This is the fallback option. Please send an email to [[jira-admin@qt-project.org]]
 
== Adjusting personal setup after first login into the cloud instance ==
 
=== Update your personal setting ===
If you log into the system for the first time, please update your profile and personal settings. Quite a few personal options such as profile,  privacy, security, email notification & account preferences can be found behind those links. 
[[File:Account details.png|none|thumb]]
 
=== Filter adjustments ===
As mentioned above, not all projects were migrated to the Jira cloud ([https://wiki.qt.io/Jira_Cloud_migration#Migrated_projects details see above]). However all filters(regardless what projects they refer to) were migrated. This option was chosen to avoid loss of filters due to the migration. As a consequence some filters may be broken or simply obsolete. Check for the following causes:
* Remove any filter which you no longer use or are unrelated to the set of projects which were moved to the cloud.
* Filter ids change during the migration as this is a running number. Therefore any JQL queries which refer to other filters should be changed such that they reference them by filter name.
** e.g. '''filter = 123456''' → '''filter = "verbose filter name"'''
* A filter references a project that was not migrated. → Remove such project references. See the above list of migrated projects to see what is available.
* A filter references a custom field with the cf[<field id>] notation. In most cases the field ID will have changed. → Adjust the filter to the new ID
** For details see the [https://support.atlassian.com/jira-software-cloud/docs/jql-fields/#Custom-field JQL custom field] documentation
** How to identify the custom ID: Use the second method highlighted by https://confluence.atlassian.com/jirakb/find-my-custom-field-id-number-in-jira-744522503.html
* The filter uses custom JQL extensions which are no longer supported. → Try to find a replacement
** [https://support.atlassian.com/jira-software-cloud/docs/use-advanced-search-with-jira-query-language-jql/ Standard JQL documentation]
 
=== Dashboards ===
 
* Similar to filters (see previous section), all dashboards were migrated. If the board does not display properly there are generally two reasons:
*# The dashboard's gadgets use filters which are broken
*#* Suggested fix: fix up your filters as described above.
*# The dashboard gadget is no longer supported
*#* Suggested fix: replace it with a similar gadget
* Remove any dashboards which you no longer use or are unrelated to the set of projects which were moved to the Jira cloud instance.
 
=== Agile Scrum/Kanban boards ===
You can find all migrated boards via https://qt-project.atlassian.net/jira/boards.
 
* Remove boards which you no longer use or are entirely related to projects which have not been migrated to the Atlassian cloud
* Sanitize boards for general functionality. The most likely reason for errors may be the board filters not being fixed yet (see [https://wiki.qt.io/Jira_Cloud_migration#Filter_adjustments Filter section] above)
 
== General FAQ ==
 
=== Migration limitations ===
Unfortunately the cloud migration has some limitations. Since not all projects (in particular old ones) were migrated to the cloud, it is not possible to maintain issue dependencies to non-existing projects. This has follow on effects for filters/dashboards/agile boards.
 
=== What was/will not be migrated? ===
The Jira cloud migration process does NOT migrate all data from the server to the cloud. Some data can be migrated via manual steps but others will stay behind. If you are interested in what does and what does not migrate please consult
 
https://support.atlassian.com/migration/docs/what-gets-migrated-with-the-jira-cloud-migration-assistant/


* [[Cyber-Security and implications on the Qt Project]] (SBOM and 3rd party code, account and privilege life cycle)
Notable examples are:
Brainstorming
* Is Qt good enough for desktop applications?
Discussions


* [[QtCS2024 Breaking The Monolith|How do we break the monolith - candidates and guidelines]]
* Kanban board sub-filter
* Links to issues or entities that are not migrated
* Activity streams
* WebHooks
* User avatars: users will need to update their avatars after migrating


* API design and Header review is everyone's problem
=== JQL ===


|-
==== Referencing custom fields and their auto-completion in JQL ====
!style="background-color:#41cd52" |Time (CEST)
The usage of custom fields in JQL queries has increased in functionality compared to the Jira server version. A custom field is a field that extends the standard Jira issue fields with our own versions. The official documentation for custom fields can be found under https://support.atlassian.com/jira-software-cloud/docs/jql-fields/#Custom-field.
!style="background-color:#41cd52" |Room 12+13
 
!style="background-color:#41cd52" |Room 11
Using custom fields in a JQL allows multiple ways of referencing them like by name, by Custom field ID or combination of both. This functionality is available to identify any custom field with duplicate names. The best way to use custom field in a JQL is to start typing the name of the field and select the correct one from the auto-suggested values. For example, when you start typing "tag" into the query box, the suggestion starts populating as "Tags[Labels]". Please find below screenshot illustrating the fact:
!style="background-color:#41cd52" |Room 10
 
!style="background-color:#41cd52" |Common Area
[[File:Custom Field example .jpg|center|thumb|685x685px|Custom Field "Labels"]]
|-
 
|12:00 - 13:00
If there are more custom fields with ''Tags'' as a name but different field type (like DropDown or Text) then the user can easily distinguish them and use the correct field.
| colspan="4" |''Lunch in the "Franconia Foyer"''
|-
|13:00 - 13:45
|[[QtCS2024 Quo Vadis, TTLOFIR|Quo Vadis, TTLOFIR]]?
|[[QtCS2024 Qt Creator meets Lua|Qt Creator meets Lua]]
|[[QtCS2024 Compile once. Run everywhere|Compile once. Run everywhere]]
|
|-
|13:45 - 14:30
|[[QtCS2024 Deprecate|Deprecation vs Compatibility]]
|[[QtCS2024 Vector Graphics|Vector Graphics in Qt]]
|[[QtCS2024 QML Next|QML Next - Qt Quick UI with non-C++ languages]]
|
|-
|14:30 - 15:00
| colspan="4" |''Coffee break in the "Franconia Foyer"''
|-
|15:00 - 15:30
|[[QtCS2024 Flaky|Flaky tests]]
|[[QtCS2024 QFuture/QPromise|QFuture/QPromise: ’sup?]]
|[[QtCS2024 QtLanguageServer|Future of QtLanguageServer repo / Proper CI for non-mainline repos?]]
|[[QtCS2024 XR|Current state of XR support in Qt]]
|-
|15:30 - 16:00
|[[QtCS2024 TaskTree|TaskTree '24]]
|[[QtCS2024 QtScrypt|QtScrypt/QtPythonScripting]]
|[[QtCS2024 FFmpeg in Qt Multimedia|FFmpeg in Qt Multimedia]]
|[[QtCS2024 Supporting multiple versions of Qt in QML|Supporting multiple versions of Qt in QML]]
|-
|16:00 - 16:30
| colspan="4" |Summary of Day 2 and Closing of Qt CS 2024
|}


== Table of session details ==
This has consequences if you rely on auto completion for the field. There are different types of supported functions and operators for different types of custom fields. The auto-suggestions will suggest values according to their supported operator or functions. For  example in the above case, it is a custom field of type ''Labels''. The [https://support.atlassian.com/jira-software-cloud/docs/jql-fields/ JQL field documentation] contains a section of supported & un-supported functions and operators for all types of field. It clearly states that the operator (~) is not supported for labels and hence the suggestions are full values. Therefore simple Jira JQL that ignores specific typing like "Tags = " will not trigger auto-completion. Please check the [https://support.atlassian.com/jira-software-cloud/docs/jql-fields/#Labels Labels field documentation] for supported and non supported operators for ''Labels'' fields.


{| class="wikitable"
==== JQL extensions ====
!Topic
Some people use non-standard JQL functions/extensions. Atlassian changed the way JQL extension plugins can work. Arguably, it is more difficult and cumbersome as it requires a separate search UI. None of the plugins which were previously used on https://bugreports.qt.io works in the cloud anymore. In the short term this means some limiations. However it should be noted that the cloud's builtin JQL capabilities are more powerful than on the server version. Therefore as your first step you should check [https://www.atlassian.com/software/jira/guides/jql/cheat-sheet#advanced-search JQL cheat sheet].
!Speaker
!Format
!Summary
|-
|''Topic Title''
|''Add Your Name(s)''
|''Discussion/Presentation/Workshop/...''
|''Add a short paragraph about the scope of the proposed talk.''
|-
|Whither QProperty? Wither, perpetuate or evolve?
|Fabian Kosmale
|Discussion session
|We've added bindable C++ properties in Qt 6 – and then mostly ignored them except for bug fixes. Let's recap why we've added it to begin with, collect how it's currently . Then, investigate why we (mostly) went nowhere with it and whether we we want to change that.
|-
|std::format support in Qt
|Ivan Solovev
|Discussion session
|We've started to provide support for formatting Qt types using std::format, but we might need some more features from the standard in order to use std::format *inside* Qt. Let's try to discuss what we need from the standard and how can we achieve that.
|-
| Qt for Python
| Friedemann Kleint
| Discussion session
| Discuss Qt for Python development and explore ways to enhance its interoperability with other Qt products through feedback, ideas, and constructive criticism.
|-
| QtScrypt/QtPythonScripting
| Friedemann Kleint
| Presentation + Discussion
| Present a research project which has been under way providing a more light-weight way for Python bindings.
|-
|[[QtCS2024 Deprecate|Deprecation vs Compatibility]]
|[[User:Eddy|Eddy]]
Alex Blasche
|Discussion session
|Follow up on [https://lists.qt-project.org/pipermail/development/2024-June/045429.html Peppe, Andre' and others] discussing SC/BC and the impact of deprecations on users.
|-
|What's new in QtGraphs
|Tomi Korpipää
|Presentation + Discussion
|A look into what has changed between QtDataVisualization and QtGraphs, which will be out of TP in Qt 6.8.
A short presentation followed by a discussion of where we can / should take it next.
|-
|Quo Vadis, [[Things_To_Look_Out_For_In_Reviews|TTLOFIR]] ?
|Marc Mutz
|Discussion
|"Things to look out for in review" (https://wiki.qt.io/Things_To_Look_Out_For_In_Reviews) started as a low-entry-barrier way to collect guidelines surrounding code^Wgit-versioned contributions, to be distributed to "official" documents as time goes by. While I believe it had a positive impact on many Qt contributors already in the present form, I still see (too) many of the issues, discussed there, in approved code, suggesting that it may be time to migrate some of the content to said "official" format (QUIP? Qt Coding Standard (no, not the whitespace formatting guideline that currently carries the name)). Also, the number of contributions to TTLOFIR from others than myself remains relatively small (with an explicit shout-out to those who ''did'' contribute!). Seeing as the number of Qt contributors only continues to grow (itself a very healthy sign), I think the project is facing a bit of "didn't know; if known, didn't read; if read; didn't understand; if understood, didn't apply" going on. So this session is both to spread awareness, as well as discuss how the process to migrate TTLOFIR items to a more "official" format could look like.
|-
|Future of QtLanguageServer repo / Proper CI for non-mainline repos?
|QML Team
|Discussion
|The Qt Language Server repository contains an implementation of JSON RPC and skeleton functionality to implement a language server. It is a non-essential module, which led to https://bugreports.qt.io/browse/QTBUG-115252 , causing it's main user qmlls to not work. While this issue has been resolved, we should ponder a few questions:


* Do we really need a proper Qt module for it?
=== FAQ ===
* Should JSON RPC move to QtBase?
* Would anything besides qmlls benefit from having generic language server support?
* Can we have "non-mainline" repos which still get the full gerrit+CI workflow (the main reason Qt Language Server became an official module)?
|-
|Error handling in Qt (and C++)
|Volker Hilsheimer
|Discussion
|We have several ways of handling errors in Qt: fail with runtime warning, return false with errorString() getter, or emit errorOccurred() signals - often combinations of those.
We don't throw exceptions, and we rarely return std::optional. C++23 has introduced std::expected as the vocabulary type for error handling, but we likely won't be able to require C++23 for several more years. Various alternatives that are (or have been) discussed in the C++ committee (such as [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0709r4.pdf throwing value-type exceptions]) are decades out, if they ever get anywhere at all.
However, we have had several attempts to implement something along the lines of std::expected, esp in cases where we needed better tools to handle errors from system API calls:


* QSystemResult for I/O: https://codereview.qt-project.org/c/qt/qtbase/+/546896 [1]
* Why can I not find my project?
* In Qt Multimedia: https://codereview.qt-project.org/c/qt/qtbase/+/437291
** The migration does not migrate all projects to the cloud. We use this as an opportunity to prune no longer used projects. For the time being the '''current Jira servers will remain for historical purposes, though all projects will be read-only'''. If you think a project should be migrated, please contact jira-admin@qt-project.org.
* To opt-out of QJniObject's overly aggressive exception-clearing: https://codereview.qt-project.org/c/qt/qtbase/+/511466
* Why do all issues have the same "updated" date?
** During the migration we needed to make some bulk changes, which unfortunately have changed the "updated" field on all modified issues. That means sorting by this field will be less useful for the time being.  


As pointed out in [1], C++17 compatible implementations of std::expected exist. Should we allow ourselves to use one of them internally? Can we have something that we can use in our own public API (e.g. for QJniObject)?
=== Support ===
|-
|Qt Documentation
|Nicholas Bennett, Paul Wicking
|Presentation and Discussion
|Presentation Link https://prezi.com/view/7d8AeklFc5xp8pmPT2yy/
* Qt Documentation State of the Union
** How do I contribute?
** Where do I find the documentation I need?
** How do I give feedback?
* QDoc
** The recommended way to use this today is via CMake.
** libclang version
** New features
** Future features
** Look at its great docs!
** How to make suggestions.
** Feedback from KDE moving to QDoc
|-
| C++26 Reflection and Qt
| Thiago Macieira
| Discussion
| C++26 will come with the first release of reflection. It's probably not enough for Qt's needs to replace moc, but we should know what is missing so we can recommend to the committee our use-cases. We also need to know if there are any design issues that would make the replacement completely impossible.
|-
|Qt Lottie : Where it is, where to go
|Kwanghyo Park
|Presentation and Discussion
|A brief introduction of the Qt Lottie module and presents the current status.
Following up with a suggestions and discussions on how it could be improved and updated.
|-
|[[QtCS2024 Flaky|Flaky tests]]
|[[User:Eddy|Eddy]]
|Discussion
|Should blacklistings be temporary&#x202F;? What policy should we apply to them&#x202F;?
|-
|QFuture/QPromise: ’sup?
|Kai Uwe Broulik
|Discussion
|QFuture capabilities have been much expanded in Qt 6, yet it’s not seeing much use within Qt itself.
In the scope of Qt OPC UA, which is inherently asynchronous, we’re investigating the use of QFuture/QPromise to make the APIs more convenient.


This discussion session is about setting standards for QFuture/QPromise-based APIs throughout Qt to ensure consistent naming and error handling before their use within Qt expands further.
* Please use the extensive Jira documentation if you are looking for specific issues
|-
** https://support.atlassian.com/jira-software-cloud/resources/
|Qt on Windows: Windows 11 Style and Recent Developments
* When you browse the Jira documentation please ensure that you always pick the cloud version. Looking at the header of a page you should be able to find an indication whether you are looking at a cloud version or the server/data-center version.
|Wladimir Leuschner
* If you cannot find a solution to your issues, please contact
|Presentation + Discussion
** Email: jira-admin@qt-project.org
|The native look of UI elements have changed their appearance starting with Windows 11. Since Qt 6.7 the UI changes were incoorperated into QtWidgets with a new QWindows11Style. This presentation will give a brief introduction into the style and about recent developments with a glimpse on what comes next for Qt on Windows.
|-
|Qt SBOM (Software Bill of Materials)
|Alexandru Croitor
|Presentation
|Incoming EU legislation is influencing companies to provide a Software Bill of Materials for their products. Qt will start offering one starting with Qt 6.8. This will be a short presentation about what an SBOM is, and what Qt maintainers will have to be aware of to ensure it is up-to-date.
EDIT: No separate slot needed.
|-
|Compile once. Run everywhere
|Cristian Adam
|Presentation + Discussion
|Deploying of C++ applications on Windows, Linux, macOS for x86_64 and arm64 can be challenging. By using ''Cosmopolitan Libc'' we could have an alternative.
|-
|Qt Creator meets Lua
|Marcus Tillmanns
|Presentation
|Writing Extensions for Qt Creator gets more convenient using Lua scripting.
|-
|FFmpeg in Qt Multimedia
|Jøger Hansegård, Artem Dyomin, Maycon Stamboroski
|Presentation + Discussion
|Qt Multimedia is replacing native media backends with a backend based on FFmpeg. We will discuss why and how this affects contributors and users.
|-
|QML Next - Qt Quick UI with non-C++ languages
|Vladimir Minenko
|Presentation + Discussion
|There are a few prototypes and concepts for combining  Qt Quick UI with backends written in other, non-C++ languages. Lets have a look what that and where it could or "should" go
|-
|How to hate QML
|Ulf Hermann
|Presentation + Discussion
|There are lots of people who don't like QML, albeit most of them for the wrong reasons. We're going to turn the tables this time. I'm going to hate on QML the Right Way™ and you're going to convince me of its merits. This will either result in a constructive debate on how to improve the language or in an idea what a new language to replace QML could look like.
|-
|AI tooling for Qt developers
|Daniel Smith
|Presentation + Discussion
|LLMs can be a powerful tool for developers if utilized in a sensible way. I will briefly present a couple bots that have proven useful in trials, and want to hear more ideas for how LLMs could be put to work in our development ecosystem. I believe that if accurate enough, and only if they don't get in the way, LLM based bots can reduce wasted time and make working on Qt a better experience.
|-
|TaskTree '24
|Jarek Kobus
|Presentation + Discussion
|TaskTree (https://wiki.qt.io/TaskTree) is a solution for automatic management of asynchronous tasks. It is used in many places inside QtCreator. The first non-Creator usage is AssetDownloader (shared among many Qt examples) for the upcoming Qt 6.8 release. The presentation shows in more details what this solution is about, how you may start using it and a short description about new task tree functionalities added recently.
|-
|Vector Graphics in Qt
|Hatem ElKharashy
|Discussion
|There are many ways to render vector graphics in Qt. In the past few months, Qt Svg module has received some updates that add the most used features from SVG 1.1 standard. Moreover, a new QML component, VectorImage, has been under development that takes an SVG file and render it as part of QtQuick scene graph. Let's discuss those new features and talk about the possible new features that can improve them.
|-
|Wayland protocols for Qt
|Tor Arne/David
|Discussion
|To what degree can we propose/adopt custom Wayland protocols that solve issues we're having with Qt/KDE, such as global window positioning, surface-less window geometry, etc
|-
|C++20
|Alex Blasche
|Discussion
|Where to go with C++20 in Qt
|-
|Supporting multiple versions of Qt in QML
|Fabian Kosmale
|Discussion
|Addressing KDE's complaint/wish to have something like ifdef in QML
|-
|XR
|Christian Strømme
|Discussion
|Check the current status of VR/XR support in Qt
|-
|qt-project.org
|Cristián Maureira-Fredes
|Discussion (hallway track)
|Ideas on how to improve the site? Curious on how does it work? please find me and let's have a chat :)
|}
[[Category:QtCS2024]]

Revision as of 13:15, 22 September 2025

This Page is an FAQ for upcoming migration of Qt's bug tracking system to the Atlassian cloud. The migration is planned for September 2025.

Rationale

In 2024 Atlassian discontinued the support for the Jira Server version. The only alternative option for Open Source usage is a Jira Cloud license. This means the current content from https://bugreports.qt.io must be migrated to https://qt-project.atlassian.net. After this migration bugreports will stay around as read-only reference for some time to come.

Migrated projects

The following projects were migrated to https://qt-project.atlassian.net.

Coin (COIN) Qt Design Studio (QDS) Qt Tools for Android (QTTA) Qt AS Partners Only (QTAUTO)
Qbs ("Cubes") (QBS) Qt Extensions (QTEXT) Qt Visual Studio Tools (QTVSADDINBUG) Qt Product Management Organization (QTPMO)
Qt (QTBUG) Qt Installer Framework (QTIFW) Qt WebBrowser (QTWB) Qt Requirements Management (QTPM)
Qt 3D Studio (QT3DS) Qt Playground Projects (QTPLAYGROUND) Qt for Python (PYSIDE) Qt Product Installation Framework (QTPIF)
Qt Bugtracking interface (QTJIRA) Qt Project Website (QTWEBSITE) VS Code Extension (VSCODEEXT)
Qt Creator (QTCREATORBUG) Qt Quality Assurance Infrastructure (QTQAINFRA) Qt Automotive Suite (AUTOSUITE)

This is not the complete list of all projects on bugreports. In particular old projects or QtC internal projects were left behind. Other cases involve The Qt Company specific projects which were migrated to a different Jira Cloud instance.

Timeline & Target

The target server is https://qt-project.atlassian.net.

State Status Time Line Description
Test migrations Ongoing Started on 16. June 2025 Admin working on playbook for migration. Users cannot log into the instance yet but the Jira cloud instance is publicly visible.
User acceptance tests Not started August 2025 Voluntary testers collect first impressions, log in and can interact with a copy of the data.
Final migration Not started Planned for September The day when the data is moved for good and bugreports becomes read-only.

Link redirection & History preservation

After the migration has completed, https://bugreports.qt.io will be moved to the new URL [./Https://bugreports-old.qt.io https://bugreports-old.qt.io]. From this point on-wards the server serves as historical reference. All projects will be changed to read-only permission schemes. The URL is shifted because a URL redirect will be put in place. The new URL for bugreports will ensure that it remains accessible despite the redirect.

The redirect will be as follows

  • https://bugreports-test.qt.io/browse/QTBUG -> https://qt-project.atlassian.net/browse/QTBUG
  • https://bugreports-test.qt.io/browse/QTBUG-abc -> https://qt-project.atlassian.net/browse/QTBUG-abc

First login

The Jira instance is configured such that a login is not required to browse the content of the server. If you want to create bugs, comment or simply track activity on an issue you need to log into Jira. Please verify whether you are logged in by checking the top right corner of your screen:

Not logged in
Logged In

For migrated users

During the migration the email address of each user is migrated to the Atlassian user directory and an invitation is being sent out. The invite comes from id.atlassian.com and was sent/will be by "Alex Blasche". You have to accept the invite which ultimately leads to an Atlassian login prompt.

Note that not all accounts on bugreports.qt.io were migrated because Atlassian employs email filtering which prevents usage of certain email domains (e.g. one-time mailer domains). Secondly, only accounts with actual changes and comments were migrated. If your login attempt fails please fall back to the First time user section below.

If the user has an Atlassian identity/account with the same email already, your existing account will gain access to an additional Jira instance. Out of the box, Atlassian already offers a couple of identity provider integrations such as Google, Microsoft & Apple. Alternatively, you may use a simple email+password combination. If this is the first time that an Atlassian login is used and none of the existing identity providers matches, you may have to select the Can't log in? option to reset the account password.

if you are using a qt.io email address, please choose the Microsoft identity provider option.

Atlassian Login prompt.png

First time users

New users who have not used https://bugreports.qt.io before or were not migrated due to missing activity should follow one of the options below.

Automatic login

Disclaimer: This option is currently not yet working due to a bug which is actively investigated.

Assuming you have an active Atlassian account please go to https://qt-project.atlassian.net and attempt log into the Jira instance. Upon first login you will be automatically added to the user directory for the Jira instance. The default permission set grants the rights to comment, file new issues and vote/watch issues.

Invite other user

Every user with an existing account can invite another user. The screen short below depicts where the invite option can be found in the user interface. As consequence the to-be-invited user will receive an email from Atlassian with a link to follow. This option might be helpful if you already know a colleague or other community member who has known access.

Invite other user.png

Ask Jira admin

This is the fallback option. Please send an email to jira-admin@qt-project.org

Adjusting personal setup after first login into the cloud instance

Update your personal setting

If you log into the system for the first time, please update your profile and personal settings. Quite a few personal options such as profile, privacy, security, email notification & account preferences can be found behind those links.

Account details.png

Filter adjustments

As mentioned above, not all projects were migrated to the Jira cloud (details see above). However all filters(regardless what projects they refer to) were migrated. This option was chosen to avoid loss of filters due to the migration. As a consequence some filters may be broken or simply obsolete. Check for the following causes:

  • Remove any filter which you no longer use or are unrelated to the set of projects which were moved to the cloud.
  • Filter ids change during the migration as this is a running number. Therefore any JQL queries which refer to other filters should be changed such that they reference them by filter name.
    • e.g. filter = 123456filter = "verbose filter name"
  • A filter references a project that was not migrated. → Remove such project references. See the above list of migrated projects to see what is available.
  • A filter references a custom field with the cf[<field id>] notation. In most cases the field ID will have changed. → Adjust the filter to the new ID
  • The filter uses custom JQL extensions which are no longer supported. → Try to find a replacement

Dashboards

  • Similar to filters (see previous section), all dashboards were migrated. If the board does not display properly there are generally two reasons:
    1. The dashboard's gadgets use filters which are broken
      • Suggested fix: fix up your filters as described above.
    2. The dashboard gadget is no longer supported
      • Suggested fix: replace it with a similar gadget
  • Remove any dashboards which you no longer use or are unrelated to the set of projects which were moved to the Jira cloud instance.

Agile Scrum/Kanban boards

You can find all migrated boards via https://qt-project.atlassian.net/jira/boards.

  • Remove boards which you no longer use or are entirely related to projects which have not been migrated to the Atlassian cloud
  • Sanitize boards for general functionality. The most likely reason for errors may be the board filters not being fixed yet (see Filter section above)

General FAQ

Migration limitations

Unfortunately the cloud migration has some limitations. Since not all projects (in particular old ones) were migrated to the cloud, it is not possible to maintain issue dependencies to non-existing projects. This has follow on effects for filters/dashboards/agile boards.

What was/will not be migrated?

The Jira cloud migration process does NOT migrate all data from the server to the cloud. Some data can be migrated via manual steps but others will stay behind. If you are interested in what does and what does not migrate please consult

https://support.atlassian.com/migration/docs/what-gets-migrated-with-the-jira-cloud-migration-assistant/

Notable examples are:

  • Kanban board sub-filter
  • Links to issues or entities that are not migrated
  • Activity streams
  • WebHooks
  • User avatars: users will need to update their avatars after migrating

JQL

Referencing custom fields and their auto-completion in JQL

The usage of custom fields in JQL queries has increased in functionality compared to the Jira server version. A custom field is a field that extends the standard Jira issue fields with our own versions. The official documentation for custom fields can be found under https://support.atlassian.com/jira-software-cloud/docs/jql-fields/#Custom-field.

Using custom fields in a JQL allows multiple ways of referencing them like by name, by Custom field ID or combination of both. This functionality is available to identify any custom field with duplicate names. The best way to use custom field in a JQL is to start typing the name of the field and select the correct one from the auto-suggested values. For example, when you start typing "tag" into the query box, the suggestion starts populating as "Tags[Labels]". Please find below screenshot illustrating the fact:

Custom Field "Labels"

If there are more custom fields with Tags as a name but different field type (like DropDown or Text) then the user can easily distinguish them and use the correct field.

This has consequences if you rely on auto completion for the field. There are different types of supported functions and operators for different types of custom fields. The auto-suggestions will suggest values according to their supported operator or functions. For  example in the above case, it is a custom field of type Labels. The JQL field documentation contains a section of supported & un-supported functions and operators for all types of field. It clearly states that the operator (~) is not supported for labels and hence the suggestions are full values. Therefore simple Jira JQL that ignores specific typing like "Tags = " will not trigger auto-completion. Please check the Labels field documentation for supported and non supported operators for Labels fields.

JQL extensions

Some people use non-standard JQL functions/extensions. Atlassian changed the way JQL extension plugins can work. Arguably, it is more difficult and cumbersome as it requires a separate search UI. None of the plugins which were previously used on https://bugreports.qt.io works in the cloud anymore. In the short term this means some limiations. However it should be noted that the cloud's builtin JQL capabilities are more powerful than on the server version. Therefore as your first step you should check JQL cheat sheet.

FAQ

  • Why can I not find my project?
    • The migration does not migrate all projects to the cloud. We use this as an opportunity to prune no longer used projects. For the time being the current Jira servers will remain for historical purposes, though all projects will be read-only. If you think a project should be migrated, please contact jira-admin@qt-project.org.
  • Why do all issues have the same "updated" date?
    • During the migration we needed to make some bulk changes, which unfortunately have changed the "updated" field on all modified issues. That means sorting by this field will be less useful for the time being.  

Support

  • Please use the extensive Jira documentation if you are looking for specific issues
  • When you browse the Jira documentation please ensure that you always pick the cloud version. Looking at the header of a page you should be able to find an indication whether you are looking at a cloud version or the server/data-center version.
  • If you cannot find a solution to your issues, please contact
    • Email: jira-admin@qt-project.org