bundle exec rake setup destroys existing data without warning

Running bundle exec rake setup destroys any existing data / configuration in gitlab-ci.
There should at least be a warning or an offer to instead run db:migrate I think?

@sammcj The rake setup script is only needed when you set up CI for the first time.


[Reorderable] not working from GridBrushEditor [Unity 2018]

hi.
thanks for this excellent project
i am having some trouble getting it to work from GridBrushEditor

i cannot (i think) derive from ReorderableArrayInspector because i need to derive from GridBrushEditor
i do not even override the OnInspectorGUI in my editor i thought that might make it work but no?

Custom inspectors will not automatically draw arrays as ReorderableLists unless they inherit from ReorderableArrayInspector.

but should it still work with [Reorderable]? but no? does not
not sure from that quote if reorderable should still work cuz it not auto so i guess it should

i made this simple test project.
in the real project i have more code in GridBrushEditor
https://github.com/rakkarage/TestReorderableInspector
any way to get working?
thanks

also: i made a custom PropertyDrawer for an Enum and it displays in there... so why would this not

Ensure all related classes are in file matching class name
https://forum.unity.com/threads/how-to-use-custom-property-drawers-in-a-scriptableobject-inspector.245414/
sorry & thanks

i had removed the OnGUI overrides but had not removed the CustomEditorAttribute from brush
using System;
using UnityEngine;
using UnityEngine.Tilemaps;
namespace UnityEditor
{
	// [CustomEditor(typeof(RandomBrush))]
	public class RandomBrushEditor : GridBrushEditor
	{
		public override void PaintPreview(GridLayout gridLayout, GameObject brushTarget, Vector3Int position)
		{
			Debug.Log("TEST!");
		}
	}
}

if i remove thar attribute it works in inspector and paint inspector
because does not use this class at all
but i need to use this attribute to link this other non gui related (preview etc) code to the brush
so i use DrawDefaultInspector
it works for my CustomPropertyDrawer for enum flags but does not work for ReorderableInspector?

[Reorderable] attribute does not work
cannot derive from ReorderableArrayInspector because i need to derive from GridBrushEditor
is there any way to make it show ReorderableInspector for RandomTile AND RandomBrush?
thanks
https://github.com/rakkarage/TestReorderableInspector


Escape sequences are not flushed for line-buffered files

Need either to add a flush kwarg to apply or simply to flush the buffer if possible

The workaround while this issue gets fixed is to simply flush manually the buffer, e.g:
coquille.apply("enable_alternative_screen_buffer")
sys.stdout.flush()  # flush manually after the escape sequence


Crash on FF nightly with process isolation+e10s

Closing it for now, please reopen if someone can reproduce it.


Unable to view contents of function app's zip files after downloading from SCM_RUN_FROM_PACKAGE link

Description:
Unable to view contents of function app's zip files after downloading from SCM_RUN_FROM_PACKAGE link
Steps to reproduce the behavior:

Deploy a function app via vscode, ensure functions load in azure console
Go to https://<function_app_name>.scm.azurewebsites.net/api/settings
Look for the key: SCM_RUN_FROM_PACKAGE
Copy the link and download the zip file
Try to open the zip file and this leads to "Unable to expand scm-latest-functionapp.zip, it is in an unsupported format"

Expected behavior
Should be able to view contents and resuse in WEBSITE_RUN_FROM_PACKAGE
Screenshots

Desktop (please complete the following information):

OS: Mac
Browser: Chrome

Hi @ashwinvenkatesha, Thank you for flagging this issue, we will check on it and update you. Thanks!

hey @ashwinvenkatesha, Please let us know which solution function app you have deployed and can you please share the zip with us. thanks!

And is the zip referenced in your raised PR- https://github.com/Azure/Azure-Sentinel/pull/10994/files#diff-95971103b1ceda83854b54c6f329fac170624618ee5faf6c7b8682ec3ab45717

@ashwinvenkatesha, waiting for response

No its not the zip referenced in PR
Like I said in the description, you need to deploy the function app via vscode. So it doesnt use the website_run_from_package setting.
Once deployed,
Go to https://<function_app_name>.scm.azurewebsites.net/api/settings
Look for the key: SCM_RUN_FROM_PACKAGE
Copy the link and download the zip file
Try to open the zip file and this leads to "Unable to expand scm-latest-functionapp.zip, it is in an unsupported format"

Hi @ashwinvenkatesha, Its a same zip link which referenced in a storage account of a function app : -

So, to open it actually you need a 7-zip extractor software: -https://www.7-zip.org/download.html
Not sure why default win/mac zip extractor is not supporting the that specific .zip format extension.
Thanks!

Hi @ashwinvenkatesha, I hope above comment help you to unblock from your issue. Please let us know can we close this issue. Thanks!

Trying with multiple apps, still same issue.

@ashwinvenkatesha, Could you please try with this tool - https://www.7-zip.org/download.html and let us know if still facing same issue.
And please share that zip file with as well, to check if that specific file if have any issues.
Thanks!

We dont have permission to install that on our systems, I have shown you output of 2 other tools which do the exact same job.
Il post a link
https://github.com/illumio-shield/Azure-Sentinel/blob/illumio-sentinel-array-bug/Solutions/IllumioSaaS/Data Connectors/scm-latest-testIllumioDataConnector02.zip

@ashwinvenkatesha , Updated the zip :
https://github.com/Azure/Azure-Sentinel/raw/873fb120c32c53696922c8331cc2ca00d91c8971/Solutions/IllumioSaaS/Data Connectors/scm-latest-testIllumioDataConnector02.zip
Please download and let me know if still not able to open. Thanks!

This worked, thanks.
Can you tell me what was the fix pls?

Hi @ashwinvenkatesha, using this tool to extract the zip : -https://www.7-zip.org/download.html
So, closing this issue. If you still need support for this issue, feel free to re-open it any time. Thank you for your co-operation.


Question: Using cog URIs that require authentication?

The titiler code works with secured Azure assets if I specify a valid AZURE_STORAGE_CONNECTION_STRING.
My cog uris then have the form:
/vsiaz/sample1/cog1.tif
/vsiaz/sample1/cog2.tif
etc
And I can call titiler like this:
https://mytitilersite.example.net/cog/info?url=%2Fvsiaz%2Fsample1%2Fcog1.tif
How can I use cogeo-mosaic without pulling the cog files down locally?
To clarify what hasn't worked - neither the outputs of the /cog/info or cog/info.geojson seem to be supported when using the "create-from-features" option.  An error is emitted:
Traceback (most recent call last):   File "/mycode/venv/bin/cogeo-mosaic", line 8, in <module>     sys.exit(cogeo_cli())   File "/mycode/venv/lib/python3.8/site-packages/click/core.py", line 1128, in __call__     return self.main(*args, **kwargs)   File "/mycode/venv/lib/python3.8/site-packages/click/core.py", line 1053, in main     rv = self.invoke(ctx)   File "/mycode/venv/lib/python3.8/site-packages/click/core.py", line 1659, in invoke     return _process_result(sub_ctx.command.invoke(sub_ctx))   File "/mycode/venv/lib/python3.8/site-packages/click/core.py", line 1395, in invoke     return ctx.invoke(self.callback, **ctx.params)   File "/mycode/venv/lib/python3.8/site-packages/click/core.py", line 754, in invoke     return __callback(*args, **kwargs)   File "/mycode/venv/lib/python3.8/site-packages/cogeo_mosaic/scripts/cli.py", line 164, in create_from_features     list(features),   File "/mycode/venv/lib/python3.8/site-packages/cligj/features.py", line 38, in normalize_feature_inputs     for feature in iter_features(iter(src)):   File "/mycode/venv/lib/python3.8/site-packages/cligj/features.py", line 136, in iter_features     obj = json.loads(text)   File "/usr/lib/python3.8/json/__init__.py", line 357, in loads     return _default_decoder.decode(s)   File "/usr/lib/python3.8/json/decoder.py", line 337, in decode     obj, end = self.raw_decode(s, idx=_w(s, 0).end())   File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode     raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

@mdillon-airbus sorry for missing this.
It seems there is an issue with the JSON (features). would you be able to share it?

@vincentsarago

It seems there is an issue with the JSON (features). would you be able to share it?

Is there a debug flag to examine the intermediate json when calling "cogeo-mosaic create-from-features"?

wait I miss understood the issue?

To clarify what hasn't worked - neither the outputs of the /cog/info or cog/info.geojson seem to be supported when using the "create-from-features" option. An error is emitted:

yeah it might not work because you need to pass a feature collection or a list of features to cogeo-mosaic create-from-features while  /cog/info or cog/info.geojson return feature.
I'm still not 💯 sure what you are trying to do. Can you share all the steps that you are doing?

I may understand what happened - a simple 'create' is all that was needed with a list of the cogs as the input file (although I could have sworn I tried that).


From author page's book list, does not navigate to other author.

When I am on the author page, and there is a book list in bottom of the page of that author. So, on book card, if any book has co-author, it displays all the authors list there, so on hove of co-author's name I can see the navigated URL, but when I click, it does not work.

So, the problem you're seeing is probably because of how Vue Router works. When you click on a different author's name to go to the AuthorDetails page, even though it's the same page, Vue Router doesn't always reload everything. It's kind of like saying, 'You're already on this page, so why bother reloading it?' But what we want is for it to reload with the new author's information. That's why we're getting the same data.

Issue solved on PR


v-bind::class should support hyphen to work with Bootstrap

Twitter Bootstrap classes have hyphens in their names, i.e. is-valid.
Vue supports hyphens by encapsulating classes within quotes:
https://vuejs.org/v2/guide/class-and-style.html#Object-Syntax

widget_tweaks however does not support this currently if I'm not mistaken which makes impossible to use together with bootstrap and Vue, unless you want to render manually.
{% for field in form.visible_fields %}
{% render_field field class="form-control" v-bind::class="{ 'is-valid' : formValid}" %}
{% endfor %}

^ will fail with syntax error

This workaround works for now:
{% with foo="{'is-valid': !errors.checkFileSize}" %}
{% render_field field class="form-control" v-bind::class=foo %}
{% endwith %}


GitPoint has stopped

I found a bug when attempting to understand issue #109 . I was able to make the app crash 3 times using similar sequences of actions.
Video demonstration
https://youtu.be/twoeLb9rhXU
Are we able to force close the webview window one the signout call is done?

The first time i encountered this bug it was on the development app, which gave me this error screen :

I dont think the webview is the issue here anymore.

Video demonstration
https://youtu.be/twoeLb9rhXU

@frodinm thanks for the demo! This bug has already been described in #182.

oh prefect :smile:

Closing in favor of #182


Param properties_code cannot be omitted

The traceback reads:
  File "bin/aiida_submit_ht_test.py", line 39, in <module>
    wc = submit(MPDSCrystalWorkchain, **inputs)
  File "/usr/local/lib/python3.7/dist-packages/aiida/engine/launch.py", line 112, in submit
    process = instantiate_process(runner, process, **inputs)
  File "/usr/local/lib/python3.7/dist-packages/aiida/engine/utils.py", line 61, in instantiate_process
    process = process_class(runner=runner, inputs=inputs)
  File "/usr/local/lib/python3.7/dist-packages/plumpy/base/state_machine.py", line 187, in __call__
    inst.transition_to(inst.create_initial_state())
  File "/usr/local/lib/python3.7/dist-packages/plumpy/base/state_machine.py", line 326, in transition_to
    self.transition_failed(initial_state_label, label, *sys.exc_info()[1:])
  File "/usr/local/lib/python3.7/dist-packages/plumpy/base/state_machine.py", line 339, in transition_failed
    six.reraise(type(exception), exception, trace)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/usr/local/lib/python3.7/dist-packages/plumpy/base/state_machine.py", line 310, in transition_to
    self._enter_next_state(new_state)
  File "/usr/local/lib/python3.7/dist-packages/plumpy/base/state_machine.py", line 370, in _enter_next_state
    self._fire_state_event(StateEventHook.ENTERING_STATE, next_state)
  File "/usr/local/lib/python3.7/dist-packages/plumpy/base/state_machine.py", line 288, in _fire_state_event
    callback(self, hook, state)
  File "/usr/local/lib/python3.7/dist-packages/plumpy/processes.py", line 306, in <lambda>
    lambda _s, _h, state: self.on_entering(state))
  File "/usr/local/lib/python3.7/dist-packages/aiida/engine/processes/process.py", line 338, in on_entering
    super(Process, self).on_entering(state)
  File "/usr/local/lib/python3.7/dist-packages/plumpy/processes.py", line 599, in on_entering
    call_with_super_check(self.on_create)
  File "/usr/local/lib/python3.7/dist-packages/plumpy/base/utils.py", line 29, in call_with_super_check
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/aiida/engine/processes/process.py", line 328, in on_create
    super(Process, self).on_create()
  File "/usr/local/lib/python3.7/dist-packages/plumpy/base/utils.py", line 16, in new_fn
    fn(self, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/plumpy/processes.py", line 651, in on_create
    raise ValueError(result)
ValueError: Error occurred validating port 'inputs.properties_code': required value was not provided for 'properties_code'

Fixed in MPDS-aiida


fix #2229

Codecov Report

Merging #2241 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2241      +/-   ##
==========================================
+ Coverage   92.84%   92.85%   +0.01%
==========================================
  Files         171      171
  Lines       18877    18877
==========================================
+ Hits        17527    17529       +2
+ Misses       1350     1348       -2

Impacted Files
Coverage Δ

qiita_pet/handlers/study_handlers/prep_template.py
57.4% <ø> (ø)
:arrow_up:

...t/handlers/api_proxy/tests/test_sample_template.py
98.66% <0%> (+0.88%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6b59f37...2d48a65. Read the comment docs.

Had to assess with just the code? But if it looks the same as the sample information then i think the issue is satisfied


Minor UI fixes

Done for:

https://issues.jboss.org/browse/AGPUSH-1506
https://issues.jboss.org/browse/AGPUSH-1507

@sebastienblanc can u review / merge ?

:+1:


Revert "Add ability to pass configuration options to flannel backend"

This reverts commit<PHONE_NUMBER>bb0863b42ae0eeb64cdd4e20953907.

Proposed Changes

Removed option for flannel backend because it is already doable with flannel-conf flag.
Types of Changes

Verification

Testing

Linked Issues

#6038
User-Facing Change

Further Comments

Codecov Report

Merging #6046 (a8af059) into master (ba62c79) will increase coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##           master   #6046      +/-   ##
=========================================
+ Coverage    9.72%   9.73%   +0.01%
=========================================
  Files         138     138
  Lines       10060   10043      -17
=========================================
  Hits          978     978
+ Misses       8883    8866      -17
  Partials      199     199

Flag
Coverage Δ

unittests
9.73% <0.00%> (+0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/agent/flannel/setup.go
0.00% <0.00%> (ø)

pkg/cli/cmds/server.go
0.00% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

We realized that this config was doable when we were trying to update the docs.
I thought that we an revert it because it was only two flag specific for wireguard but if it is better to deprecate and remove it on a later release I'll close this PR and update with a new one.


Daemonset

this needs to be rebased once the getPluginMode is merged

I believe this needs a rebase now that the getPluginMode has been added?


[Bug]: install fails

Bug description
npm i vuetify3-resize-drawer
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/vuetify3-resize-drawer - Not found
npm ERR! 404
npm ERR! 404  'vuetify3-resize-drawer@*' is not in this registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

Steps to reproduce
Install with npm
Relevant log output
No response
Additional context
No response
Code of Conduct

[x] I agree to follow this project's Code of Conduct

The component is still in Beta and not ready for production. There is an outstanding Vuetify bug I'm waiting to be fixed.

Thank you! What was the related Vuetify bug?
Perhaps the readme should reflect this current status.

[Bug Report][3.1.5] v-nagivation-drawer width prop as string breaks functionality and causes layout issues with v-main.
You can see the issue on my demo page. Notice how the resize drawer on the left side doesn't push the main layout like the regular drawer on the other size?
https://webdevnerdstuff.github.io/vuetify3-resize-drawer/
Also the readme already has (beta) in it. ;)

I went ahead and published it, just in case so nobody else could take the name. I haven't tested anything out with it yet though.
https://www.npmjs.com/package/vuetify3-resize-drawer


[FEATURE] Java Parsing

Describe the solution you'd like
Make it possible to parse Java code into the various Java types available in the project.
Is your feature request related to a problem? Please describe.
Not really
Describe alternatives you've considered
None
Additional context
Note: This issue originally dealt with a single parser class called JavaParser (at some point possibly it was named BaseJavaParser), where all types were handled entirely in one class, but was split into multiple parsing classes each handling their own specific type to be parsed. We still have FullJavaParser, which will determine what is being parsed.
Changes TODO

[x] ParsingPojo (a record class containing nextTokenIndex and JavaCodeType, to be used as the results of a successful parsing operation)
[x] JavaParsingException (an exception class to be thrown by parsing methods when there are errors in parsing the given Java object)
[x] AbstractJavaParser (base parsing class containing shared regular expressions and methods used in multiple parsers)

[x] VISIBILITY_REGEX
[x] STATIC_REGEX
[x] FINAL_REGEX
[x] MODIFIERS_REGEX (currently combined visibility + static + final, but should be changed so order doesn't matter and support more modifiers)
[x] JavaCodeTypes determineFieldOrMethod (determines whether we're looking at a field or method given the currentToken and collection of tokens)

[x] FullJavaParser (can parse any type from a String)

[x] JavaCodeType parseType(String content) (must support all types, will call other parsers to handle actual parsing and then use combineTypes to handle combining the pieces together if needed, this will basically split on whitespace and handle tokens for parsing)

[x] JavaSingleLineComment
[x] JavaMultiLineComment
[x] Javadoc
[x] JavaPackageDeclaration
[x] JavaImportStatement
[x] JavaAnnotation
[x] JavaField
[x] JavaMethod
[x] JavaClass

[x] JavaCodeType combineTypes(List types) (takes a List of JavaCodeType objects in order and combines them if possible - e.g. if you have a package declaration, then import statements, then a class, these combine into a JavaClass)

[x] Comment Types

[x] JavaSingleLineCommentParser (#21)
[x] JavaMultiLineCommentParser (#22)
[x] JavadocParser (#23)

[x] Code Types

[x] JavaPackageDeclarationParser (#24)
[x] JavaImportStatementParser (#25)
[x] JavaAnnotationParser (#26)
[x] JavaFieldParser (#27)
[x] JavaMethodParser (#28)
[x] JavaTypeWithModifiersParser (used when you hit a modifier and don't yet know if it's a class, field, method, etc.)

[x] Class Types

[x] JavaClassParser (#29)

[x]  Other

[x] Support abstract for class and method

Closing this now - note that this is for parsing for Beta v.0.5 - there will be future parsing tasks for future versions (e.g. a future version will parse interfaces even though we're not now since we don't have a class to hold interface data)


Broken callout example code-block formatting

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/contributing/style-guide-and-content-model/style-guide#formatting-callouts
What part(s) of the article would you like to see updated?
In the Formatting callouts section of the style guide, the Markdown formatting for the Tip code-block is broken, causing it to display incorrectly on the docs site. This should be updated to have the opening and closing fences for this block on individual lines.
Additional information
It seems this change was introduced here.
Here is a screenshot of the render issue:

I have created a PR to resolve this issue here: #32301

@sventec Thank you for opening an issue and linking it to your PR! ✨


Checks for instantiating abstract classes is causing PyShacl checks to fail

This is causing the CI in the spdx-spec to fail.
Removing the checks will allow the CI to work.
For example:
sh:not [ sh:class ns1:ElementCollection ; ...

constraints will cause any subclass of ElementCollection to fail vaildation.
Reference spec-parser issue 936 comment.

Perhaps we should temporarily remove this check for the 3.0.1 spec release then reintroduce a working check for 3.1.

@JPEWdev @ilans - Can you take a look?  I spent some time trying to come up with some SHACL constraints that work, but failed.
I did some digging on the internet and the conversation I found basically had the opinion you should not create such a constraint (not sure I agree) - reference this W3c email thread.
I think the reason the pyshacl is failing with the SPDX spec example is that Core:Person http://spdx.example.com/Agent/JoshuaWatt is an RDF subclass of Element which has the constraint that it can not be an Element.

Attached is the current (as of this comment) generated model.ttl file and the example file the spec repo for convenience.
package_sbom.json.txt
spdx-model.ttl.txt

I downloaded your example, and I'm not seeing the same errors you are? Maybe the files you uploaded are incorrect?

I downloaded your example, and I'm not seeing the same errors you are? Maybe the files you uploaded are incorrect?

I'll check - I'm going to re-run the tests using Alexios' latest spec-parser and on the model which includes the IndividualElement types.

Ya, I was able to reproduce it by downloading the latest model from https://spdx.org/rdf/3.0.1/spdx-model.ttl

Just finished running it - everything is fixed except the abstract class constraints.
Here's a couple snippets from the output:
Constraint Violation in NotConstraintComponent (http://www.w3.org/ns/shacl#NotConstraintComponent):
        Severity: sh:Violation
        Source Shape: ns1:ElementCollection
        Focus Node: <http://spdx.example.com/Document1>
        Value Node: <http://spdx.example.com/Document1>
        Message: Node <http://spdx.example.com/Document1> must not conform to shape [ sh:class ns1:ElementCollection ; sh:message Literal("https://spdx.org/rdf/3.0.1/terms/Core/ElementCollection is an abstract class and should not be instantiated directly. Instantiate a subclass instead.", lang=en) ]
Constraint Violation in NotConstraintComponent (http://www.w3.org/ns/shacl#NotConstraintComponent):
        Severity: sh:Violation
        Source Shape: ns1:ElementCollection
        Focus Node: <http://spdx.example.com/BOM1>
        Value Node: <http://spdx.example.com/BOM1>
        Message: Node <http://spdx.example.com/BOM1> must not conform to shape [ sh:class ns1:ElementCollection ; sh:message Literal("https://spdx.org/rdf/3.0.1/terms/Core/ElementCollection is an abstract class and should not be instantiated directly. Instantiate a subclass instead.", lang=en) ]

Note that these don't reference the individuals.  From a cursory look, it to be failing on any subclass of an abstract class.

The problem is, if we remove the constraint, we loose the hints we are using in the code generators to denote the abstract classes.  I spent a couple hours trying unsuccessfully to find an alternative.  I'll keep looking.

I found a solution I think will work.
Adding a property constraint against the path rdf:type which restricts the type to be sh:in the list of all direct and indirect subclasses.
For example, in ElementCollection, add the property restriction:
[ sh:path rdf:type ;
    sh:in( ns1:SpdxDocument ns1:Bundle ns1:Bom ns3:Sbom ) ;
 ]

I tested this against the spec-spec example and it passes.  I tested it against a JSON-LD with the following added and it failed as expected:
      {
            "type": "ElementCollection",
            "spdxId": "http://spdx.example.com/BOM1",
            "creationInfo": "_:creationinfo",
            "element": [
                "http://spdx.example.com/Package1/myprogram",
                "http://spdx.example.com/Package1"
            ]
        },

Note: adding this constraint will effectively "close" the list of subclasses that can be made of our abstract types.  I'm not sure this is desirable or not.
Also note, I spent several hours trying several other alternatives and this was the only one I could find which would both pass the spec-parser example and fail when an abstract class is used. Here's a non-exhaustive list to avoid duplicative effort:

Use sh:in at the top class leve
Use sh:not abstract class with the rdf:type property shape
Various combinations of using sh:xone
Various combinations of using sh:or
Using only direct subclasses
...

BTW - I think I now understand why the current sh:not approach doesn't work.  SHACL is checking agasint the shape, not the URI that defines the shape - so any rdfs subclass of a shape will always conform the the superclass shape - therefore always failing.  I thought moving the constraint down to the property rdf:type would work, but based on the PyShacl validation message, it was also checking against the shape, not the value of the @type provided in the JSON-LD SPDX file.

In thinking about this, we do not want to have this constraint on the Extension class since it can not be closed.

This appears to work for me:
ns1:Element a owl:Class,
        sh:NodeShape ;
        ...
        sh:property [
            sh:path rdf:type ;
            sh:not [ sh:hasValue ns1:Element ] ;
            sh:message "https://spdx.org/rdf/3.0.1/terms/Core/Element is an abstract class and should not be instantiated directly. Instantiate a subclass instead."@en
        ] ...

Basically, instead of using sh:class it verifies that the rdf:type value specifically doesn't contain ns1:Element (which it won't for subclasses).
Try this and if it works we'll need to update shacl2code to handle this properly.

This appears to work for me:
ns1:Element a owl:Class,
        sh:NodeShape ;
        ...
        sh:property [
            sh:path rdf:type ;
            sh:not [ sh:hasValue ns1:Element ] ;
            sh:message "https://spdx.org/rdf/3.0.1/terms/Core/Element is an abstract class and should not be instantiated directly. Instantiate a subclass instead."@en
        ] ...

Basically, instead of using sh:class it verifies that the rdf:type value specifically doesn't contain ns1:Element (which it won't for subclasses).
Try this and if it works we'll need to update shacl2code to handle this properly.

This didn't pass my test of an SPDX document that should fail.
I'll attach my test document - it should fail validation:
fail.json.txt
@JPEWdev - let me know if you get the same result

Oops - I think I made a mistake in my test ... I'll re-check

OK - it passed my tests as well.
@JPEWdev solution does not close the subclassing like my solution and is much more straightforward to implement.  I vote for implementing the "not hasValue" approach.

PR #171 together with the model changes in https://github.com/spdx/spdx-3-model/pull/937 now fully pass validation.


Can't control mouse cursor when evdevshift is configured for HAT

Can't control mouse cursor when evdevshift is configured for HAT.
Configuration:
Saiteck_AV8R-01-cursor_problem.conf.txt
Video:
https://vimeo.com/178736801
ps: for me low priority. Axis mapping higher;)

I'm working on it, unfortunately real life is interfering, so it doesn't go as swiftly as I'd like to...
Kind regards,
Michal

Cool.
Personally I would be happier from mapping "shift"+axises to new axis;)
Thanks
Marcin

Hi,
I just committed the new stuff - take a look at the test.conf; I added conditional mapping of axis to a new one (not sure it makes sense to make such mapping unconditionally; but if needed, I can add it).
The "new_axis" does it...
As for hijacking mouse/not being recognized as joystick, I'll take a peek at those heuristics and see if I can make the program smart enough to stay in the joystick category no matter what...
Let me know if what I did works for you...
Kind regards,
Michal

Re-tests after last updates - new issue no new joystick (evdevshift joystick) was not visible in jstest-gtk (only oryginal joystick), mouse problem still exists.
logs:
$ ./evdevshift --config presets/Saiteck_AV8R-01-cursor_problem.conf
Parsing file 'presets/Saiteck_AV8R-01-cursor_problem.conf'.
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
Device: 'Saitek AV8R Joystick'.
Names defined:
Name def: Axis ABS_HAT0Y => 17
Name def: Axis ABS_HAT0X => 16
Name def: Axis ABS_THROTTLE => 6
Name def: Axis ABS_RZ => 5
Name def: Axis ABS_Z => 2
Name def: Axis ABS_Y => 1
Name def: Axis ABS_X => 0
Name def: Button BUTTON_12D => 301
Name def: Button BUTTON_12C => 300
Name def: Button BTN_BASE6 => 299
Name def: Button BTN_BASE5 => 298
Name def: Button BTN_BASE4 => 297
Name def: Button BTN_BASE3 => 296
Name def: Button BTN_BASE2 => 295
Name def: Button BTN_BASE => 294
Name def: Button BTN_PINKIE => 293
Name def: Button BTN_TOP2 => 292
Name def: Button BTN_TOP => 291
Name def: Button BTN_THUMB2 => 290
Name def: Button BTN_THUMB => 289
Name def: Button BTN_TRIGGER => 288
State:
      Button BUTTON_12D => 301
        Axis ABS_HAT0Y (17) will be mapped to buttons BUTTON_12C (300)/ BUTTON_12D (301).
        Axis ABS_HAT0X (16) will be mapped to buttons BUTTON_12E (302)/ BTN_DEAD (303).
        Button BTN_BASE6 (299) will be mapped to BTN_A (304).
        Button BTN_BASE5 (298) will be mapped to BTN_B (305).
        Button BTN_BASE4 (297) will be mapped to BTN_C (306).
        Button BTN_BASE3 (296) will be mapped to BTN_X (307).
        Button BTN_BASE2 (295) will be mapped to BTN_Y (308).
        Button BTN_BASE (294) will be mapped to BTN_Z (309).
        Button BTN_PINKIE (293) will be mapped to BTN_TL (310).
        Button BTN_TOP2 (292) will be mapped to BTN_TR (311).
State:
      Button BUTTON_12C => 300
        Axis ABS_HAT0Y (17) will be mapped to buttons BTN_TL2 (312)/ BTN_TR2 (313).
        Axis ABS_HAT0X (16) will be mapped to buttons BTN_SELECT (314)/ BTN_START (315).
        Button BTN_BASE6 (299) will be mapped to BTN_MODE (316).
        Button BTN_BASE5 (298) will be mapped to BTN_THUMBL (317).
        Button BTN_BASE4 (297) will be mapped to BTN_THUMBR (318).
        Button BTN_BASE3 (296) will be mapped to BUTTON_13F (319).
        Button BTN_BASE2 (295) will be mapped to BTN_TOOL_PEN (320).
        Button BTN_BASE (294) will be mapped to BTN_TOOL_RUBBER (321).
        Button BTN_PINKIE (293) will be mapped to BTN_TOOL_BRUSH (322).
        Button BTN_TOP2 (292) will be mapped to BTN_TOOL_PENCIL (323).
Axis Maps:
File 'presets/Saiteck_AV8R-01-cursor_problem.conf' opened.
New device created.

Could you please add what evtest has to say about the new device? Assuming the /dev/input/eventX is created - if no, please let me know...
I'm interested in what evtest reports about the device (axes, buttons, ...).
Also can you check what /var/log/Xorg.log has to say about the device (is the device recognized as mouse, or tablet?)...
Kind regards,
Michal

evtest doesn't seem to see any addional devices, nor I see it in jstest-gtk (and there usually was one more)
$ evtest
No device specified, trying to scan all of /dev/input/event*
Not running as root, no devices may be available.
Available devices:
/dev/input/event5:      Saitek AV8R Joystick
Select the device event number [0-5]: 5
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x6a3 product 0x461 version 0x100
Input device name: "Saitek AV8R Joystick"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 288 (BTN_TRIGGER)
    Event code 289 (BTN_THUMB)
    Event code 290 (BTN_THUMB2)
    Event code 291 (BTN_TOP)
    Event code 292 (BTN_TOP2)
    Event code 293 (BTN_PINKIE)
    Event code 294 (BTN_BASE)
    Event code 295 (BTN_BASE2)
    Event code 296 (BTN_BASE3)
    Event code 297 (BTN_BASE4)
    Event code 298 (BTN_BASE5)
    Event code 299 (BTN_BASE6)
    Event code 300 (?)
    Event code 301 (?)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value    512
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
    Event code 1 (ABS_Y)
      Value    515
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
    Event code 2 (ABS_Z)
      Value    130
      Min        0
      Max      255
      Flat      15
    Event code 5 (ABS_RZ)
      Value    128
      Min        0
      Max      255
      Flat      15
    Event code 6 (ABS_THROTTLE)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 16 (ABS_HAT0X)
      Value      0
      Min       -1
      Max        1
    Event code 17 (ABS_HAT0Y)
      Value      0
      Min       -1
      Max        1
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
Event: time<PHONE_NUMBER>.438634, type 3 (EV_ABS), code 1 (ABS_Y), value 514
Event: time<PHONE_NUMBER>.438634, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.478697, type 3 (EV_ABS), code 1 (ABS_Y), value 513
Event: time<PHONE_NUMBER>.478697, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.526632, type 3 (EV_ABS), code 2 (ABS_Z), value 131
Event: time<PHONE_NUMBER>.526632, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.558696, type 3 (EV_ABS), code 1 (ABS_Y), value 515
Event: time<PHONE_NUMBER>.558696, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.598633, type 3 (EV_ABS), code 2 (ABS_Z), value 130
Event: time<PHONE_NUMBER>.598633, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.606687, type 3 (EV_ABS), code 1 (ABS_Y), value 514
(..)

tail from /var/log/Xorg.0.log (after couple sec I terminated evdevshift, to be able to use the mouse, that's why there's a "remove" in log)
[  1894.262] (--) NVIDIA(GPU-0):
[  3934.319] (II) config/udev: Adding input device evdevshift: Saitek AV8R Joystick (/dev/input/event14)
[  3934.319] (**) evdevshift: Saitek AV8R Joystick: Applying InputClass "evdev tablet catchall"
[  3934.319] (II) Using input driver 'evdev' for 'evdevshift: Saitek AV8R Joystick'
[  3934.319] (**) evdevshift: Saitek AV8R Joystick: always reports core events
[  3934.319] (**) evdev: evdevshift: Saitek AV8R Joystick: Device: "/dev/input/event14"
[  3934.319] (--) evdev: evdevshift: Saitek AV8R Joystick: Vendor 0x6a3 Product 0x461
[  3934.319] (--) evdev: evdevshift: Saitek AV8R Joystick: Found absolute axes
[  3934.319] (--) evdev: evdevshift: Saitek AV8R Joystick: Found x and y absolute axes
[  3934.319] (--) evdev: evdevshift: Saitek AV8R Joystick: Found absolute tablet.
[  3934.319] (II) evdev: evdevshift: Saitek AV8R Joystick: Configuring as tablet
[  3934.319] (**) evdev: evdevshift: Saitek AV8R Joystick: YAxisMapping: buttons 4 and 5
[  3934.319] (**) evdev: evdevshift: Saitek AV8R Joystick: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[  3934.320] (**) Option "config_info" "udev:/sys/devices/virtual/input/input17/event14"
[  3934.320] (II) XINPUT: Adding extended input device "evdevshift: Saitek AV8R Joystick" (type: TABLET, id 12)
[  3934.320] (II) evdev: evdevshift: Saitek AV8R Joystick: initialized for absolute axes.
[  3934.320] (**) evdevshift: Saitek AV8R Joystick: (accel) keeping acceleration scheme 1
[  3934.321] (**) evdevshift: Saitek AV8R Joystick: (accel) acceleration profile 0
[  3934.321] (**) evdevshift: Saitek AV8R Joystick: (accel) acceleration factor: 2.000
[  3934.321] (**) evdevshift: Saitek AV8R Joystick: (accel) acceleration threshold: 4
[  3982.287] (II) config/udev: removing device evdevshift: Saitek AV8R Joystick
[  3982.306] (II) evdev: evdevshift: Saitek AV8R Joystick: Close
[  3982.306] (II) UnloadModule: "evdev"

Hello,
in the meantime I managed to reproduce the problem and your logs confirm what I see - the device is recognized as tablet because of presence of the BTN_TOOL_PEN button... And evtest doesn't report it probably because it is grabbed by the X server (or it has wrong permissions)...
Anyway, I'm working on a fix...
Kind regards,
Michal

I just committed a fix that works in the case that I see...
Add the following line to your config:
avoid button BTN_TOOL_PEN, button BTN_STYLUS
This will instruct evdevshift to skip those buttons when mapping the real ones; with those two buttons the new device should not be mistaken for tablet anymore...
Kind regards,
Michal

I did 'git pull' and something's seems to be wrong now. Should I try to do a fresh 'git clone'?
BTW wouldn't it be better if the avoid button BTN_TOOL_PEN, button BTN_STYLUS be a default option?
here's log:
$ evdevshift --config presets/Saiteck_AV8R-01-cursor_problem.conf
Can't open file 'presets/Saiteck_AV8R-01-cursor_problem.conf'
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
Device named '(null)' NOT opened.

marcin@ubuntu:~/evdevshift$ evdevshift
Usage examples:
To create config template:
evdevshift --device /dev/input/event12 --template x52.conf
To create a virtual device based on the config:
evdevshift --config x52.conf

marcin@ubuntu:~/evdevshift$ evtest
No device specified, trying to scan all of /dev/input/event*
Not running as root, no devices may be available.
Available devices:
/dev/input/event6:      Saitek AV8R Joystick
Select the device event number [0-6]: ^V^C
marcin@ubuntu:~/evdevshift$ evdevshift --device /dev/input/event6 --template x52.conf
open: Permission denied
Device '/dev/input/event6' NOT opened.

Ignore my previous problem. I forgot that I installed snap evdevshift, it was run instead of evdevshift from current dir ("./").
It works (doesn't move mouse cursor) but in the log there's entry will be mapped to BTN_TOOL_PENCIL I don't know if that's ok for you or not?
Full log:
$ ./evdevshift --config presets/Saiteck_AV8R-01-cursor_problem.conf
Parsing file 'presets/Saiteck_AV8R-01-cursor_problem.conf'.
Avoid BTN_TOOL_PEN.
Avoid BTN_STYLUS.
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
open: Permission denied
Device: 'Saitek AV8R Joystick'.
Names defined:
Name def: Axis ABS_HAT0Y => 17
Name def: Axis ABS_HAT0X => 16
Name def: Axis ABS_THROTTLE => 6
Name def: Axis ABS_RZ => 5
Name def: Axis ABS_Z => 2
Name def: Axis ABS_Y => 1
Name def: Axis ABS_X => 0
Name def: Button BUTTON_12D => 301
Name def: Button BUTTON_12C => 300
Name def: Button BTN_BASE6 => 299
Name def: Button BTN_BASE5 => 298
Name def: Button BTN_BASE4 => 297
Name def: Button BTN_BASE3 => 296
Name def: Button BTN_BASE2 => 295
Name def: Button BTN_BASE => 294
Name def: Button BTN_PINKIE => 293
Name def: Button BTN_TOP2 => 292
Name def: Button BTN_TOP => 291
Name def: Button BTN_THUMB2 => 290
Name def: Button BTN_THUMB => 289
Name def: Button BTN_TRIGGER => 288
State:
      Button BUTTON_12D => 301
        Axis ABS_HAT0Y (17) will be mapped to buttons BUTTON_12C (300)/ BUTTON_12D (301).
        Axis ABS_HAT0X (16) will be mapped to buttons BUTTON_12E (302)/ BTN_DEAD (303).
        Button BTN_BASE6 (299) will be mapped to BTN_A (304).
        Button BTN_BASE5 (298) will be mapped to BTN_B (305).
        Button BTN_BASE4 (297) will be mapped to BTN_C (306).
        Button BTN_BASE3 (296) will be mapped to BTN_X (307).
        Button BTN_BASE2 (295) will be mapped to BTN_Y (308).
        Button BTN_BASE (294) will be mapped to BTN_Z (309).
        Button BTN_PINKIE (293) will be mapped to BTN_TL (310).
        Button BTN_TOP2 (292) will be mapped to BTN_TR (311).
State:
      Button BUTTON_12C => 300
        Axis ABS_HAT0Y (17) will be mapped to buttons BTN_TL2 (312)/ BTN_TR2 (313).
        Axis ABS_HAT0X (16) will be mapped to buttons BTN_SELECT (314)/ BTN_START (315).
        Button BTN_BASE6 (299) will be mapped to BTN_MODE (316).
        Button BTN_BASE5 (298) will be mapped to BTN_THUMBL (317).
        Button BTN_BASE4 (297) will be mapped to BTN_THUMBR (318).
        Button BTN_BASE3 (296) will be mapped to BUTTON_13F (319).
        Button BTN_BASE2 (295) will be mapped to BTN_TOOL_RUBBER (321).
        Button BTN_BASE (294) will be mapped to BTN_TOOL_BRUSH (322).
        Button BTN_PINKIE (293) will be mapped to BTN_TOOL_PENCIL (323).
        Button BTN_TOP2 (292) will be mapped to BTN_TOOL_AIRBRUSH (324).
Axis Maps:
File 'presets/Saiteck_AV8R-01-cursor_problem.conf' opened.
New device created.

BTW wouldn't it be better if the avoid button BTN_TOOL_PEN, button BTN_STYLUS be a default option?

Hello,
the thing is this - X server by default captures mice, tablets, touchpads... Udev uses heuristic algorithm to guess what kind of device it got by looking at axes, buttons and other characteristics...
See https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-input_id.c , test_pointers function...
The tablet is recognized either by a presence of BTN_TOOL_PEN or BTN_STYLUS; if none of them is present, the device won't be recognized as a tablet... Unfortunately joystick is only a "fallback" - all other options are checked first... I'll have to go through it thoroughly to see what other combinations can cause problems...
Now as for hardcoding those ignore values, I'd like to avoid that; the thing is, that the procedure is heuristic and can change in the future... What I'm thinking of is adding the line to the template - that way it can be customized and won't cause problems by default - how about that?
Kind regards,
Michal

Cool, I think generating this line is OK.
BTW Readme file is not up to date (build  steps now use ". /configure" before "make" ).


fix ui, add dockerfile

add makefile and docker for convenient
fix ui
use the server address in user input directly

Most time the influxdb address may be normal host:port type, but sometimes people need their particular style of address. Is there any better idea? I can make some change to make this better.

I added some change to fix a QueryDataStore error.
When influxdb return some error like this:
{"results":[{"statement_id":0,"error":"GROUP BY requires at least one aggregate function"}]}

we need to get error message from results and set message to error in store.


[type-declaration-immutability] add support for union types when they are interfaces

Bug Report
eslint config:
'functional/type-declaration-immutability': [
          'error',
          {
            rules: [
              {
                identifiers: '^(?!I?Mutable).+',
                immutability: 'ReadonlyShallow',
                comparator: 'AtLeast',
                fixer: false,
              },
            ],
            ignoreInterfaces: true,
          },
        ],

Given the above config, I'm basically wanting anything to be at least ReadonlyShallow except for interfaces, which works great. However, given this example
interface A {
  prop: string;
}

interface B {
  prop2: string;
}

type UnionedType = A | B;

I'm getting the following error
This type is declare to have an immutability of at least "ReadonlyShallow" (actual: "Mutable")

I don't think that my config is off. It seems to me like this is more of a cornercase for this new rule.
Expected behavior
Union type of > 1 interfaces doesn't error out if ignoreInterfaces is true
Actual behavior
Union type of > 1 interfaces errors out if ignoreInterfaces is true
Steps to reproduce
Add above config and use above example
Proposed changes

I've been thinking about this proposal quite a bit, but I think ultimately, this not something I want to implement into the rule.
As an alternative, you can use a naming convention.
For example, you could prefix such types with IU (short for "interface union") and then ignore this pattern with: "ignorePattern": "^IU[A-Z]\\S+"

I've been thinking about this proposal quite a bit, but I think ultimately, this not something I want to implement into the rule.
As an alternative, you can use a naming convention. For example, you could prefix such types with IU (short for "interface union") and then ignore this pattern with: "ignorePattern": "^IU[A-Z]\\S+"

Unfortunately that would require us renaming thousands of union types. I think we won't be able to leverage this rule on our project for the time being 😢

You could use this rule in an op-in way.
If you use a config similar to the override for the recommended and lite presets, you'll need to prefix type declarations with Readonly for the rule to enforce they are readonly.


[Android] TextInput doesn't scroll properly when restricting the height on an expanding TextInput

Description
I'm creating a InputText where I want to restrict the height to a maximum. When I do it the TextInput doesn't automatically scroll when I write enough to add another line of text. That means I have to manually scroll down to see what I'm typing.

It works on iOS as expected
It works as expected if I'm setting a fixed height (style={{height: 200}})
It works as expected if I don't restrict the height (style={{ height: Math.max(35, this.state.height) }})

Reproduction
class AutoExpandingTextInput extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            text: 'React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about — learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.',
            height: 0,
        };
    }
    render() {
        return (
            <TextInput
                {...this.props}
                multiline={true}
                onChange={(event) => {
                    // onContentSizeChange doesn't work on Android, use onChange instead https://github.com/facebook/react-native/issues/11692
                    this.setState({ height: event.nativeEvent.contentSize.height });
                }}
                onContentSizeChange={(event) => {
                    this.setState({ height: event.nativeEvent.contentSize.height });
                }}
                onChangeText={(text) => {
                    this.setState({ text });
                }}
                style={{ height: Math.min(200, Math.max(35, this.state.height)) }}
                value={this.state.text}
            />
        );
    }
}

Solution
?
Additional Information

React Native version: 0.42
Platform: Android
Operating System: MacOS

https://github.com/facebook/react-native/issues/11692#issuecomment-274564452

@jonasb @shergin This is also happening on RN 0.46.1. Simply including
onContentSizeChange={() => {}}

is enough to cause what appears to be disabling automatic scrolling, even on inputs of fixed height!

I have the same issue in RN 0.46.4

@shergin (in response to 😕 ) Try out this snack on an android device: https://snack.expo.io/BkhOoGtLZ. I used a Galaxy S6.

Confirmed on RN 0.46.4, with:
  handleContentSizeChange = ({ nativeEvent }) => {
    const { height } = nativeEvent.contentSize
    this.setState({
      inputHeight: height > MAX_INPUT_HEIGHT ? MAX_INPUT_HEIGHT : height
    })
  }

  render () {
    return <View>
      <TextInput
        onContentSizeChange={this.handleContentSizeChange}
        style={ height: this.state.inputHeight } />
    </View>
  }

confirmed ios doesn't have this issue only android

any progress on this issue?

@guysegal use workaround as posted

Yes, I am still working on this.

@stoffern which workaround are you referring to? I didn't find a workaround for the case where max height is defined

This bug wasn't happening when we were using RN 0.38.0, should be some changes afterwards

I have the same issue in RN 0.48.3

I extended react-native-autogrow-input to create a Component that works for me (I've only tested this on Android). This is a messy hack because I use two TextInput. The user sees only one of them. The hidden TextInput handles onContentSizeChange() while the visible one receives user input, grows & scrolls appropriately. The two TextInput communicate with each other via the component state. The component requires two props: minHeight and maxHeight. Feel free to customize this for your use case or let me know if you have a better solution.
import React, { PureComponent } from 'react';
import { TextInput, View } from 'react-native';

import PropTypes from 'prop-types';

export default class AutoGrowInput extends PureComponent {

  componentWillMount() {
    this.setState({
      height: this.props.minHeight,
      inputValue: '',
    });
  }

  onContentSizeChange = (event) => {
    const { minHeight, maxHeight } = this.props;
    // Adding 30 to provide extra padding.
    let inputHeight = Math.max(minHeight, event.nativeEvent.contentSize.height + 30);
    if (inputHeight > maxHeight) {
      inputHeight = maxHeight;
    }
    if (this.state.height !== inputHeight) {
      this.setState({
        height: inputHeight,
      });
    }
  }

  clear = () => {
    if (this.inputRef) {
      this.inputRef.setNativeProps({ text: '' });
      this.setState({
        height: this.props.minHeight,
        inputValue: '',
      });
    }
  }

  value = () => {
    return this.state.inputValue;
  }

  focus = () => {
    if (this.inputRef && this.inputRef.focus) {
      this.inputRef.focus();
    }
  }

  render() {
    return (
      <View
        style={{
          flex: 1,
          marginTop: 5,
          marginBottom: 10,
          height: this.state.height,
          alignSelf: 'stretch',
          padding: 0,
        }}
      >
        {/*
        This is the TextInput the user sees. It does not have onContentSizeChange(), so it
        scrolls as expected. It receives the user input and stores it as this.state.inputValue
        */}
        <TextInput
          ref={ref => this.inputRef = ref}
          multiline
          {...this.props}
          style={[this.props.style, { height: this.state.height }]}
          onChangeText={val => this.setState({ inputValue: val })}
          value={this.state.inputValue}
        />
        {/*
        This is a hidden TextInput that the user does not see. It uses onContentSizeChange() to
        calculate the height of the input the user sees. It receives the user's input from
        this.state.inputValue.
        */}
        <TextInput
          multiline
          style={{ height: 0, margin: 0, padding: 0 }}
          onContentSizeChange={this.onContentSizeChange}
          value={this.state.inputValue}
        />
      </View>
    );
  }
}

AutoGrowInput.propTypes = {
  style: PropTypes.oneOfType([
    PropTypes.number,
    PropTypes.array,
    PropTypes.object,
  ]),
  minHeight: PropTypes.number,
  maxHeight: PropTypes.number,
};

I only get the textbox to grow on an <Enter> press.  A long line that wraps several times always returns a height of 14; only after pressing <Enter> I get a height of 24 (then 42, etc.)
How can we get autogrowing to work with wrapping?  I'm using the exact example from @jonasb at the top of this thread.

This issue also exists with RN 0.49.0 with 'autoGrow' option and 'maxHeight' property set to imitate the same behavior as with using onContentSizeChange which shouldn't surprise as internally auto-growing features uses onContentSizeChange.

Same issue here. I was able to work around this by setting onContentSizeChange to undefined on Android, and specifying a fixed height through the style prop on Android as well. I only apply these changes on Android via Platform.OS === 'android' ? A : B.
Hoping for a fix sometime soon, my TextInput component is looking pretty nasty with all of these if/else workarounds for Android lately.

Hey there,
It will not fix this particular issue, but look at this: c550f27a4e82402b966567d7b79a8b1f1d1491a5.
TextInput on Android has dynamic intrinsic content size now, similarly to iOS. It basically makes autoGrow deprecated.
However, I still don't know how to fix this issue. 😢

My workaround no longer works in RN 0.49.1.  😢

having the same issue for RN 0.49.1 :S

RN 0.49.1 - Android
Now automatic scrolling for TextInput doesn't work AT ALL. I was able to, at some point, observe auto scrolling when setting a fixed height as @jonasb has stated. Now that's gone! Can any one else confirm?

@Palisand I can confirm 100%.

I remember a time (around this commit change) where everything on Android was working as expected: auto-expand, cursor tracking, the whole lot. Now it seems multiline inputs were the amount of text is expected to exceed the height is pretty much useless. What happened?! 😭

@shergin I have taken a look at your changes c550f27a4e82402b966567d7b79a8b1f1d1491a5 on the RNTester app. Is there a way to get the screen to scroll to the line where the cursor is located (rather than having the user manually scroll)? This was done automatically in an earlier version of react-native, ~0.46 if I remember correctly.
Also, what is the problem you are facing exactly when trying to get auto-scrolling working again?

@Palisand Well, I just tried to fix/enable it, but I failed. So, yes, the current state is: layout is working, scrolling is not (and I don't know how to fix that, yet).
But, it should be (easy) fixable. 😂

I was specifically referring to the scrolling of a parent view of a growable TextInput rather than the input itself. It's good to hear that you think the latter should be easily fixable as this is pretty critical functionality. I personally don't even know where to begin making changes to get this working (ReactTextInputManager.java, ReactTextEdit.java?).

@shergin @Palisand I've tracked the issue basing on RN 0.49-stable branch and this is a guilty method: https://github.com/facebook/react-native/blob/0.49-stable/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java#L121
I've created my own implementation of ReactEditText which looks like this:
public class CustomTextInput extends ReactEditText {
    public CustomTextInput(Context context) {
        super(context);
    }

    @Override
    public boolean isLayoutRequested() {
        return false;
    }
}

Then I've overrided ReactTextInputManager like this:
public class CustomTextInputManager extends ReactTextInputManager {

    @Override
    public String getName() {
        return "CustomTextInput";
    }

    @Override
    public CustomTextInput createViewInstance(ThemedReactContext context) {
        CustomTextInput editText = new CustomTextInput(context);
        int inputType = editText.getInputType();
        editText.setInputType(inputType & (~InputType.TYPE_TEXT_FLAG_MULTI_LINE));
        editText.setReturnKeyType("done");
        editText.setTextSize(
                TypedValue.COMPLEX_UNIT_PX,
                (int) Math.ceil(PixelUtil.toPixelFromSP(ViewDefaults.FONT_SIZE_SP)));
        return editText;
    }
}

and then I've copy-pasted the TextInput class and put my CustomTextInput here https://github.com/facebook/react-native/blob/0.49-stable/Libraries/Components/TextInput/TextInput.js#L42
And the issue is gone!
This is surely a pretty short workaround but it may require proper implementation and testing on master RN branch. I'm not sure why someone would not want the automatic scroll on the TextInput so I don't know what is the purpose of the original implementation and which use cases it handles. I thought that maybe setting initial very long text on TextInput with restricted height would cause the TextInput to be scrolled to the bottom but no, it didn't break this behavior.

@konradkierus @shergin Just tested this by changing ReactEditText directly. This solves both scrolling issues and saved me from continuing down the dark path of using the cursor's y position. However, it might lead to some unintended behavior with onContentSizeChange (see this commit).

I am facing this textInput multiline issue for my last two projects.
It really is painful that the such basic needs are being ignored in React Native such as navigation, which is not really solved yet after two years. Nested Scroll (Android) is another example.

I dont quite get what your problems are.
React Native is supposed to be a framework/core rather than "the complete package"
Navigation, swipe functions, etc should be extentions or seperate repos, in FB`s and also my opinion.
The textInput problem can easily be solved.
You should not use onContentSizeChange for this, rather use onChange
onChange={event => {
  this.setState({
    height: event.nativeEvent.contentSize.height
  });
}}

@stoffern what would that accomplish?
Set a textInput to have a maxHeight start typinh on it and see how it wont auto scroll as you enter new lines

@shukerullah After @shergin's changes, TextInputs for both iOS and Android have an intrinsic size. You do not need to use onContentSizeChange or autoGrow to control input size anymore if you're on master; try out the RNTester app and rejoice! To restore Android's cursor-following / auto-scrolling, you need to use @konradkierus's changes which, at the very least, involve always having ReactEditText's isLayoutRequested method always return false. To add cursor-following to iOS it is a little more involved if you want to use my method (see my previous comment), but you also have the option of using @baijunjie's react-native-input-scroll-view.

@Palisand great comment, thanks for the heads up!
Did not see that commit, i was on a old version 😉

So basically in the next release (0.50 or maybe 0.51) it will work as expected, right?

@Palisand Is a fix for this already on master?
Basically I'm trying to reproduce the same behvaviour as iOS on Android.

hi @konradkierus , why does it not work when I simply just change the existing isLayoutRequested method in ReactEditText.java file to always return false?

@LEEY19 Because otherwise it would break the following use case: if you set initial long text on TextInput with restricted height then TextInput would be already scrolled to the bottom. If you don't need to provide default value for the TextInput then you're fine with returning false all the time.
You can read more explanations on the issue if you read my previous post https://github.com/facebook/react-native/issues/12799#issuecomment-335082550 from top to the bottom.

@konradkierus Thanks for your swift reply. I actually tried just changing isLayoutRequested to always return false but the auto scrolling issue wasn't solved. If all I want is to get the auto scrolling on Android work on a TextInput that has a set maxHeight until a point, how do I do that?
I tried following your steps in implementing both CustomTextInputManager and CustomTextInput classes. And then in TextInput.js, I did this:
if (Platform.OS === 'android') {
  var AndroidTextInput = requireNativeComponent('CustomTextInput', null);
} else if (Platform.OS === 'ios') {
  var RCTTextView = requireNativeComponent('RCTTextView', null);
  var RCTTextField = requireNativeComponent('RCTTextField', null);
}

It would not work. What did I do wrong?

@LEEY19 I'm not sure what you did wrong. Did you build RN from source? I wasn't doing this, just tried t  o make the workaround without building RN from the master branch. Also, please note that I was testing this on RN 0.49, didn't have opportunity yet to check the behavior on RN 0.50 which consist changes to TextInput's height calculations (https://github.com/facebook/react-native/commit/c550f27a4e82402b966567d7b79a8b1f1d1491a5)

@konradkierus nope I did not build RN from source. I am testing on 0.47.1. Maybe that could be the reason..
To refresh for the changes, you would just run react-native run-android right?

@LEEY19 Make sure to register the CustomTextInputManager in your createViewManagers method. You can read about the procedure here: https://facebook.github.io/react-native/docs/native-modules-android.html#register-the-module
Also, I'm not sure where did you change the below line but if you're unsure if it worked then change the 'CustomTextInput' to something else like 'SomethingElse'. If the app doesn't produce an error then you did something wrong.
var AndroidTextInput = requireNativeComponent('CustomTextInput', null);

+1
having this issue as well.
I am using expo version 22.0
for react native in my package.json i have:
"react-native": "https://github.com/expo/react-native/archive/sdk-22.0.1.tar.gz",
which is react native version 49.3 and the auto scrolling is broken.

+1
Having the same issue with maxHeight set

+1
using 0.47.1
solution and did not find, but it is very necessary, if you do not use onContentSizeChange that field does not increase

@konradkierus Sorry for requesting for help again, I have zero knowledge on Java.. When you override the ReactEditText and ReactTextInputManager, did you just place the new public classes in the respective original files?
Also when it comes to registering the module, where do I place the java file? The CustomTextInput module does not seem to be registered and it cannot be fetched in the MainApplication.java file. Its not mentioned here https://facebook.github.io/react-native/docs/native-modules-android.html#register-the-module as well, on where I should be placing the module-registering file

@LEEY19 read this https://facebook.github.io/react-native/docs/native-components-android.html Previously I gave you a link to writing a custom module, this link shows how to implement custom component (extending view managers). If you still won't know how to properly do it then please ask for help in StackOveflow to not spam here.

React Native 50.0 is out, is this fixed for anyone?

Still there for me as well on 0.50.3

On >=50.0 it does at least work as long as you do not have a height set. Which I guess is a bit of a win

I found a solution that works for my purposes so figured I'd share
https://snack.expo.io/r1y4tXVxz
import React, { Component } from 'react';
import {
  StyleSheet,
  TextInput,
  View,
  ScrollView,
  KeyboardAvoidingView
} from 'react-native';

export default class App extends Component {

  state = {
      text: '',
  };

  render() {
    return (
      <KeyboardAvoidingView
        behavior = "position"
        keyboardVerticalOffset= {80}
        keyboardDismissMode = "on-drag"
      >
        <View
        style ={{height:500, backgroundColor: "blue"}}
        />
        <ScrollView
          ref={(scroll) => {this.scroll = scroll;}}
          onContentSizeChange = {() => {this.scroll.scrollToEnd({animated: true})}}
          style = {{height:80}}
        >
            <TextInput
              blurOnSubmit = {false}
              multiline = {true}
              style={styles.text}
              onChangeText={text => this.setState({ text })}
              onContentSizeChange={this._onContentSizeChange}
              placeholder={"Start Typing..."}
            />
        </ScrollView>
      </KeyboardAvoidingView>
    );
  }
}

const styles = StyleSheet.create({
  text: {
    borderColor: 'gray',
    borderWidth: 1,
    marginBottom: 16,
    paddingHorizontal: 8,
  },
});

There are some nested ScrollViews since KeyboardAvoidingView is a ScrollView but it works pretty well as a workaround without having to do native code

@EsdrasEtrenne I like this work around it definitely improves the issue I'm having. Although one thing to be aware of here is that if the text input gets very tall and the user starts editing in the middle then when the content size changes the scrolling to bottom will go too far so the part they were editing disappears.

@EsdrasEtrenne hi!
I'm using https://github.com/FaridSafi/react-native-gifted-chat .
Can you tell me how to fix this mistake in it?

Hi @dead23angel I dont know about that. It could require fixing the actual library code?
Somebody pointed out a flaw in my code though so here is an updated version that works in case a user scrolls up and is editing part of the code:
https://snack.expo.io/r1e2R7Ylz
good for React Native >= 50.0

import React, { Component } from 'react';
import {
  StyleSheet,
  TextInput,
  View,
  ScrollView,
  KeyboardAvoidingView
} from 'react-native';

export default class App extends Component {

  state = {
      text: '',
      textYPosition: 0,
      textHeight: 0

  };

  updateScrollPosition(width, height){

    let yPositionDifference = (height - this.state.textHeight)
    let newYPosition = this.state.textYPosition + yPositionDifference

    console.log(width, height, newYPosition)
    this.scroll.scrollTo({x: 0, y: newYPosition, animated: false})

    this.setState({textHeight: height})
  }

  handleScroll(scrollEvent){
    let textYPosition = scrollEvent.nativeEvent.contentOffset.y
    this.setState({textYPosition})
  }
  render() {
    return (
      <KeyboardAvoidingView
        behavior = "position"
        keyboardVerticalOffset= {80}
        keyboardDismissMode = "on-drag"
      >
        <View
        style ={{height:500, backgroundColor: "blue"}}
        />
        <ScrollView
          ref={(scroll) => {this.scroll = scroll;}}
          onContentSizeChange = {(width, height) => this.updateScrollPosition(width, height)}
          style = {{height:80}}
          scrollEventThrottle = {1}
          onScroll = {nativeEvent => this.handleScroll(nativeEvent)}
        >
            <TextInput
              blurOnSubmit = {false}
              multiline = {true}
              style={styles.text}
              onChangeText={text => this.setState({ text })}
              placeholder={"Start Typing..."}
            />
        </ScrollView>
      </KeyboardAvoidingView>
    );
  }
}

const styles = StyleSheet.create({
  text: {
    marginBottom: 16,
    paddingHorizontal: 8,
  },
});

This is obviously pretty messy and I actually like the simplicity of @konradkierus version, but since I am using Expo for react native I do not have the luxury of using native code. It needs to be 100% javascript.
The key here is updating the component's state using the ScrollView's onScroll method to capture the new current Y position of the TextInput any time the scroll position changes.
After that, anytime the onContentSizeChange method is called we save the new content height to state. We also use the scrollTo method increment the current Y position by the difference of the new content height and the previous content height we saved in state.

0bef872f3fc8b1cd78c574d03eacc886bef4e239 should fix this.
If anyone can test it, I will appreciate that. 😄

@shergin thank you, how can i implemented it in RN 48.2?
I have a huge code so I think i won't install new RN version since I have tried and too many configuration to re-setup.

@shergin
It would be nice to make this commit to version 0.47, because I like the @riryjs code is great to update the packages

@shergin, I've confirmed that this fixed the issue (by cherry-picking patch atop v0.50.3). Thanks!

FYI - we've cherry-picked this into 0.51-stable (RC with this patch still not released but it will go out with the final 0.51.0 release assuming it's not reverted).

seriously @shergin thank you so so much. This is such a save!

@ide Any idea when the 0.51 will be released?
@jamesreggio Any idea how to cherrypick this commit into a project initialized with react-native init (react-native-git-upgrade doesn't work with 0.51.0-rc.3 which should have this commit)?
Thanks!

Hey @mannol, cherry-picking Android fixes is a fairly involved process because you first need to setup your project to build Android from source. It's been a long time since I set up the Android build in my project, but all I remember is that it took a while to get working.
If you are building Android from source, the fastest way to 'cherry-pick' is to actually just copy/paste the changes to ReactEditText.java from this commit into your node_modules directory, and then use a tool like patch-package to preserve the changes across yarn/npm installs.

0.51 is planned to be released sometime today (though unexpected things can happen, so give it a few extra days of buffer room).

❤

Hi,
it fixed in Android. but i see it in IOS.
i'm in R.N 0.54.0

Still there for me as well on 0.50.4


add_widget() reseting disable

This is just related to the method with which the widget is passed
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

Builder.load_string('''
<Butt>:
    background_normal:'image.png'
    background_disabled_normal:'imagedisabled.png'
    on_press:print('a')
''')

class Butt(Button):
    pass

class MApp(App):
    def build(self):
        a=BoxLayout()
        a.add_widget(Butt(disabled=True))
        return a

MApp().run()

Even with the disabled being passed True it becomes False again when it is added
to resolve that just do this
class MApp(App):
    def build(self):
        a=BoxLayout()
        b=Butt()
        a.add_widget(b)
        b.disabled=True
        return a

But I think it would be more practical if the first example worked

Your first code example works perfectly for me. Can you please provide more details about the issue?

I thought  i had the most recent version because i was actualizing it trough the normal methods but i read the docs and saw that i needed to do others things. I was using 1.10.1, now I am using v2.0.0rc4 and it is working fine.
Sorry for the inconvenience.


Avoid using whitespaces as IDs for Monaco coordinates

For some configuration types Monaco uses e.g. "names" as ID field in coordinates. These names can naturally contain whitespaces which are then part of monaco coordinates. While it is not a problem "per se" it introduces difficulties for tools that are processing coordinates, e.g. Upgrade Assistant. Further, it seems cleaner to not use whitespaces in identifiers.
This, PR introduces logic to sanitize the values used as IDs inside coordinates after they are downloaded.

Since e.g. key user actions with "MY KUA" and "MYKUA", will effectively result in the same sanitized ID, this is is not a good enough solution. Maybe a better approach would be to use something like base64 encoding for the IDs - with the side effect that IDs of downloaded configs wouldn't give the user a hint about the actual config items anymore.

Won't do at the moment. If this is still necessary, the idea would be to introduce a FF to let monaco generate uuids during download and use this as the id for the coordinate.


fix directory bug in load_existing_sig_batches

Two bugs, actually!
in load_existing_zip_batches
let dir = outpath_base
    .parent()
    .ok_or_else(|| anyhow::anyhow!("Could not get parent directory"))?;

errors out if outpath_base is just a filename, not a path (e.g. "output.zip").
Replace this with:
let dir = outpath_base
        .parent()
        .filter(|p| !p.as_os_str().is_empty())
        .map(|p| p.to_path_buf())
        .or_else(|| get_current_directory().ok())
        .ok_or_else(|| anyhow::anyhow!("Failed to determine a valid directory"))?;

    if !dir.exists() {
        return Err(anyhow::anyhow!("Directory for output zipfile does not exist: {}", dir));
    }

Then, we need to explicitly disable loading from the exact outpath, because if a user runs the same command twice, we don't want to overwrite the valid, good zipfile with an empty one (no sigs to write).
 while let Some(entry) = dir_entries.next_entry().await? {
        let entry_path: PathBuf = entry.path().try_into()?;

        // Skip the `outpath` itself to loading, as we just overwrite this file for now (not append)
        if entry_path == *outpath {
            eprintln!("Skipping the original output file: {}", entry_path);
            continue;
        }

...

Note that these bugs mean that running v0.4.0 with an output file, "output.zip" that doesn't contain an explicit path would fail.


Revert "Revert "Support macros when cross-compiling (#7118)" (#7352)"

Reverts apple/swift-package-manager#7352.
Modified to build tests for the host triple when any macros are added to test modules directly as dependencies.

@swift-ci test

@swift-ci test windows

@swift-ci test

@swift-ci test

@swift-ci test

@swift-ci test

@swift-ci test

@swift-ci please test Windows

@swift-ci test

@swift-ci test

@swift-ci test

@swift-ci test windows

This needs performance testing before it can be merged.

@swift-ci test

@swift-ci test windows

EXCITING :D

@MaxDesiatov, thanks for working on this, looking forward to using it.
I tried using the official April 22 snapshot for ubi9 x86_64 to cross-compile the swift-syntax macro examples, after patching swift-build to apply your fix from #7493, but I'm seeing errors like this:
> cd swift-syntax/Examples/
> ~/swift-DEVELOPMENT-SNAPSHOT-2024-04-22-a-ubi9/usr/bin/swift build --build-tests --destination ~/swift-android-sdk/android-aarch64.json -Xlinker -rpath -Xlinker \$ORIGIN/swift-trunk-android-aarch64-2024-04-22-24-sdk/usr/lib/swift/android
Building for debugging...
error: Failed opening '/home/fina/swift-syntax/Examples/.build/aarch64-unknown-linux-android28/debug/index/store/v5/units/AddAsyncMacroTests.swift.o-1VZ0WNZLXJYVM': No such file or directory

Swift-foundation also doesn't build with similar errors, but other macro-free packages cross-compile fine. Are you seeing build errors like this when cross-compiling packages that have macros?


This builder requires Dart inputs without syntax errors.

This is old project and I don't want to migrate to null safety and I will do that later.
[SEVERE] json_serializable:json_serializable on lib/app/locator.config.dart:
This builder requires Dart inputs without syntax errors.
However, package:claas/app/locator.config.dart (or an existing part) contains the following errors.
locator.config.dart:32:12: This requires the 'non-nullable' language feature to be enabled.
locator.config.dart:32:48: This requires the 'non-nullable' language feature to be enabled.
I get this issue while running the builder command
`flutter pub run build_runner build --delete-conflicting-outputs
[INFO] Generating build script...
[INFO] Generating build script completed, took 461ms

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[WARNING] Throwing away cached asset graph because the language version of some package(s) changed. This would most commonly happen when updating dependencies or changing your min sdk constraint.
[INFO] Cleaning up outputs from previous builds....
[INFO] Cleaning up outputs from previous builds. completed, took 18ms

[INFO] Generating build script...
[INFO] Generating build script completed, took 113ms

[INFO] Creating build script snapshot......
[INFO] Creating build script snapshot... completed, took 16.5s

[INFO] There was output on stdout while compiling the build script snapshot, run with `--verbose` to see it (you will need to run a `clean` first to re-snapshot).

[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 739ms

[INFO] Checking for unexpected pre-existing outputs....
[INFO] Checking for unexpected pre-existing outputs. completed, took 1ms

[INFO] Running build...
[WARNING] injectable_generator:injectable_builder on lib/core/basics/abstract/api_resource.dart:
Your current `analyzer` version may not fully support your current SDK version.

Please try upgrading to the latest `analyzer` by running `flutter packages upgrade`.

Analyzer language version: 2.14.0
SDK language version: 2.16.0

If you are getting this message and have the latest analyzer please file
an issue at https://github.com/dart-lang/sdk/issues/new with the title
"No published analyzer available for language version 2.16.0".
Please search the issue tracker first and thumbs up and/or subscribe to
existing issues if present to avoid duplicates.

[INFO] 1.2s elapsed, 0/16 actions completed.
[INFO] 2.3s elapsed, 1/17 actions completed.
[INFO] 3.3s elapsed, 2/18 actions completed.
[INFO] 4.3s elapsed, 2/18 actions completed.
[INFO] 5.4s elapsed, 4/20 actions completed.
[INFO] 6.4s elapsed, 6/22 actions completed.
[INFO] 7.5s elapsed, 8/24 actions completed.
[INFO] 16.5s elapsed, 8/24 actions completed.
[INFO] 17.6s elapsed, 12/28 actions completed.
[INFO] 20.6s elapsed, 15/31 actions completed.
[INFO] 21.6s elapsed, 29/45 actions completed.
[INFO] 23.5s elapsed, 44/60 actions completed.
[INFO] 24.6s elapsed, 154/162 actions completed.
[SEVERE] json_serializable:json_serializable on lib/app/locator.config.dart:

This builder requires Dart inputs without syntax errors.
However, package:claas/app/locator.config.dart (or an existing part) contains the following errors.
locator.config.dart:32:12: This requires the 'non-nullable' language feature to be enabled.
locator.config.dart:32:48: This requires the 'non-nullable' language feature to be enabled.

Try fixing the errors and re-running the build.

[INFO] Running build completed, took 25.6s

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 136ms

[SEVERE] Failed after 25.7s
pub finished with exit code 1
`

Flutter Doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.10.5, on Ubuntu 21.04 5.11.0-49-generic, locale en_IN)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/linux#android-setup for more details.
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.69.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

! Doctor found issues in 1 category.

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.2

  # Architecture
  stacked: ^2.0.4
  stacked_services: ^0.9.3

  # Dependency injection
  injectable: ^1.0.5
  get_it: ^7.1.4

  # API calls
  dio: ^4.0.0

  # Local storage
  shared_preferences: ^2.0.5

  # Localizations
  intl: ^0.17.0

  # Bottom navigation
  persistent_bottom_nav_bar: ^4.0.2

  # Firebase
  firebase_crashlytics: ^2.0.0

  #Package Info
  package_info: ^2.0.0

  #Device Info
  device_info: ^2.0.0

  #map
  google_maps_flutter: ^2.0.3

  #google map services
  google_maps_webservice: ^0.0.20-nullsafety.4

  #location
  geolocator: ^7.0.2

  #geocoding
  geocoding: ^2.0.0

  #location updates
  location: ^4.1.1

  #settings
  app_settings: ^4.1.0

  #tutorial
  feature_discovery: ^0.14.0

  #Generate QrCodeImage Info
  qr_flutter: ^4.0.0

  #Urllauncher
  url_launcher: ^6.0.3

  #flutterStatusbarcolor
  flutter_statusbarcolor_ns: ^0.4.0

  #photoZoomView
  photo_view: ^0.13.0

dev_dependencies:
  flutter_test:
    sdk: flutter

  injectable_generator: ^1.0.5
  build_runner: ^1.10.2
#  intl_translation: ^0.17.10+1
  json_serializable: ^3.5.0
#  flutter_launcher_icons: ^0.8.1

dependency_overrides:
  json_annotation: ^3.0.1

I can't see the source code of locator.config.dart, but the compiler claims that it contains uses of null-safety features, without actually enabling null safety. That's what the errors are saying.
If the library does indeed use null-safe features, then you need to enable it null safety. It shouldn't be using new features if. as you say, it's an old project which hasn't been migrated yet. We are not aware of any false positives, though, so do take a look at those lines.
If you want to enable null safety, but not for all of the files, you can:

Update your SDK requirements to >=2.12.0 <3.0.0.
Add a // @dart=2.7 line at the top of every file you don't want to migrate yet.

@balaji101010 we need more information to process this issue. I'll close this in a few days if we don't hear back.


Missing fix for unique totals

The levels function for unique dimensions should return the display key, not the pypika term for it.

Coverage increased (+0.001%) to 97.471% when pulling 1be1056d4e488206320e359d436ac2152ddd0d87 on x8lucas8x:missing-fix-for-unique-totals into a921c67b7a6fcbe4a03842fb29ab28b4c24f59d3 on kayak:master.


MicrophoneActiveSensor Always 'True' / Opt-in to registry keys

After inspecting the registry and all my audio programs, I found that there are two things that are triggering the True condition for my microphone(s):

Creative Audio Service
Voicemeeter Banana

The first just seems to always keep the mic open, I don't know why. It's easy enough to stop that service without affecting anything, so that's fine.
The second however, does not appear in any registry that I could find. I see the entry for it in the registry, but the timestamps are both set in the past (not currently in use). I checked both CURRENT_USER and LOCAL_MACHINE microphone values.
Update: Turns out the registry needed to be refreshed...
If you're not familiar with Voicemeeter Banana, it's a audio routing program that can map various audio inputs to various audio outputs. As soon as I remove all my input devices from the program (aka "unhook" them), the Microphone status goes to False.
My first question is: where is the workstation service finding True? I hunted the registry but found no in-use items. Second question is, can we choose to exclude/include certain keys from being checked? A lot of streamers and other audio professionals usually have apps like this that "keep the mic channels open" so to speak. It'd be great to say "ignore Creative Audio Service and VB Banana keys."
Related to https://github.com/sleevezipper/hass-workstation-service/issues/18 maybe?
Can we have an "opt-IN" method of subscribing to keys to check? Like a whitelist maybe?
Something around here?
https://github.com/sleevezipper/hass-workstation-service/blob/7be25dbcba1a517b0f1ead1fcc1929764e398004/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs#L51

Thank your for creating an issue and doing all that research!
I really like your idea! It will take a couple of hours of work though.
I'll mark this as an enhancement because the sensor is actually doing what it should in this case.

Thank your for creating an issue and doing all that research!
I really like your idea! It will take a couple of hours of work though.
I'll mark this as an enhancement because the sensor is actually doing what it should in this case.

Hi there, in this case, do you have the microphone icon in your taskbar?
The Microphone sensor was working for me just fine until the last Windows 10 Update.
Now, I always have it as True even if the Microphone Icon is not shown in the Taskbar.

Hi there, in this case, do you have the microphone icon in your taskbar?
The Microphone sensor was working for me just fine until the last Windows 10 Update.
Now, I always have it as True even if the Microphone Icon is not shown in the Taskbar.

I can state the same after the last Windows 10 update - my mic now is considered as always "on" - that broke my 2 automations for meetings that I´m on :(

@almostserious @andrebbruno it's working fine on my machine after upgrading so it doesn't happen consistently.
A registry key may be incorrectly set. Try removing the keys under Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone and Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone one by one.

@almostserious -- My Windows privacy mic icon int he system tray was always on while I ran certain programs in the background, which is why I opened this feature request (so that we can "blacklist" certain programs/registry keys). I didn't see any inconsistencies between HASS's sensor and Window's mic sensor -- they always seem to agree with one another.


Can't concat str to bytes

D:\btcposbal2csv>python btcposbal2csv.py H:\Bitcoin\chainstate addresses_with_balance.csv
reading chainstate database
inmem
Traceback (most recent call last):
File "btcposbal2csv.py", line 201, in
for address, sat_val, block_height in add_iter:
File "btcposbal2csv.py", line 98, in in_mem
for add, val, height in parse_ldb(
File "D:\btcposbal2csv\utils.py", line 317, in parse_ldb
o_key = db.get((unhexlify("0e00") + "obfuscate_key"))
TypeError: can't concat str to bytes
Running on Windows 11 64bit
Bitcoin Core 22.0

See: GH-19.

OK - thanks. I will use Python 2.7.

Using Python 2.7.


Python 3.13 Support

Overview

Add wheels and classifiers for Python 3.13.

Update cibuildwheel to use a version with Python 3.13 support.

Add support for setuptools_scm v7 & v8 for Python 3.13 compatibility.
Add Python 3.13 to all relevant tox matrices.

Add annotated and commented out environments where Python 3.13 is not yet supported by the library. Can be uncommented again to test in the next few weeks as more wheels become available, and should eventually be slotted into the existing matrix line.

Update C Extensions to work with Python 3.13, and remove Python 2 macros.
Fix broken tests for agent_unittests in developer mode.
Fix broken metric across all memcache tests expecting too strict a localhost hostname.

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

Project coverage is 81.25%. Comparing base (1807857) to head (b70b59e).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1226      +/-   ##
==========================================
+ Coverage   81.23%   81.25%   +0.01%
==========================================
  Files         197      197
  Lines       21643    21643
  Branches     3782     3782
==========================================
+ Hits        17581    17585       +4
+ Misses       2918     2915       -3
+ Partials     1144     1143       -1

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


Future Italian translation

Will you ever translate the game into Italian?

If you have a large enough team willing to undertake this work, let me know.


[Feature Request] Transparency only on backround

Great stuff. It would greatly increase usability, if there would be an option to only reduce the opacity of the background. So text and icons would stay non-transparent.

duplicate of #1


prefer-times issue

var forms = _.map(arr, function(inv) {
     var f = _.cloneDeep(form);
     f.fields = _.map(f.fields, function(field) {
      field = formFunctions.setValue(field, inv.fields, {uniteAmount: false});
      if (field.id === "PenaltyId") {
       f.formSelector.value = field.value;
      }
      return field;
     });
     return f;
    });

does not see that inv used inside iteratee
I know that code is ugly, but...

This was an actual bug - prefer times didn't account for usages that might be in a deeper _.map.
Fixed and released in v1.8.1.

Thanks


Change layout and behavior of search filters

Combine the type-of-work and name-of-provider filters to be more obvious:
Search from these collections:
 [ ] Photographs: [ ] 500px [ ] Flickr
 [ ] Cultural works: [ ] NYPL [ ] Rijks

Checking either "photos" or "works" auto-checks the individual providers; checking any providers within a category will uncheck the category name.

Done.


Vm has started but nothing to show

sudo /usr/local/vftool/vftool/build/vftool -k vmlinuz -d CentOS-7-aarch64-Minimal-2009.iso -m 1024 -a "console=hvc0"
2021-07-21 10:23:20.047 vftool[80046:6672075] vftool (v0.3 10/12/2020) starting
2021-07-21 10:23:20.048 vftool[80046:6672075] +++ kernel at vmlinuz, initrd at (null), cmdline 'console=hvc0', 1 cpus, 1024MB memory
2021-07-21 10:23:20.048 vftool[80046:6672075] +++ fd 3 connected to /dev/ttys000
2021-07-21 10:23:20.048 vftool[80046:6672075] +++ Waiting for connection to:  /dev/ttys000
2021-07-21 10:24:31.985 vftool[80046:6672075] +++ Attaching disc CentOS-7-aarch64-Minimal-2009.iso
2021-07-21 10:24:31.985 vftool[80046:6672075] +++ Configuration validated.
2021-07-21 10:24:31.985 vftool[80046:6672075] +++ canStart = 1, vm state 0
2021-07-21 10:24:32.295 vftool[80046:6672782] +++ VM started

I had input my password but nothing to show after that

metoo, and I don’t even have a password.


Refactor the loginUI

can u assgin me this so i can refactor the UI  for login and signup.

@T-Rahul-prabhu-38  I am mentor of this repo try to raise issues , after get response from the PA , I will assign it

im new here what/who is PA

@T-Rahul-prabhu-38 Change the UI of Login Go ahead

@T-Rahul-prabhu-38 Hey any update ???

working on it , will push a PR in few mins.

@T-Rahul-prabhu-38 Any update

Closing due to inactive


should SyntaxError when assigning to generator expressions

Similar to #39; not sure if CPython has a whitelist or a blacklist.

(also set comprehensions)

We should also raise a syntax error for:
>>> def f(): return lambda x=(yield): 1
...
  File "<stdin>", line 1
SyntaxError: 'return' with argument inside generator

@kmod well I don't know either, however we can just go for the blacklisting part or now, and it can be transformed to a whitelist, however with the blacklisting way I can at least get to the right error messages
@undingen I think this is actually a different problem, and not related to assignments, we should create an own issue for that IMHO.

Just a thought: I wonder if the evaluation of that, should be evaluated on 'store' contexts, probably worth considering to refactor to that later on.


Support multiple data attributes

:)

oops, sorry, made the PR to the wrong repo, please ignore :)


Update to es6 w/ Babel and fixes #9 #13

Decided to give Babel a try here. If you'd rather keep the plugin using old style I can rip out the fixes too.

do we need to save the output to dist folder?  Also, you have a stray console.log


[CSS Bug]: Card length & width should be expanded dynamically in PDF Multi tool

Installation Method
Docker
The Problem

Version of Stirling-PDF
0.28.3
Last Working Version of Stirling-PDF
No response
Page Where the Problem Occurred
http://localhost:8080/multi-tool
Docker Configuration
No response
Relevant Log Output
No response
Additional Information
No response
Browsers Affected
Chrome
No Duplicate of the Issue

[X] I have verified that there are no existing issues raised related to my problem.

Can you explain more about the issue? What does 'dynamically' signify here? Is it the resizing of the browser window or do you mean that the width of the card must be expanded depending on the size of the file name or anything else? @Vamsi1810

Hmm i Dont think i actually agree with this issue ticket in first place, reducing this size makes it near unusable


Reworked the preview folder structure

Reworked the 'preview' folder structure to make everything a bit more tidy and legible.
Adapted all new preview paths to all data/.json files that were affected by the structure change.
In the process i also managed to find some broken assets, which i fixed.

LGTM


Ensure context includes useful prefixes

Especially xsd, which otherwise might not make it as there are no classes or predicates.
(Thanks to @workergnome)

Done.


issue #5939 fixed

@prateek-webkul
Thanks, this is working fine. Please find the screenshot Here

@prateek-webkul can you please resolve the conflicts with this PR ?

@prateek-webkul can you please resolve the conflicts with this PR ?

Done


updates for Theme Generator, supplementary themes, and related changes

Q
A

content fix?
yes - updated to reflect recent changes in SharePoint UI

New article?
no

Related issues?
no

updated screenshots, add new supplementary themes, color palette, theme generator tool

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/declarative-customization/site-theming/sharepoint-site-theming-json-schema.md
:white_check_mark:Succeeded

docs/declarative-customization/site-theming/sharepoint-site-theming-overview.md
:white_check_mark:Succeeded

docs/declarative-customization/site-theming/sharepoint-site-theming-powershell.md
:white_check_mark:Succeeded

docs/images/theme-defaults.png
:white_check_mark:Succeeded

docs/images/theme-generator-tool.png
:white_check_mark:Succeeded

docs/images/theme-greenselected.png
:white_check_mark:Succeeded

docs/images/theme-hidedefaults.png
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

thx Doug, appreciated.


jled library question

Hello Jan.
Firstly I´ll appreciate your contribution, it is a very useful library!!.
I'm wondering to know if there is any way to start over when use the repeat option.
The idea is to blink the led X times when a button is pressed , then stop, and when the same button is pressed again, blink it X times again
Thanks!!

Currently not - but I plan to include a Reset() method in the next release (scheduled within the next two weeks) allowing exactly this.

Thanks. I'll wait for it.


Feature request: Visual feedback on swiping

Is it possible to implement some visual feedback oob?
It would be nice that when the user starts swiping one can see that there is something happening.
I tried to implement it myself but it is quite clunky.
<section class="absolute grid"
    in:fly={move.in} out:fly={move.out}
    style:transform={sx ? `translateX(${dx}px)` : 'unset'}
    use:swipe={{ timeframe: 500, minSwipeDistance: 50 }}
    on:swipe={(e) => swiped(e.detail)}
    on:swipedown={(e) => sx = e.detail.x}
    on:swipemove={(e) => dx = sx ? e.detail.x - sx : 0}
    on:swipeup={(e) => sx = undefined}>

This is a neat idea, however not easy one to implement. Especially as this should be optional feature. But I'll look into it in future. Thanks for feedback