Logo TIB AV-Portal Logo TIB AV-Portal

QGIS 3: plans, wishes and challenges

Video in TIB AV-Portal: QGIS 3: plans, wishes and challenges

Formal Metadata

QGIS 3: plans, wishes and challenges
Title of Series
Part Number
Number of Parts
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
QGIS is a very powerful GIS environment. More and more features have kept coming in the 2.0 branch, thanks to a growing number of users, developers and funders. But it is occasionally time to look up and envision the future to make sure this growth of energy is used at its full potential, especially to make sure new features are not added to a base that will become hard to maintain or evolve. Discussions and active work have already been done about how to transition away from the obsolescence of Python 2 and Qt 4. Some API breaks will have to occur and this is an opportunity to include major changes, both for users and for developers. This talk will present some of the changes that are planned or wished for the 3.0 version of QGIS and will detail challenges that remain to see them exist, from a technical, organisational or economical point of view.
Keywords Oslandia
information states projects bits pressure
choice Android schedule beta integrators code time decision font part unicode traces information web mathematics square diagrams stable classes proof programming language font Development closed The list branch bits instance meetings several message-based normal input Right point current factor Development component mobile Continuation branch fields versions goodness Propagation root plugin platforms web mobile choice forces unique projects plan coma applications graphical user interface words Computer animation logic case versions libraries
complex script code sources formating curve shape part dictionaries sun energy information computational Bugs geometric Types different configuration core classes in service script programming language Bugs Arm smooth files construction complex The list storage branch effects Menu unit testing instance Types means testing Right geometric reverse WAN point link widgets files branch storage Codes number versions write goodness specific level testing refactoring mazes plugin form unit dictionaries Multiple logical consistency Guide expressive coma core lines applications Migrations mathematics Computer animation case Forum versions life classes ensemble Display form
point time capture lines student instance Symbolic versions Symbolic CAN-bus Computer animation buffer compilers level box website Right
curve Multi-Agent Meeting/Interview 3rd sort pressure Security certification
12th mechanisms loop Meeting/Interview framework sort Security
Authentication Meeting/Interview 3rd libraries
Meeting/Interview plugin
versions Meeting/Interview Formula time 3rd
Computer animation
this so now it's been a lot of
information there good yes treat last mission challenges who go pressure from us thank you thank you for the introduction become so I'm going to call it a bit about chooses 3 of some the current state of the project where we are and what where which we target
some few words about the 1st so I'm not supposed to survive and developer what kind of song I didn't have the northwest part of France also so amateur just core developer and 5 sometimes do things in projects as well you can find me on did have of course and so there is here a subliminal miss message so of landowners hiring so if you got talents and if you speak french come join us OK so the outline of this talk is the following I'm gonna explain why we need a new version of judges and tried to give you an overview of the current planning the the Quran schedule of that you just 3 and 3 . 6 releases and I explain in bit what is involved in gently about the changes that need it to be down for the new version of Q just so so it means lots of API changes and I'm gonna show you and going to give you a quick overview of what it you would need has a plugin developers or users to migrate from to the new version of judges and in the end we have a list of short list of new features that and we let in introduced 3 point x branch and is the ideas of new features that are possible so the 1st question is why do we need a new version of judges and well we know that you know that you just is not just and that this the propagation anymore and we have of course a several parts but it's more of a platform and then just have this the publication with with the naked eye and we could also say that it's not just 1 API whether C + + Python API and it's part of the many forces of Kyrgyzstan gives you the opportunity to extend this with your own Python plug-ins so we know there are lots of Python applications in the field and so on the the the current policy and for each major version was to keep the stable or unstable as possible so for instance in the 2 point x branch and you have the square the ground that each new release that doesn't break the current API which is a good thing to have and so you really we have backward compatibility in each major branch and bound so chose stability is a good thing because in its close to kind of gather you don't projects around jujitsu and make sure that you don't break things but sometimes it this stability has been enforced at a high price someone lots of new features are and has a you have missing with Marko Devin lots of new features in the 2 point it's branch and most of the time new future new features like a new concepts and then the thing is the original API has not been originally designed for this new concepts so part of the work of developers to find a good way to make this new concept in and the the existing API so you have the right to add new method the new classes but you can't touch the interesting part of the API so sometimes it is hard and it leads to some kind of heights sorry things that are that are not very clean in the code based on top of that we are just human after all so we may have done wrong choices in the past or traces that we no now that it's not the best we could have it's normal it's logical it's human but we have to find a way to and make to clean the API and these new concepts that we had that that we accumulates it gets it's makes the API hard to maintain and extend and so it's increases what we called technical them so that was the 1st time the 2nd factor is that's we have to treat the solid since the and some libraries we depend on I ought to be discontinued is also more and 1 of them is due to the duty the Jedi library which achieve a version 4 is is a good isn't dying well is not supported anymore and the new version is coming to 5 and that's pretty much the same thing for Python on the Python programming language it's the new version is coming in the old version Python to is son will be abandoned in the near future future so we have to make the decision that the changes there would be a new version of changes that would be based on Qt version 5 and Python 3 so that would be in it 3 but it's always a bad thing to break things into introduce new versions of course it gets it open up to new possibilities so Princeton's in by the 3 there is a better support for unique of characters that are no kind of a 1st class citizen in the Python language and in in the previous Python into version it was kind of like and gt 5 hours lots of new features that's rather interesting some of them are the better integration with OpenGeo technology and especially gets a good support for mobile platforms Android and IOS and so on but some new components in the Qt library like the chance to charts compare library and so you can have with that good-looking charts like fires diagrams and so on that made it may lead to new and interesting features there's also a new web engineering Judy based on on Chrome in the trunk of base but it's not really yet there because it's nightmare to package so that but it may come in the in the near future so basically we need sometimes to clean up the house clean of the AGI so that we are applicable to the more the clinical picture and there is some kind of external forces that force us to to increase the major version so when will it happen but maybe I can just jump to the next set of
diagrams so the decision was made to start work on the this new 3 . x branch just after the 2 116 version so in the last month of June and the end of June there has been the new 2 . 16 release of Kyrgyzstan and at that point of time we forked the 2 would have much branches of development with the new 1 as well the current development branch which is the master branch is the roots of the new coming 3 point x branch so that you have 3 . 0 version would there but we we still want to keep the 2 point x branch just in case and then the 2 different afraid to match people so there might that there may be new releases in the 2 point x branch but it depends on on and then on how much people want to have these 2 points branch and 2 points releases so if there is no new features in this new in this 2 permits branch there won't be any new 2 . x releases so all the efforts are focused on the on this new 3 . it branch and if you what about about long-term releases so the correct long-term really is the 2 . 14 and its we continue until version 3 . 2 which would be the next 3 point x branch locked and so that the 3 . really that would be some kind of beta version of the 2 and 3 . expenditure and it doesn't it doesn't decided that in in so in the beginning of the next year in 2017 we gonna have some kind of a meeting between developers to decide where we are in this work involved for that you should version and maybe we can adjust the dates of release of these 3 . 0 per readers of the time so the current plan is to have a 3 . 0 really is around March right role in 2017 but could move a little bit what OK so
what what does it mean to create a new version of Q 3 and so what we have in society right it's a major refactoring affords as so as I said before it's mainly cleanup of the codebase but so the idea is to use good practices in C + + because it was not always the case before 1 of them is that calls correctness if it's talks to you um and more and that's what we really want to get free the all the all things that he's lying around in the codes for instance 1 of them is the old leveling thing that there's has been lying around since I think the 1 point 8 version of so we are in the 3 point it's branch now it's has been removed and it's something like 5 thousand lines of code that has been written which is a good thing so basically the idea is to reduce the number of lines of code and but keeping the same amount of features so and the key part of the work is also to improve the consistency and the overall readability of the codes that for instance names of classes and methods are not always very consistent so now there is no more the 2 energies effects is and we try to have a consistent capitalization policy and so on and so on and I think it helps a lot newcomers to be acheived and what is an experienced users as well and the idea is going to reduce the technical that ended the overall complexity so it's a it's a clean what it also helps to its as solos to fix bugs that were not possible to fix so far because they would have broken API 1 particular example is this No. 7 7 7 by 10 of the number of the acute is based it's a nine-year-old bird it was kind of like you just crushes the future so you could have already easily crushed chooses the judges just by accessing the geometric part of it you just feature and now it is fixed so it's a really good thing so it's not only eating up it it gets you know by fixing an example that we have been thinking of introducing new things in the coat but that could lead to possible improvements in so for instance use better use all the new possibilities of the C + + language introduces 2 + % and and and 14 and maybe have multiple geometrical arms horror and have the ability to use to create your own custom that are provided in in 5 so what is the status of this work about to just 3 so it's pretty good at it so the computation is OK so you can have already introduced 3 versions with 25 and by from 3 and it's already usable but of course the JPA changes the impacts so lots of tests are still needed and we already know that so it's the finished things are still missing some unit tests are absent now for instance there is no Python 3 version of by specialized this kind of thing if you want to you see what's a list of the different ages rights we have and there is a link here I think the article can again much work go there but you can have a lived there is usually something that the different classes and methods that have been renamed and we walked and so on it's a pretty huge war so now what what to do if you want to develop introduced 3 and my original plug-ins if you work in the core and the the the main target is the master branch of the future of 3 point x branch and you of right and if you want your new future to be also available or for possible future 2 point x release you have to buy for this new feature to the master to branch and of course your in your plugin there is there is no more Python to available so you have to write your you plug ins in Python 3 but we try to be kind with the community so we right written some editing tools that could help you to do the migration I'm not gonna go into much detail but so the idea is if you follow the good practices of Python 3 you would be how that would be helpful for you and there is a 2 to 3 scripts that is in the judges source code
that will help you to migrate your source code so we convert Python file and find life into construction and them to Python 3 and as well for by 2 to 4 2 by 2 to 5 and there are also some and person that you can use if you want to have the same code base for plugin that work for the new introduced 3 versions as well and still continue to work with the introduced to America base and some nice should is the by Judy packages that can help you for have a look at the end of the code for and especially it's used in the tests and 1 1 of the main problems with Python applications is that well they're written in Python so Python isn't isn't interpreted language so you don't know beforehand that to you may have bugs compared to some other as strongly typed programming language so you have to test intestines tests right more unit test if you want to have have like working good so that was for them and lighting work of just 3 now I'm going to give you just a quick overview of the possible new feature that really land injured 3 this is not an exhaustive list is just a list of in the future that I'm aware of and basically this is a feature that have been designed and discussed and approved and that are that that we know we have a funding for its for then and so the 1st 1 is part of the big improvements that we want to have in the In the Lebanese part of and it's kind of a necessary block for for that it's called auxiliary storage and basic it's when you want to have complementary data so you have you your geometric features and data but you want to have all the data just for the simplest and the question is where do you store this complement to that the that are used only for the symbology until now in the end user had to create a new layer and make a drawing or find a way to add new columns to the that source but it's not always possible so with that the future of the idea is to make a it's very easily and transparent for the end user to just creates a new complementary data and for all symbology very easily and the main targets is to help the manual level placement and then to match its uh more easy to to used and this list of new features there is also the lab connectors so it's when you want to manually place lovers around features but you still want to have to draw a line between uh this future and and and and others with different 5 options and so on another option another feature of it's around of form and edit widgets uh when you want to deal with that song evidence that the types coming from complex that source is and the it adds the possibility to define your own custom edit widgets and also the support in hydrogens expressions for array and dictionary types and the primary target is to be able to display and manipulate complex features like what we found in that inspired uh data final and offer some feature that has been already discussed and a approved but that's we still need some funding there are only partially funded or on the funded at all still in this in this leveling improvements there is still what we've called level that's the way to simplify always smooth version of short line geometry for the Lebanese parts this is the energy for leavening reverse for instance that they have a very big colleges another 1 is all of us to link to this leveling thing at the level must where you may want to hides some levels are based on the shape of a suspicion specific geometric still with this traveling thing and improvements around the curved leveling where you may want to manually blasts the beginning of the the cure labeling underlined by means of what we've called anchor points and it may be reduced to have a military line curved leveling and the other 1 is to
around quite advanced capture graphic rendering needs it's 1 of called symbolically keeping it's the future and where you want to have kind of a buffer around the level but this is a special before that that I can freely move drawing at things that are in the underlying layers so for instance in their time level on the left uh you see some thing around and the the world that is in if the the level of the the black lines are removed but the red line is still there so it's not really easy to obtain out of the box and that's the same thing on the right with this symbol so there is this is a new feature is proposed and partly funded so we need students funding from this 1 and I
think the last 1 of the future I know what is to a student some funding is a new type of from the of cluster there by although some standard there is a crowdfunding campaign going on the idea is to have a that to be appealed to aggregate points on the layer and we present segregation by a new markets symbology and a can of course have your Einstein Systembolaget so have a look at the life of website if you if you like OK I think that's pretty much all I have to say for about this new future and you should just version thank you for your attention
what any questions there's
pressure on wait for the money hi I'm
currently in the just doesn't work with a lot of sort of more modern and security certificates that they use on curves due to it on this are
it's handling status that so it's going to be fixed in the other greater that's still sort of Canadian I'm going issue having I think there have been lots of work about this made by
Larry Schiffer there is a new constitution framework that have been done but I don't know the details I'm sorry many of the people of the news about that but I think it's as Marco explained there is a new framework work that is extensible so you can add your new security and have mechanism the thing that is to say this is a loop
of authentication is just going to Nietzsche TPS again I the
act it doesn't and good so
the answer was the and the idea is that the somebody libraries as we have been the so more
questions thank you thank you for your course entered the question to be has or maybe remark priest told forget prostitution is uh plugin which was currently
proved to work because version of Q. instead so the formula for for version of the 3 things
so no more questions of a less sensitive your so there on time you have 5 minutes to time to move to the coast of and 11 o'clock here will be ages from the start of the are interesting and give