{"push_id":756703895,"size":32,"distinct_size":14,"ref":"refs/heads/context_v17","head":"768c370c306e41f94a84bc364f4979b4ebb72768","before":"899df5b45a4334fc011512f27ad4902a3f715b86","commits":[{"sha":"35fc2902f332435f3f8ccbce53cfc6c9fe8611a8","author":{"email":"e388d34fd3c0456122779e95f262c0d70198a168@opengis.ch","name":"Matthias Kuhn"},"message":"[FEATURE] Add `with edit(layer):` to python\n\nExample:\n\n    with edit(layer):\n        f=layer.getFeatures().next()\n        f[0]=5\n        layer.updateFeature(f)\n\nThis will automatically call commitChanges() in the end.\nIf any exception occurs, it will rollBack() all the changes.","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/35fc2902f332435f3f8ccbce53cfc6c9fe8611a8"},{"sha":"f64783493e1f0d090d543829162f67b90ef64641","author":{"email":"e388d34fd3c0456122779e95f262c0d70198a168@opengis.ch","name":"Matthias Kuhn"},"message":"PyQgis: Move NULL and edit to qgis.core","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/f64783493e1f0d090d543829162f67b90ef64641"},{"sha":"8ab69e9386588eed90af5f09e402aa15e871015b","author":{"email":"e388d34fd3c0456122779e95f262c0d70198a168@opengis.ch","name":"Matthias Kuhn"},"message":"`with edit(layer)` raises an error if the commit fails","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/8ab69e9386588eed90af5f09e402aa15e871015b"},{"sha":"d8d9ba1f3f0af32e94391a7329d5037b34bf76bf","author":{"email":"e388d34fd3c0456122779e95f262c0d70198a168@opengis.ch","name":"Matthias Kuhn"},"message":"Fix indentation, followup 8ab69e9","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/d8d9ba1f3f0af32e94391a7329d5037b34bf76bf"},{"sha":"a477b3a9a2681f32556b933f17b3c82277b764ef","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"Enable multi-os builds for travis","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/a477b3a9a2681f32556b933f17b3c82277b764ef"},{"sha":"61f60e408fda57a6246caac6683e1063273a9df5","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"Fix some warnings on OSX build","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/61f60e408fda57a6246caac6683e1063273a9df5"},{"sha":"baef365720b27cfb157ae1edff09997638539b9b","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"Add additional dependencies for OSX build","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/baef365720b27cfb157ae1edff09997638539b9b"},{"sha":"a89550ac480eb689319086098f894c26427f8855","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"Update label server test mask images for OSX","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/a89550ac480eb689319086098f894c26427f8855"},{"sha":"6da3492692218956fe733810172eb97dd353e89d","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"Disable PyQgsServer test on OSX Travis\n\nTest fails with\nFatal Python error: PyThreadState_Get: no current thread\nCMake Error at PyQgsServer.cmake:22 (MESSAGE):\n  Test failed: Child aborted","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/6da3492692218956fe733810172eb97dd353e89d"},{"sha":"6415a75b513c94954be801d7bb8e1c9692663de9","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"Cleanup travis scripts","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/6415a75b513c94954be801d7bb8e1c9692663de9"},{"sha":"d32f3340ae49c603ed9f04243e4cd568c8f972ce","author":{"email":"e388d34fd3c0456122779e95f262c0d70198a168@opengis.ch","name":"Matthias Kuhn"},"message":"Fix typo","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/d32f3340ae49c603ed9f04243e4cd568c8f972ce"},{"sha":"19a833c23d3dc0889b4442d03088d08da688645b","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"Clean atlas interface - avoid storage of pointer to atlas feature","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/19a833c23d3dc0889b4442d03088d08da688645b"},{"sha":"e9ff061f05fc1b02377243fcac3a2efd51caa37b","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"Cleanup composer label atlas handling","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/e9ff061f05fc1b02377243fcac3a2efd51caa37b"},{"sha":"7aa5622548687f6a72fc2e686a5b2dfac878ec2e","author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@jackpine.me","name":"Michael Kirk"},"message":"reformatting project properties help, no copy changes","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/7aa5622548687f6a72fc2e686a5b2dfac878ec2e"},{"sha":"ce8cef8b801df06a290f78d72e115a0f5f573c88","author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@jackpine.me","name":"Michael Kirk"},"message":"tab is called \"identify layers\"","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/ce8cef8b801df06a290f78d72e115a0f5f573c88"},{"sha":"424efcce8aee99522669a9085b6f95ed0e572d92","author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@jackpine.me","name":"Michael Kirk"},"message":"context help for projection selector","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/424efcce8aee99522669a9085b6f95ed0e572d92"},{"sha":"446410ee78d5eff4714821225a9e729690806ab1","author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@jackpine.me","name":"Michael Kirk"},"message":"update CRS docs: find button replaced by filter","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/446410ee78d5eff4714821225a9e729690806ab1"},{"sha":"40500d6080b1427a937905a57c5d12250485900f","author":{"email":"105ed4f0a64f8fb5511e2ddc329608400dca654b@gmail.com","name":"Nathan Woodrow"},"message":"Merge pull request #2243 from michaelkirk/feature/crs_help\n\nFix #13213 - Feature/crs help","distinct":false,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/40500d6080b1427a937905a57c5d12250485900f"},{"sha":"c6b98b9aa4536ec1035108ab0fd413b01f1546eb","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"Add missing sip changes","distinct":true,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/c6b98b9aa4536ec1035108ab0fd413b01f1546eb"},{"sha":"64b498b0d58b71f4c32bc30187fb47623fa08a14","author":{"email":"b67e5222dd87d4e673d6c138fe9a5609d70ee8ee@gmail.com","name":"Nyall Dawson"},"message":"New framework for context based expressions\n\nThis commit adds the ability for expressions to be evaluated against\nspecific contexts. It replaces the previous behaviour where\nexpressions were evaluated against a specific feature and could\nutilise fragile global \"special columns\".\n\nNow, expressions are instead evaluated using a context designed for\neach individual expression. This is done via QgsExpressionContext\nand QgsExpressionContextScope objects.\n\nA QgsExpressionContextScope encapsulates the variables and functions\nrelating to a specific context. For instance, scopes can be created\nfor \"global\" variables (such as QGIS version, platform, and user-set\nvariables specified within the QGIS options dialog. Think things\nlike user name, work department, etc), or for \"project\" variables\n(eg project path, title, filename, and user-set variables set\nthrough the project properties dialog. Project version, reference\nnumber, that kind of thing). Many more scopes are planned, including\nmap layer scopes (variables for layer name, id, user-set variables\nthrough the layer properties dialog), composer scopes, etc...\n\nQgsExpressionContextScopes are 'stacked' into a QgsExpressionContext\nobject. Scopes added later to a QgsExpressionContext will override\nany variables or functions provided by earlier scopes, so for\ninstance a user could override their global 'author' variable set\nwithin QGIS options with a different 'author' set via the project\nproperties dialog.\n\nThe intended use is that a QgsExpressionContext is created before\na batch set of QgsExpression evaluations. Scopes are then added to\nthe context based on what makes sense for that particular\nexpression. Eg, almost all contexts will consist of the global\nscope and project scope, and then additional scopes as required.\nSo a composer label would be evaluated against a context\nconsisting of the global scope, project scope, composition scope\nand finally composer item scope. The batch set of expression\nevaluations would then be performed using this context, after which\nthe context is discarded. In other words, a context is designed\nfor use for one specific set of expression evaluations only.","distinct":true,"url":"https://api.github.com/repos/nyalldawson/QGIS/commits/64b498b0d58b71f4c32bc30187fb47623fa08a14"}]}