Error when upgrade from 1.4.2 to 2.1.0

Issue type:Lost Tenant , Devide Type when Add new Device. Could not map interface connection sites

Python version:
NetBox version:

GitHub issues are intended for reporting bugs and requesting features. For general discussion or assistance with installation issues, please post to our mailing list.


Update workflow name

Purpose

Running go integration tests also now added to the specific workflow file hence we need to rename it accordingly.

Codecov Report
Patch coverage has no change and project coverage change: +49.61 :tada:

Comparison is base (b04f0b5) 30.49% compared to head (20ec2b0) 80.10%.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1300       +/-   ##
===========================================
+ Coverage   30.49%   80.10%   +49.61%
===========================================
  Files         169        9      -160
  Lines       19591      548    -19043
  Branches     5810      246     -5564
===========================================
- Hits         5974      439     -5535
+ Misses      13488      109    -13379
+ Partials      129        0      -129

Flag
Coverage Δ

idp-domain-service
80.10% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 178 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


how to relaunch "spyder-notebook" after a failed (because slow) start ?

at first slow start, I get a syder-notebook time-out.

Then, even if i ask Display->Notebook, I get a grey window and don't know how to relaunch the spyder-notebook process . Is there a way ? if not, could there be ?

@stonebig, please open issues about each plugin in its corresponding repo instead of here.

Issue moved to spyder-ide/spyder-notebook #93 via ZenHub


triangle: Allow triangles where a+b == c

These are degenerate triangles since they're really just lines, but
they're still good enough under the triangle inequality (which
explicitly allows a+b == c) so let's go ahead and test for them.
Test for isosceles and scalene added. Equilateral is impossible.
Closes #231

Going to wait a bit and monitor the issues in the other tracks to see if any other track maintainers have objections since I'd find it better if all tracks are in agreement on this one. If everyone's convinced then we're good to merge.

Ah hold on. Should probably bump test version.

Test version is added so this is ready to ship.

Thank you!


Use cast instead of dynamic invocation for enum map keys.

@mattharr Can you please remove the import in line 25 (import java.lang.reflect.InvocationTargetException;), otherwise checkstyle fails. I cannot commit onto your master.

@michael-simons I removed the import, I didn't see the checkstyle problem, because I'd disabled it for my Maven run - for me the checkstyle rules fail on checking the properties files (no newline at the end), maybe its because I'm on Windows?

Builds on our internal CI now @mattharr.
Thanks for your contribution!


Add support for ESP32 C3 Super Mini

https://homeding.github.io/boards/esp32c3/super-mini-c3.htm

The board is now available.


Reset the K matrix avoiding findall

Closes #411

Codecov Report

Merging #418 (15f56a5) into main (3d7376d) will decrease coverage by 0.05%.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #418      +/-   ##
==========================================
- Coverage   86.78%   86.74%   -0.05%
==========================================
  Files          43       43
  Lines        1634     1629       -5
==========================================
- Hits         1418     1413       -5
  Misses        216      216

Impacted Files
Coverage Δ

src/StructuralAnalyses/StaticStates.jl
87.50% <ø> (ø)

src/StructuralAnalyses/StructuralAnalyses.jl
78.72% <ø> (ø)

src/StructuralSolvers/StructuralSolvers.jl
71.42% <ø> (-0.80%)
:arrow_down:

src/StructuralAnalyses/StaticAnalyses.jl
100.00% <100.00%> (ø)

... and 2 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Remove version: kmeleonbrowser.K-Meleon version 75.0

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

Close with reason: URL works;


add warning for OverrideVMSize

Log warning for user to apply '-ForceCustom', if it's not expected.
e.g, testing without -ForceCustom like:
. 'C:\LISAv2\Run-LisaV2.ps1' -TestPlatform 'Azure' -RGIdentifier 'test-1m' -ARMImageName 'Canonical UbuntuServer 18.04-LTS Latest' -OverrideVMSize 'Standard_NC24rs_v3' -XMLSecretFile 'xxx.xml' -TestNames 'NVIDIA-CUDA-DRIVER-VALIDATION-MAX-GPU' -ResourceCleanup 'Delete'
===========Test Log======================
07/15/2020 18:17:59 : [INFO ] CUDA_DRIVER=10.1.105-1 injected to case NVIDIA-CUDA-DRIVER-VALIDATION-MAX-GPU
07/15/2020 18:18:00 : [WARN ] Pre-defined 'Standard_NC24' (instead of 'Standard_NC24rs_v3') is used as '<OverrideVMSize>' for test case 'NVIDIA-CUDA-DRIVER-VALIDATION-MAX-GPU', if it's not expected, use '-ForceCustom' parameter of LISAv2 to force override it.
07/15/2020 18:18:00 : [INFO ] Measure VM capabilities of current subscription...
07/15/2020 18:18:21 : [INFO ] Measure vCPUs, Family, and AvailableLocations for each test VM Size...

@harz566  I tested it, but not see this warning job-azure-cloudtest-manual/7528

This does not sound right. If the user set the value, then it should be following the values. No need an extra parameter.

@juhlee-microsoft  the logic is to respect this setting when there is OverrideVMSize in test case definition, if no this setting, the behavior still the same, if this section OverrideVMSize exist, and we need -ForceCustom

@juhlee-microsoft the logic is to respect this setting when there is OverrideVMSize in test case definition, if no this setting, the behavior still the same, if this section OverrideVMSize exist, and we need -ForceCustom

I don't understand this change's purpose.


[Network] az network application-gateway waf-policy policy-setting update: Add support for Log Scrubbing and Add Inspection Limit Feature

Related command

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Network


docs: fix the path of global style in example code of assets

🔗 Linked issue
The example path on the official website is incorrect, and global style variables cannot be introduced correctly

❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)

📚 Description
Changing @ to~is necessary to correctly implement the introduction.

I wonder why as @ and ~ are both valid aliases by default 🤔

It's strange, the bug on my project has also disappeared. Maybe it is better to be correspond with the official document.

I personally prefer ~ and it is in general what we document (these are some of the few instances in the docs where we use it), so I think we could merge this anyway, alongside changing:
https://github.com/nuxt/nuxt/blob/a5dad0d2e83323abc2bed7cfe3541f4dbd495335/packages/schema/src/config/app.ts#L277-L280
and
https://github.com/nuxt/nuxt/blob/8af10e459fceec2f2b93cd6223692d1d861bdb2d/docs/1.getting-started/4.styling.md#L212-L238

@danielroe Good point with regards to consistency 👍

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (main@758b8be). Click here to learn what that means.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #24574   +/-   ##
=======================================
  Coverage        ?   58.65%
=======================================
  Files           ?        5
  Lines           ?      861
  Branches        ?       46
=======================================
  Hits            ?      505
  Misses          ?      356
  Partials        ?        0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Adding from history, I also agree about ~ preference over @ it is much safer in edge-cases where @ has special meaning in toolings, previously with webpack CSS loader we had some unresolvable issues. I think main reason we first introduced @ also was ecosystem consistency with vue-CLI also the fact that europian (maybe more?) keyboards have not nice accessibility for typing ~ character as they have for @


[Enhancement] Field Tooltips

I've noticed that some controls like the Link axis button have tooltips that are shown when the mouse hovers over them.

It would be helpful if hovering over field labels would display a short description of what the field does. For example, hovering over the Set others to black field label on the Color replace node could show:
Set all colors not matching the [Palette from] colors to black.

This isn't a huge thing for actual functionality obviously, but it would help people understand what each field does on a node.

That's a good suggestion! There are a lot of properties that I'm not sure how to call it concisely so having a tooltip for them will be nice.


Assert triggered in DocumentReference::AddSnapshotListener

Please fill in the following fields:
Pre-built SDK from the website or open-source from this repo: prebuilt
Firebase C++ SDK version: tested on 6.15.0 and 6.15.1
Firebase plugins in use (Auth, Database, etc.): Auth, Firestore
Additional SDKs you are using (Facebook, AdMob, etc.):
Platform you are using the C++ SDK on (Mac, Windows, or Linux): Mac
Platform you are targeting (iOS, Android, and/or desktop): Android
Please describe the issue here:
When calling DocumentReference::AddSnapshotListener and asking for metadata changes while using a lambda as callback argument,  the assertion at lambda_event_listener.h:23 is triggered. What seems strange to me is that the one at  firestore/src/common/document_reference.cc:164 is not triggered. Also the same code is working on iOS and on Mac. Using a static function and globals to store the state is also working. Here is the code:
void
backend_firebase::create_chunk_data_done(const session_info &session,
                                         const std::shared_ptr<session_handler> &handler,
                                         std::size_t transferred,
                                         const firebase::Future<void> &future)
{
    if (future.error() != Error::kErrorOk) {
        ...

No
What's the issue repro rate? (eg 100%, 1/5 etc) 100%

@canatella - You found a bug that happens when using listeners and lambda functions. We'll fix this in the next release. Unfortunately, I'm not sure exactly when that will be because we're using a new release process and it's not predictable yet. You'll have to wait until then or use a static function with globals in the meantime.
Thanks for reporting this issue!


Roll engine a8890fdccd66..3b46705db249 (4 commits)

https://github.com/flutter/engine/compare/a8890fdccd66...3b46705db249
git log a8890fdccd66..3b46705db249 --no-merges --oneline
3b46705db Roll src/third_party/skia 38ca6d509d9f..d842557c0724 (5 commits) (flutter/engine#6302)
0c166fe3f Roll src/third_party/skia 05cf051f0252..38ca6d509d9f (1 commits) (flutter/engine#6301)
cf0fbadce Roll src/third_party/skia 44c6167c4125..05cf051f0252 (4 commits) (flutter/engine#6299)
2ec20aaeb Remove bottom safe-area padding when keyboard up (flutter/engine#6297)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Trybots failed. These were the failed builds: https://flutter-dashboard.appspot.com/build.html

Commit queue failed; closing this roll.


Can't override default frame_size for UDP buffers in logs_config

This might be just me doing something wrong, but I can't seem to be able to override the log_config.frame_size variable for UDP log listener.
I have added this in my datadog.yaml
logs_config:
  frame_size: 30000

I assumed that was the right place since the config name is "logs_config.frame_size" but to be sure, I tried adding this to my "logs" configurations as well with no success.
https://github.com/DataDog/datadog-agent/blob/dbdec93a04d629f18eeb491d30016da26652b69c/pkg/config/config.go#L279
What I suspect is going on is that the used value is evaluated before the config is loaded, meaning that there is no way to override it.
I'm not very familliar with golang, but maybe this global variable here is the culprit:
https://github.com/DataDog/datadog-agent/blob/master/pkg/logs/input/listener/listener.go#L15
Please help me override my frame size, my logs are too big :sweat_smile:

Hi @behos,
Thanks for opening this issue, I'll investigate and keep you posted.

Closing this issue as it's been resolved in 6.5.0


how to use this website in chrome for captcha website

Thanks for making this type of project . But new person like me dont know how to use it . So pls make it available for everyone . and give some detail for how to use .

Thanks for making this type of project . But new person like me dont know how to use it . So pls make it available for everyone . and give some detail for how to use .

Hello there, As I mentioned in the readme file, you will need to train a model to work with the website you would like the solver to work for. Now once you have trained a model to work with captcha the site is providing you can query the selector on the page where the image is stored and either take a screenshot of the image and have your program automatically save it to a folder where you can then tell the solver to open and get the letters/numbers provided, or you can just have your program upload the url to the local host server I have created for you as an example in in the examples folder. You will need to make adjustments to both your program and probably the server example as well to work for what you need it to.


Rename end-to-end.yml to end-to-end

Task/Issue URL:
Tech Design URL:
CC:
Description:

Steps to test this PR:
1.
2.

Copy Testing:

[x] Use of correct apostrophes in new copy, ie ’ rather than '

Orientation Testing:

[ ] Portrait
[ ] Landscape

Device Testing:

[ ] iPhone SE (1st Gen)
[x] iPhone 8
[ ] iPhone X
[ ] iPhone 14 Pro
[ ] iPad

OS Testing:

[ ] iOS 14
[ ] iOS 15
[x] iOS 16

Theme Testing:

[ ] Light theme
[ ] Dark theme

Internal references:
Software Engineering Expectations
Technical Design Template

Hey @crimepoppin! I'm unclear of the reason behind this PR, if you see some issue with the current filename please open an issue and we can discuss it. Thanks!


zuul routes to multiple web path to multiple service id

Hi,
I want zuul routes like below but it did not work. basically if path1 resource request comes, should go to service 1, if path 2 resource request comes , should go to service 2.
YAML configuration
zuul
     routes:
          service1 : /path1/**
          service2 : /path2/**

Example request and expected out come are below:
Request to zuul: http:///localhost:8090/path1/apiproduct/api1
service end point is : http://localhost:9089/path1/apiproduct/api1
Request to zuul: http:///localhost:8090/path2/apiproduct/api2
service end point is : http://localhost:9089/path2/apiproduct/api2

You need to set zuul.stripPrefix=false.


Is it possible to locate account ID based on safename and object name?

In PACLI, we are able to delete object based on only safename and object name.
However, Im looking to implement REST API to perform object deletion, with the input of safename and objectname.
Currently what Im doing is using rest api to query all object in safename, and loop through each objectname until there is match, and return account ID, the limit of object return for safename I set to 1000.
Is there any other better method that i can locate account ID based on safename and object name.

Hey @engkeen-source ,
I think your approach is currently the only was since searching by object name is not supported in REST API.
I can share some functions and scripts that might help you overcome the limitations that you described
See this function to search by object name and safe name:
https://github.com/cyberark/epv-api-scripts/blob/ae00bb6b1a18f9e0a63d246daaab0161adccf823/Account Onboard Utility/Accounts_Onboard_Utility.ps1#L880
See this script that can list all accounts across all pages (not limited by 1000 accounts):
https://github.com/cyberark/epv-api-scripts/tree/main/Get Accounts#get-accounts
(See the -AutoNextPage switch)
Hope this helps,
Assaf

Thanks for your swift answer, so -AutoNextPage switch allow me to loop through more than 1000 account and find the account ID.

This case can close. Thanks again.


General reminder: 24th Nov 2359 deadline

A general reminder to finish and submit all lab and get dem As before 24th Nov 2359! ^^ YALL CAN DO IT
(Also PA2 dead line is 2359 of 21st Nov)

Thanks for the remainder! Wish everyone a smooth submission!
btw it's PA2 deadline not PA1 haha

@yuyanjulia oops >< i edited it haha

Thanks for the reminder!! Just checking how long does it take for one to finish the project?

Thanks for the reminder!! Just checking how long does it take for one to finish the project?

differs from person to person but ive seen some people completitng it in 2-3 days if they can dedicate time to it


Fix readme on PyPi

Overview
Readme is expected to be in RST. See solution - https://github.com/frictionlessdata/jsontableschema-pandas-py

MERGED
https://github.com/frictionlessdata/datapackage-py/issues/68


[1]    2065 segmentation fault  robohydra robohydra.conf

Hi. I just upgraded to node v4.0.0 and as you can see it's choking.

Looks like I had to reinstall the global package after the upgrade,

Oh, good to know :-) I was checking now and I didn't see it fail, so I wondered if it had to do with the specific configuration you were using.
But, it's probably a good idea to NOT install RoboHydra globally. At least if you're under some kind of Unix, it's IMO nicer to add ./node_modules/.bin to the $PATH and always install local...


[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)

System info
Platform the Issue occurs on: Android
Plugin name: AndroidAlarmManagerPlus
Plugin version:2.0.5
Steps to Reproduce

... I want to use the android alarm manager plus plugin to get some data using the shared preference plugin in the background every few minutes but I can not use the shared preference plugin in that as well as any other. Please provide me with any solution regarding that
... It says, I need to register the plugin before using it but in the readme, there is no explanation for that how anyone does that.
...

Logs

Flutter doctor output

[Windows] package_info_plus: ^1.4.0
Syncing files to device Windows...
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel dev.fluttercommunity.plus/package_info)
#0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:175:7)
<asynchronous suspension>
#1      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:377:43)
<asynchronous suspension>
#2      MethodChannelPackageInfo.getAll (package:package_info_plus_platform_interface/method_channel_package_info.dart:13:17)
<asynchronous suspension>
#3      PackageInfo.fromPlatform (package:package_info_plus/package_info_plus.dart:36:26)
<asynchronous suspension>
#4      main (package:task_reminder_flutter/main.dart:28:31)
<asynchronous suspension>

 Flutter (Channel stable, 2.10.4, on Microsoft Windows [Version 10.0.19044.1586], locale zh-CN)
    • Flutter version 2.10.4 at D:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c860cba910 (8 days ago), 2022-03-25 00:23:12 -0500
    • Engine revision 57d3bac3dd
    • Dart version 2.16.2
    • DevTools version 2.9.2

I think it is a problem with flutter itself, since in my case I have the same error with Hive and I believe it is the case for any plugin used on the background thread of AndroidAlarmManagerPlus

I think it is a problem with flutter itself, since in my case I have the same error with Hive and I believe it is the case for any plugin used on the background thread of AndroidAlarmManagerPlus

Now I am sure
I upgraded to flutter 2.12.0-4.2.pre (latest beta version) and it works fine

On Windows project upgrading to 2.11.0-0.1.pre did not solve the problem

On Windows upgrading to 2.12.0-4.2.pre did not solve the problem

@sowravroyjoy it seems to be an error of shared_preferences not AndroidAlarmManagerPlus, are you sure you call


Request: Allow list of schema to be validated against

It would be useful to allow the schema key and  to be a list, which would be interpreted as a set of possible schemas that should be applied and the entry should validate if any of the schemas validate. It is already possible to give a list of types, but if I want to make sure that a value is a dict that has one of two possible formats, it is not possible without creating validate_type* functions.
validictory allows this because it handles custom types in a way to the proposal in Issue #96

i think an example would be useful.
would that be an equivalent to the items-constraint in a list's context?

I'd like to be able to do something like this (or equivalent)
      schema   = { 'parts' : { 'type' : 'list'
                             , 'schema' :
                               { 'type' : [ 'dict', 'string' ]
                               , 'schema' :
                                 [
                                   { 'model number' : {'type' : 'string', 'required' : True}, 'count' : {'type' : 'integer'}  }
                                  ,{ 'serial number' : {'type' : 'string', 'required' : True}, 'count' : {'type' : 'integer'}   }
                                 ]
                               }
                            }
                 }
      v = Validator(schema)
      document = { 'parts' : [
                              { 'model number'  : 'MX-009', 'count' : 100 }
                             ,{ 'serial number' : '898-001', 'count' : 20 }
                             ,  'misc'
                             ]
                 }

      res = v.validate( document )

so 'parts' is allowed to be a string or a dict. If it is a dict, it either has to have a 'model number' entry or 'serial number' entry.
I don't think it items-constraint works here. My understanding is that the items-constraint makes sure that the items in a list (in the document) each validate to some schema.

would that be an equivalent to the items-constraint in a list's context?

i reviewed the documentation and found that also these constraints beside schema and type could be used with a set of rules that are evaluated as an or-condition:

dependencies
items
propertyschema
regex
schema (dict)
valueschema

therefore is suggest a more generic solution that allows or-evaluated constraints.

I agree, this would be useful.
Wouldn't there need to be another constraint added, for example 'anyof', to handle this transparently? You could store a list of or'able constraints, but then user defined validation functions would not have have access to them. What about allowing something like this:
 schema   = { 'parts' : { 'type' : 'list'
                             , 'schema' :
                               { 'type' : [ 'dict', 'string' ]
                               , 'schema' :
                                 {'anyof' : [
                                   { 'model number' : {'type' : 'string', 'required' : True}, 'count' : {'type' : 'integer'}  }
                                  ,{ 'serial number' : {'type' : 'string', 'required' : True}, 'count' : {'type' : 'integer'}   }
                                 ] }
                               }
                            }
                 }

two further thoughts on that:
looks cool. but, wouldn't it be more generic this way:
schema = {'parts': {'type': 'list',
                    'schema': {
                        'anyof': [
                            [{'type': 'dict'}, {'type': 'string'}],
                            [{'schema': {'model number': {'type': 'string', 'required': True}, 'count': {'type': 'integer'}}},
                             {'schema': {'serial number': {'type': 'string', 'required': True}, 'count': {'type': 'integer'}}}
                                 ]
                              }
                  }
         }

thus, the-anyof-rule is takes a list of lists where the inner lists' rules are or-evaluated while the outer list is and-evaluated for any schema. which also allows this:
schema = {'foo_property': 'anyof': [[…]]

or to stick to the current type's notation, evaluate a given list for any rule as a set of valid values. which eventually is an extension if the allows-constraint to more types. but that would break client code.
unfortuantely these approaches do not solve #96, but would be a good base to make subsets of rules not only dependent on type.

Well, I think that having the outer lists and'ed would not do what the name 'anyof' would suggest. Perhaps two new rules, anyof and allof. Then one function could be written to implement both that accepts a flag telling it if all item need to validate or just one.
I think #96 could be solved by adding support for in-lined types. If the entry in a type list is a dict, then it should just be treated as a schema that should be used for validation. This is how validictory handles types.

yeah, that't better readable. other names for these rules could be all_schemas and any_schema to be more clear.
i proposed the dict-notation for type, but eventually the library would be usable more flexible if you could  define for further rules for each any-rule that is considered true.

all_* and any_* would be easier to implement. You could just check constraint names for the all_ or any_ prefix and add a loop over all items. then the non-prefixed versions would be a special case and you have everything use the prefixed version. So if name is encountered, just put its value in a list and call any_name instead.
However, would it allow mixing?
schema = { 'param' : { 'type' : 'dict'
                                    'any_schema' : [
                                            'all_schema' : [...],
                                            'all_schema' : [...]
                                    ]}}

which says I need one set of schema to validate, but all of the schemas in the set must validate.

sounds too good, would be great if it'd become true. i encourage you to try this out. as your idea is a grammatical one, this would also allow blacklisting easily with a not_-prefix.

then the non-prefixed versions would be a special case and you have everything use the prefixed version. So if name is encountered, just put its value in a list and call any_name instead.

i'm not sure if i get this part. i would do it the other way around. the current set of rules stay as they are. just add handlers in case there's a meaningful prefix.

OK, I'll look into it. Your right, I wouldn't' want to try to port all of the existing rules to any_/all_ .


Compiling errors

I faced a number of errors when compiling on Ubuntu 22.04. Any idea why?
[kobo-btpt]# export QT5WIDGETS_CFLAGS="-DQT_WIDGETS_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets"
[kobo-btpt]# export QT5GUI_CFLAGS="-DQT_GUI_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtGui"
[kobo-btpt]# export QT5CORE_CFLAGS="-std=c++11 -DQT_CORE_LIB -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore"
[kobo-btpt]# export PATH="$PATH:path/to/toolchain/bin"
[kobo-btpt]# make
-- Detected version: v0.0.2-3-gd9ba2fe-dirty
-- Using provided CFLAGS and LIBS for Qt5Core
-- Using provided CFLAGS and LIBS for Qt5Gui
-- Using provided CFLAGS and LIBS for Qt5Widgets
-- Using provided CFLAGS and LIBS for Qt5Core
-- Using provided CFLAGS and LIBS for Qt5Gui
arm-nickel-linux-gnueabihf-g++ -INickelHook/ -DNH_VERSION='"v0.0.2-3-gd9ba2fe-dirty"' -O2 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard -mthumb -Wall -Wextra -Werror -Wno-missing-field-initializers -std=gnu++11 -pthread -std=c++11 -DQT_CORE_LIB -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore -DQT_GUI_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtGui -DQT_WIDGETS_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -std=c++11 -DQT_CORE_LIB -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore -DQT_GUI_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtGui -fPIC -c src/btpt.cc -o src/btpt.o
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h:46:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1301,
                 from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:61:4: error: #error "Qt requires C++11 support"
 #  error "Qt requires C++11 support"
    ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:94:13: error: 'QAtomicOps' does not name a type
     typedef QAtomicOps<T> Ops;
             ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:97:23: error: 'QAtomicOpsSupport' was not declared in this scope
     Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, "template parameter is an integral of a size not supported on this platform");
                       ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:121:68: note: in definition of macro 'Q_STATIC_ASSERT_X'
 #  define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)

^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:97:51: error: '::IsSupported' has not been declared
     Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, "template parameter is an integral of a size not supported on this platform");
                                                   ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:121:68: note: in definition of macro 'Q_STATIC_ASSERT_X'
 #  define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)

^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:121:49: error: non-constant condition for static assertion
 #  define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)
                                                 ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:97:5: note: in expansion of macro 'Q_STATIC_ASSERT_X'
     Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, "template parameter is an integral of a size not supported on this platform");
     ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h:46:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1301,
                 from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:99:14: error: 'Ops' has not been declared
     typename Ops::Type _q_value;
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::loadRelaxed() const':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107:45: error: 'Ops' has not been declared
     T loadRelaxed() const noexcept { return Ops::loadRelaxed(_q_value); }
                                             ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'void QBasicAtomicInteger<T>::storeRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:108:46: error: 'Ops' has not been declared
     void storeRelaxed(T newValue) noexcept { Ops::storeRelaxed(_q_value, newValue); }
                                              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::loadAcquire() const':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:110:45: error: 'Ops' has not been declared
     T loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); }
                                             ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'void QBasicAtomicInteger<T>::storeRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:111:46: error: 'Ops' has not been declared
     void storeRelease(T newValue) noexcept { Ops::storeRelease(_q_value, newValue); }
                                              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isReferenceCountingNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:115:80: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isReferenceCountingNative() noexcept { return Ops::isReferenceCountingNative(); }

            ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isReferenceCountingWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:116:82: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isReferenceCountingWaitFree() noexcept { return Ops::isReferenceCountingWaitFree(); }

              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::ref()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:118:34: error: 'Ops' has not been declared
     bool ref() noexcept { return Ops::ref(_q_value); }
                                  ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::deref()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:119:36: error: 'Ops' has not been declared
     bool deref() noexcept { return Ops::deref(_q_value); }
                                    ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isTestAndSetNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:121:73: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); }

     ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isTestAndSetWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:122:75: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); }

       ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetRelaxed(T, T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:125:14: error: 'Ops' has not been declared
     { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetAcquire(T, T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:127:14: error: 'Ops' has not been declared
     { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetRelease(T, T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:129:14: error: 'Ops' has not been declared
     { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetOrdered(T, T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:131:14: error: 'Ops' has not been declared
     { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetRelaxed(T, T, T&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:134:14: error: 'Ops' has not been declared
     { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, &currentValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetAcquire(T, T, T&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:136:14: error: 'Ops' has not been declared
     { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, &currentValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetRelease(T, T, T&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:138:14: error: 'Ops' has not been declared
     { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, &currentValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetOrdered(T, T, T&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:140:14: error: 'Ops' has not been declared
     { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, &currentValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isFetchAndStoreNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:142:76: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); }

        ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isFetchAndStoreWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:143:78: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); }

          ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndStoreRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:146:14: error: 'Ops' has not been declared
     { return Ops::fetchAndStoreRelaxed(_q_value, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndStoreAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:148:14: error: 'Ops' has not been declared
     { return Ops::fetchAndStoreAcquire(_q_value, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndStoreRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:150:14: error: 'Ops' has not been declared
     { return Ops::fetchAndStoreRelease(_q_value, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndStoreOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:152:14: error: 'Ops' has not been declared
     { return Ops::fetchAndStoreOrdered(_q_value, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isFetchAndAddNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:154:74: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); }

      ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isFetchAndAddWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:155:76: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); }

        ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAddRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:158:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAddAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:160:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAddRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:162:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAddRelease(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAddOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:164:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndSubRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:167:14: error: 'Ops' has not been declared
     { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndSubAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:169:14: error: 'Ops' has not been declared
     { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndSubRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:171:14: error: 'Ops' has not been declared
     { return Ops::fetchAndSubRelease(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndSubOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:173:14: error: 'Ops' has not been declared
     { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAndRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:176:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAndRelaxed(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAndAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:178:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAndAcquire(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAndRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:180:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAndRelease(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAndOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:182:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAndOrdered(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndOrRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:185:14: error: 'Ops' has not been declared
     { return Ops::fetchAndOrRelaxed(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndOrAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:187:14: error: 'Ops' has not been declared
     { return Ops::fetchAndOrAcquire(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndOrRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:189:14: error: 'Ops' has not been declared
     { return Ops::fetchAndOrRelease(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndOrOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:191:14: error: 'Ops' has not been declared
     { return Ops::fetchAndOrOrdered(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndXorRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:194:14: error: 'Ops' has not been declared
     { return Ops::fetchAndXorRelaxed(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndXorAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:196:14: error: 'Ops' has not been declared
     { return Ops::fetchAndXorAcquire(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndXorRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:198:14: error: 'Ops' has not been declared
     { return Ops::fetchAndXorRelease(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndXorOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:200:14: error: 'Ops' has not been declared
     { return Ops::fetchAndXorOrdered(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: At global scope:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:238:13: error: 'QAtomicOps' does not name a type
     typedef QAtomicOps<Type> Ops;
             ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:239:22: error: 'Ops' has not been declared
     typedef typename Ops::Type AtomicType;
                      ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::loadRelaxed() const':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:248:48: error: 'Ops' has not been declared
     Type loadRelaxed() const noexcept { return Ops::loadRelaxed(_q_value); }
                                                ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'void QBasicAtomicPointer<X>::storeRelaxed(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:249:49: error: 'Ops' has not been declared
     void storeRelaxed(Type newValue) noexcept { Ops::storeRelaxed(_q_value, newValue); }
                                                 ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::loadAcquire() const':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:255:48: error: 'Ops' has not been declared
     Type loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); }
                                                ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'void QBasicAtomicPointer<X>::storeRelease(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:256:49: error: 'Ops' has not been declared
     void storeRelease(Type newValue) noexcept { Ops::storeRelease(_q_value, newValue); }
                                                 ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isTestAndSetNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:258:73: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); }

     ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isTestAndSetWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:259:75: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); }

       ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetRelaxed(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:262:14: error: 'Ops' has not been declared
     { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetAcquire(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:264:14: error: 'Ops' has not been declared
     { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetRelease(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:266:14: error: 'Ops' has not been declared
     { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetOrdered(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:268:14: error: 'Ops' has not been declared
     { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetRelaxed(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:271:14: error: 'Ops' has not been declared
     { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, &currentValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetAcquire(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:273:14: error: 'Ops' has not been declared
     { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, &currentValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetRelease(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:275:14: error: 'Ops' has not been declared
     { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, &currentValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetOrdered(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:277:14: error: 'Ops' has not been declared
     { return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, &currentValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isFetchAndStoreNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:279:76: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); }

        ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isFetchAndStoreWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:280:78: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); }

          ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndStoreRelaxed(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:283:14: error: 'Ops' has not been declared
     { return Ops::fetchAndStoreRelaxed(_q_value, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndStoreAcquire(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:285:14: error: 'Ops' has not been declared
     { return Ops::fetchAndStoreAcquire(_q_value, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndStoreRelease(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:287:14: error: 'Ops' has not been declared
     { return Ops::fetchAndStoreRelease(_q_value, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndStoreOrdered(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:289:14: error: 'Ops' has not been declared
     { return Ops::fetchAndStoreOrdered(_q_value, newValue); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isFetchAndAddNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:291:74: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); }

      ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isFetchAndAddWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:292:76: error: 'Ops' has not been declared
     static Q_DECL_CONSTEXPR bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); }

        ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndAddRelaxed(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:295:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndAddAcquire(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:297:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAddAcquire(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndAddRelease(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:299:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAddRelease(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndAddOrdered(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:301:14: error: 'Ops' has not been declared
     { return Ops::fetchAndAddOrdered(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndSubRelaxed(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:304:14: error: 'Ops' has not been declared
     { return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndSubAcquire(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:306:14: error: 'Ops' has not been declared
     { return Ops::fetchAndSubAcquire(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndSubRelease(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:308:14: error: 'Ops' has not been declared
     { return Ops::fetchAndSubRelease(_q_value, valueToAdd); }
              ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndSubOrdered(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:310:14: error: 'Ops' has not been declared
     { return Ops::fetchAndSubOrdered(_q_value, valueToAdd); }
              ^
src/btpt.cc: In member function 'bool BluetoothPageTurner::addDevice(const QString&, const QString&, const QString&)':
src/btpt.cc:125:65: error: 'QStringList QString::split(const QString&, QString::SplitBehavior, Qt::CaseSensitivity) const' is deprecated (declared at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:609): Use Qt::SplitBehavior variant instead [-Werror=deprecated-declarations]
   QList<QString> parts = line.split(" ", QString::SkipEmptyParts);
                                                                 ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h:46:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1301,
                 from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'T QBasicAtomicInteger<T>::loadRelaxed() const [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:55:40:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107:73: error: no return statement in function returning non-void [-Werror=return-type]
     T loadRelaxed() const noexcept { return Ops::loadRelaxed(_q_value); }

     ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicInteger<T>::ref() [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:61:24:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:118:54: error: no return statement in function returning non-void [-Werror=return-type]
     bool ref() noexcept { return Ops::ref(_q_value); }
                                                      ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicInteger<T>::deref() [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:73:29:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:119:58: error: no return statement in function returning non-void [-Werror=return-type]
     bool deref() noexcept { return Ops::deref(_q_value); }
                                                          ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicInteger<T>::testAndSetRelaxed(T, T) [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:81:49:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:125:73: error: no return statement in function returning non-void [-Werror=return-type]
     { return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); }

     ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'T QBasicAtomicInteger<T>::loadAcquire() const [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:2404:1:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:110:73: error: no return statement in function returning non-void [-Werror=return-type]
     T loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); }

     ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h: In instantiation of 'QtMetaTypePrivate::QSequentialIterableImpl::QSequentialIterableImpl(const T*) [with T = QList<QVariant>]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h:772:139:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: ambiguous class template instantiation for 'struct QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QVariant>, void>'
       , _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))

                                                                   ^In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1007:8: error: candidates are: struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, decltype (declval<Container>().push_back(declval<typename Container::value_type>()))>
 struct ContainerCapabilitiesImpl<Container, decltype(std::declval<Container>().push_back(std::declval<typename Container::value_type>()))>
        ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1025:8: error:                 struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, void>
 struct ContainerCapabilitiesImpl<Container, QtPrivate::ContainerCapabilitiesMetaProgrammingHelper::void_t<decltype(std::declval<Container>().insert(std::declval<typename Container::value_type>())), decltype(std::declval<typename Container::value_type>() == std::declval<typename Container::value_type>())>>
        ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QVariant>, void>' used in nested name specifier
       , _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))

                                                                   ^/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1169:68: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QVariant>, void>' used in nested name specifier
       , _copyIter(IteratorOwner<typename T::const_iterator>::assign)

^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h: In instantiation of 'QtMetaTypePrivate::QSequentialIterableImpl::QSequentialIterableImpl(const T*) [with T = QStringList]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h:775:138:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: ambiguous class template instantiation for 'struct QtMetaTypePrivate::ContainerCapabilitiesImpl<QStringList, void>'
       , _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))

                                                                   ^In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1007:8: error: candidates are: struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, decltype (declval<Container>().push_back(declval<typename Container::value_type>()))>
 struct ContainerCapabilitiesImpl<Container, decltype(std::declval<Container>().push_back(std::declval<typename Container::value_type>()))>
        ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1025:8: error:                 struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, void>
 struct ContainerCapabilitiesImpl<Container, QtPrivate::ContainerCapabilitiesMetaProgrammingHelper::void_t<decltype(std::declval<Container>().insert(std::declval<typename Container::value_type>())), decltype(std::declval<typename Container::value_type>() == std::declval<typename Container::value_type>())>>
        ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QStringList, void>' used in nested name specifier
       , _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))

                                                                   ^/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1169:68: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QStringList, void>' used in nested name specifier
       , _copyIter(IteratorOwner<typename T::const_iterator>::assign)

^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h: In instantiation of 'QtMetaTypePrivate::QSequentialIterableImpl::QSequentialIterableImpl(const T*) [with T = QList<QByteArray>]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h:779:141:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: ambiguous class template instantiation for 'struct QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QByteArray>, void>'
       , _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))

                                                                   ^In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1007:8: error: candidates are: struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, decltype (declval<Container>().push_back(declval<typename Container::value_type>()))>
 struct ContainerCapabilitiesImpl<Container, decltype(std::declval<Container>().push_back(std::declval<typename Container::value_type>()))>
        ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1025:8: error:                 struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, void>
 struct ContainerCapabilitiesImpl<Container, QtPrivate::ContainerCapabilitiesMetaProgrammingHelper::void_t<decltype(std::declval<Container>().insert(std::declval<typename Container::value_type>())), decltype(std::declval<typename Container::value_type>() == std::declval<typename Container::value_type>())>>
        ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QByteArray>, void>' used in nested name specifier
       , _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))

                                                                   ^/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1169:68: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QByteArray>, void>' used in nested name specifier
       , _copyIter(IteratorOwner<typename T::const_iterator>::assign)

^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h:46:0,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1301,
                 from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
                 from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'X* QBasicAtomicPointer<X>::loadRelaxed() const [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:86:9:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:248:76: error: no return statement in function returning non-void [-Werror=return-type]
     Type loadRelaxed() const noexcept { return Ops::loadRelaxed(_q_value); }

        ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicPointer<X>::testAndSetAcquire(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type) [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:103:62:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:264:73: error: no return statement in function returning non-void [-Werror=return-type]
     { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); }

     ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicPointer<X>::testAndSetRelease(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type) [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:106:62:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:266:73: error: no return statement in function returning non-void [-Werror=return-type]
     { return Ops::testAndSetRelease(_q_value, expectedValue, newValue); }

     ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicPointer<X>::testAndSetAcquire(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&) [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:109:71:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:273:88: error: no return statement in function returning non-void [-Werror=return-type]
     { return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, &currentValue); }

                    ^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicPointer<X>::testAndSetRelease(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&) [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:112:71:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:275:88: error: no return statement in function returning non-void [-Werror=return-type]
     { return Ops::testAndSetRelease(_q_value, expectedValue, newValue, &currentValue); }

[kobo-btpt]#

After much trial and error, the answer was found in another nickelhook mod
docker run --volume="$PWD:$PWD" --user="$(id --user):$(id --group)" --workdir="$PWD" --env=HOME --entrypoint=make --rm -it ghcr.io/pgaskin/nickeltc:1.0 all koboroot

Also had to copy input-event-codes.h from /usr/include/linux/input-event-codes.h and update the source accordingly. I have no idea how to get docker to retrieve the file from the host.


AttributeError: 'ArtistList' object has no attribute 'pop'

I am continuously getting this error AttributeError: 'ArtistList' object has no attribute 'pop'. In fact, I am just using the examples provided here in github, just copying and pasting them to see how they work, but the only thing I get is this error in all of them and I don't know why at all.
I have checked the installation, seems to be fine.
Python is 3.11, and not anaconda. Clean environment and prerrequisites are fulfilled.
matplotlib                3.7.1 >= 0.9
numpy                     1.24.2 >= 1.1
Any idea of something that may be checked?
Thanks in advance

I also have the same problem.

Just ran into this. I don't want to downgrade matplotlib for this. Please fix it. :-)

Never mind. I see this issue is almost a year old. I've found the more superior mplcursor library instead.

Never mind. This issue is almost a year old already. I've gone ahead and found https://mplcursors.readthedocs.io/en/stable/index.html instead.


Error when creating chunks with no jobs

It was trying to iterate a variable that was defined just in case that we have jobs. Now if there's no jobs then it won't throw any error and finish successfully

Fix OSPCRE-585


Only captures OpenGL frames when mixed rendering with OpenGL and Vulkan

Description
Hi, my project uses OpenGL (glfw) as window rendering, and then renders the result (color attachment) of vulkan rendering as texture of OpenGL, that is, my project uses a mix of OpenGL (on-screen) and Vulkan (off-screen) rendering.
When I use RenderDoc to capture frames, only the api call of OpenGL is captured but not the api call of Vulkan. Is there a bug or does it not support multiple contexts ?
Steps to reproduce
1、Compile and run the project: https://github.com/keith2018/SoftGLRender
2、Switching the renderer to Vulkan
3、Capture frames using RenderDoc

Environment

RenderDoc version: v1.26 - 31 Mar, 2023
Operating System: Windows 10
Graphics API: OpenGL 3.3 & Vulkan 1.2

In this case the use of GL is not related - even if you weren't using GL at all, on any API if you are not presenting to a swapchain you can't use the default capturing method since it has no way to know when to start or finish. You will need to use the in-application API to capture any entirely headless/offscreen work.


Anything is accepted as a new variable name

Any expression is accepted in new variable names, not just legal names.
For example, these are valid:
{% set 9='foo' %}

{% for <= in users %}{% endfor %}

I believe this behavior is not correct, and is due to the fact that com.mitchellbosecke.pebble.parser.ExpressionParser#parseNewVariableName does not check the result of the following call:
token.test(Token.Type.NAME);

Perhaps it should be replaced with this?
    this.stream = this.parser.getStream();
    Token token = stream.expect(Token.Type.NAME);

I am willing to submit a PR to fix the problem if you guys think this is the correct approach.

Yeah you can submit a PR for that.


Nominal enum assignability after union

TypeScript Version:  2.0 RC. This was working correctly in 2.0 beta.
Code
module X {
	export enum Foo {
		A, B
	}
}
module Y {
	export enum Foo {
		A, B
	}
}
const x: X.Foo = Y.Foo.A;
const y: X.Foo | undefined = Y.Foo.A;

Expected behavior:
Both assignments are valid.
Actual behavior:
The first assignment is valid, the second throws an error saying "Type 'Foo' is not assignable to type 'Foo | undefined'."
This block a project that depends on the TypeScript api, and on some package that also depends on TypeScript. So TS is installed on node_modules/typescript and node_modules/foo/node_modules/typescript. (Normally NPM would install TypeScript only once, but foo is a symlink.) This causes that objects from one installation of TypeScript cannot be passed to the other. The following code illustrates that:

import * as ts from "typescript";
import * as ts2 from "foo/node_modules/typescript";

const identifier: ts.Identifier = undefined as any;
const identifier2: ts2.Identifier = identifier;

const ok: ts.SyntaxKind = ts2.SyntaxKind.AbstractKeyword;
const error: ts.SyntaxKind | undefined = ts2.SyntaxKind.AbstractKeyword;

Error on the declaration of identifier2:
Type 'ts.Identifier' is not assignable to type 'ts.Identifier'.
  Types of property 'originalKeywordKind' are incompatible.
    Type 'SyntaxKind | undefined' is not assignable to type 'SyntaxKind | undefined'.
      Type 'SyntaxKind.Unknown' is not assignable to type 'SyntaxKind | undefined'.

And on error:
Type 'SyntaxKind' is not assignable to type 'SyntaxKind | undefined'.

@mhegazy milestone?

Note: requires "strictNullChecks": true to repro

repro without strictNullChecks: const y: X.Foo | boolean = Y.Foo.A;

The fix is very similar to the one for #10738, so I'm going to fix both in #10784.


InSilicoSeq generates fewer reads than requested

requested 100k reads, got 93542
also, this is total reads -- divide by 2 for the number of pairs

Hi! I'm the author of InSilicoSeq and somehow github brought your repo to my attention.
I'm happy to try to fix bugs/quirks you may find in InSilicoSeq. Would you mind also opening issues regarding iss directly to the iss repo?
Best,
Hadrien

Thanks, @HadrienG!   I've opened https://github.com/HadrienG/InSilicoSeq/issues/74 and closed this one accordingly.   Thanks for the awesome InSilicoSeq tool.


Text Normalization Process

First of all, thanks for putting this up! Maybe I missed it somewhere but can you explain what the text normalization process should be for making new datasets. I know that there word segmentation and text normalization. For things like english i'm assuming that word segmentation just relies on spaces but the text-normalization I'm a bit lost. Here is my best guess, does it look correct?
import re
from num2words import num2words
from nltk.tokenize import word_tokenize

def normalize_text(text): #improvised because I have no idea what the real "normalization" is but this seems to match whats in the sample dataset
    # Convert to lowercase
    text = text.lower()

    # Convert numbers to words
    text = re.sub(r'\b\d+\b', lambda x: num2words(int(x.group())), text)

    # Replace opening and closing quotes
    text = re.sub(r"(\s)\"(\w)", lambda m: m.group(1) + "``" + m.group(2), text)
    text = re.sub(r"(\w)\"(\s)", lambda m: m.group(1) + "''" + m.group(2), text)

    # Tokenize text
    tokens = word_tokenize(text)

    # Join tokens back together with spaces in between
    normalized_text = ' '.join(tokens)

    return normalized_text

Hi @qwertyflagstop . Thanks for your interest!
Text normalization is an important preprocessing before TTS. You can read more here: [https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/stable/nlp/text_normalization/wfst/wfst_text_normalization.html].


Plot inset util code

Util code for plotting images with insets (often useful for highlighting restoration/reconstruction results). Thanks to @jscanvic for helping with this. Example of plots produced using this code: https://andrewwango.github.io/perspective-equivariant-imaging/demo.html#results
Checks to be done before submitting your PR

[x] python3 -m pytest tests/ runs successfully.
[x] black . runs successfully.
[x] make html runs successfully (in the docs/ directory).
[x] Updated docstrings related to the changes (as applicable).
[ ] Added an entry to the CHANGELOG.rst.

Could plot_inset be an option of the previous plot function ?

Could plot_inset be an option of the previous plot function ?

It could do, but it will mean plot has a lot of unnecessary parameters for most users (unless we put all the inset locations etc. in a dict or some kwargs)

I think the dict could be the best solution indeed !


Shader format versioning

Right now there's no way for the client or backend to distinguish between DXBC compatible with D3D11 versus DXBC compatible with D3D12. The simplest solution would be to split the DXBC shader format enum into two -- SM5_0 and SM5_1.
However, this begs the question, should other shader formats have some sort of versioning system too? For instance, there are many shader models supported by DXIL, many of which may not be supported on all D3D12 drivers. There's no way to tell the GPU API "this DXIL I'm using relies on the latest and greatest features, so do a driver compatibility check first". Same with SPIR-V and Metal.
Probably the only sane way to deal with this is to have a single supported version / shader model, and document it. We're not exposing extremely low-level features, mesh shaders, or raytracing, which is what more recent shader versions tend to deal with anyway.

I thought the same thing - we can maybe do a Uint32 and use versioning from the respective formats - I think SPIR-V has a version constant in the header, not sure about Metal or DXBC/DXIL.

Working on this in shadercross now.

ShaderCross now supports compiling to DXIL - personally, I'm in favor of removing the DXBC support in D3D12 because...

DXC is open source and multiplatform, all build hosts could precompile shaders for D3D12! FXC/Wine would only be needed for D3D11, as long as we didn't accidentally encourage using DXBC with 12.
DXC supports both DXIL and SPIR-V, so someone working with HLSL on the D3D12 backend has a good chance of being able to port their existing HLSL to Vulkan with very little effort. This won't be the case with FXC output.
It's deprecated so it's probably going to bit-rot some day, and hopefully some day we'll be able to deprecate D3D11 support ourselves.

The only real downside is that shadercross has to include libdxcompiler/libdxil, but people technically had to do that with d3dcompiler anyway...

If d3d12 support requires me to to ship dxcompiler and whatever other library, I think I'll just pass on it. I'm happy to have Vulkan, and d3d11 for legacy intel iGPUs i guess.

spirv2dxil

Did you mean dxil-spirv?

Yeah, I think I smooshed dxil-spirv and spirv2nir, which is totally unrelated but I managed to mix it up anyway!

Follow-up for DXIL: https://github.com/thatcosmonaut/SDL/issues/200
Any necessary versioning can be done with SDL_Properties after this is implemented.


[Request for External] procedure CreateWIPBufferEntryFromTask in codeunit 1000 "Job Calculate WIP"

Dear ALAppExtensions team,
Can you please remove local prefix from procedure CreateWIPBufferEntryFromTask in codeunit 1000 "Job Calculate WIP"
Old signature
local procedure CreateWIPBufferEntryFromTask(var JobTask: Record "Job Task"; var JobWIPTotal: Record "Job WIP Total"; BufferType: Enum "Job WIP Buffer Type"; AppliedAccrued: Boolean)

New signature
procedure CreateWIPBufferEntryFromTask(var JobTask: Record "Job Task"; var JobWIPTotal: Record "Job WIP Total"; BufferType: Enum "Job WIP Buffer Type"; AppliedAccrued: Boolean)

This change is related to issue #22785
Thank you in advance.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 10376.

Hi @JesperSchulz, @AlexanderYakunin I wanted to ask whether this adjustment has already been made. I can't see it in version 2304.

Thanks for asking! I rechecked and this is not implemented yet. Probably this bug had been mistakenly linked to another PR and therefore been resolved. Apologize for this case, we can fix it quickly, today it will be done for Master (=24.0). If you need this for 23.x please let us know.

Thank you for checking. Version 24.0 is ok, no need to put it in version 23.x

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 16430.


Any plan to implement SD3 ?

SD3 to SD2
SD2 to SD3
SD3 to SD1
SD3 to SD3

It's already supported for v3->v1 and v3->xl, just update the node.
Any reason why you would want v1->v3 and xl->v3?


How to turn off the breaker middleware?

How to turn off the breaker middleware?
I have a need to import 10,000 pieces of data, and I always get an error "circuit breaker is open" when executing the task.

The database used is mongodb, and the break point is an error returned by mongo
Using the mongo package that comes with the framework "github.com/zeromicro/go-zero/core/stores/monc"

I recommend you'd better dig into why the errors happened, which cause circuit breaker to protect the successive requests. Not just disable breaker itself.


Increased base min-font size from 10px to 13px

You have to be careful when dealing with a minimum font size on mobile. Just because the screen shrinks doesn't mean you can go overboard with shrinking the text. To be safe, you really don't want to ever go below 13px on mobile (maybe sometimes 12px will fly, but 10px is just TOO small and brings up tons of usability problems).
Simple update that just replaces the min-font size to 13px from 10px.
Loving the new typographic Cory, keep it up!

@flip4bytes Thanks for the PR and the kind words Alex. Would you mind bumping up the $max-font to 18 or 20 as well so users can see all the responsive scaling goodness that happens between breakpoints?

13 - 16 just doesn't seem like a big enough of a difference to me. =)

Yeah, absolutely. If you want to check out how big of a difference it is, on my personal site I use 20px on desktop and a min size of 13px - Why You Should Run Usability Testing On Everything
I know some people love having really small font sizes on desktop and others like to have REALLY big font sizes to make up for the screen real estate but 20px is a good medium for usability and functionality imho.

20px sounds good to me.
Your website looks great btw. Glad some of my tools are being used on beautiful sites. =)

Appreciate the kind words! I'll definitely be using typographic on this project I'm starting now and I'm still trying to make up my mind because I really love flexgrid and I only need to support current browser and 1 version back.. But I might go with LostGrid. Still not sure, stuck between a rock and a hard place right now! I love flexbox so much :'(

I highly suggest you use Lost Grid until I get a chance to do a thorough revisiting of Flexgrid. I don't feel like I did it justice the first time around.
I love flex too and think it should be used for a ton of layout choices but Lost provides an absolutely rock solid flexible grid system that works with masonry and without the bloat of Jeet.
Thanks for the PRs!

Alright cory, FINE. You sold me, I have faith in you. (Though I do really look forward to seeing your flexgrid redesign). I think the only reason it didn't get as much publicity as Lost Grid is getting now is because it's poor backwards compatibility and for some people, that's SO important. As flexbox and calc get more rock solid browser support, I think Flexgrid could really kickass.
Either way, really happy to see you so active again! You went MIA for some time, I got a bit worried.. You're my main grid system & stylus buddy! Haha hope all is well, keep it up man!

I think Flexgrid didn't get as popular as my other grids because 1) I didn't market it at all 2) it wasn't super great, it was literally a first pass on a technology I was still getting familiar with 3) http://flexboxgrid.com exists already and does a fine job of being the flexbox grid out there right now.
When I revisit it, Flexgrid will blow away Flexboxgrid though. Hell, just getting rid of those ugly Bootstrap classes will make it the better grid system.

Either way, really happy to see you so active again! You went MIA for some time, I got a bit worried.. You're my main grid system & stylus buddy! Haha hope all is well, keep it up man!

Yeah I got super depressed for a few months and didn't really do anything. After a life of struggling with on/off depression I finally got on meds and they perked me right up. Hopefully I'll be this productive for years to come. In the meantime, enjoy it while it lasts. =)

:+1:

Gotcha, but yeah, exactly! Using bootstrap classes like that after having gotten so used to Jeet and your newer systems makes me not want to touch flexboxgrid it with a 10 foot pole! For some people though, that's just all they know. IMHO all those bootstrap grid systems now probably appeal to back-end developers who are just throwing together a front-end just because they need something there. I can't imagine being a full-on front-end dev now-a-days and not using some type of flexible grid system without predefined classes. It forces the design to be built within the restrictions of the framework rather than the framework to be built around the design.
Anyway, glad everything is going well now! We need you in this community man, don't go disappearing again, my business depends on you! (p.s.  LaunchBox website looks really great man!)

It forces the design to be built within the restrictions of the framework rather than the framework to be built around the design.

Couldn't agree more.
Thanks for your kind words.
Before you go, did you see https://github.com/corysimmons/typographic/pull/26 ?

Yep! My bad, just fixed it. :+1:

Thanks! Got em merged!


metadata metadata

Open for discussion: We may have a problem with how we're handling file metadata in SCALE/SEED.  The input_file_manifest.json includes all the file metatdata scale knows about the input files, but ... in the case of a mounted S3 workspace, it cannot be written and will cause an error.  Moreover ALL input file metadata records are stored in that ONE manifest file.  Pushing parse-results back into the scale file records requires writing a metadata.json in the output directory using a different JSON format.
What we really want:

We need a way for a job to READ input file metadata.
We need a way for a job to UPDATE input file metadata.
We need a way for a job to CREATE output file metadata when it creates a new output file.
It would be desirable for this mechanism to be the SAME for all three.

The proposal:

All metadata is provided via file objects and follows the {filename}.metadata.json naming convention.
json format will include everything in the scale_file record, but only certain fields can be modified.  (certain scale-internals will not be changeable: i.e. filesize, filename, creation time, transfer time, permanlink, strike_id, workspace_id, etc.)
Input files go into top level container directory /scale/input as they do now.
Input metadata files will go into a newly created toplevel directory in the container called "/scale/metadata" (solves the unreliable write ability of the workspace problem)
Output files go into top level container directory /scale/output as they do now.
Output metatdata files will go into the /scale/output directory as required by SEED spec.

Right now, I don't think we have a way for a parse job to update the scale file record at all.
I'm leaning towards this being necessary for 7.0.x ; god help me.

This is related to #1289, but is a superset of that issue. This is something we should keep as context for future designs, but is out of scope for the immediate need. #1289 will address the immediate need.


Copy some VCF writer tests from sgkit

This includes test_vcf_writer_utils.py (which should probably be converted to ones in tests.c eventually), and the ones from test_vcf_writer.py which don't depend on sgkit (although I guess we could add those later if we wanted to).

Fixes #3

Nice, thanks. I'll fix the packaging test when I get a chance.


make sure to close and destroy the database before removing files from disk

Issue Number

#1071
Overview

[x] I have made sure to close and destroy the database before removing files from disk

Comments

bors r+