store successful uploaded program tracks in housekeeping database

It would be useful for program track testing to store the requested track in the housekeeping database. This should be tagged with a program track name say "_". This feature would help with debugging uploaded program track and variations between the actual and commanded.

dict_structure = {
    "measurement": "h2o_feet",
    "tags": {"location": "coyote_creek"},
    "fields": {"water_level": 1.0},
    "time": 1
}

I can provide an HTTP endpoint in the HK system to take the data from the tcs. One option would be the monitor-telegraf service. The format which this service accepts is the following snipplet from e.g. https://github.com/ccatobs/housekeeping/blob/main/data/telegraf-host/etc/telegraf/telegraf.conf:

[[outputs.http]]
url = “http://monitor-telegraf:8070/”
timeout = “5s”
method = “POST”
data_format = “json”
json_timestamp_units = “1ms”
[outputs.http.headers]
Content-Type = “application/json”

The url should be configurable via environment variable.

I've checked in a hacky first draft of this. It'll send the following JSON to the XXX_PROGRAM_TRACK_UPLOAD_URL env var:
{
  "points": [
    {
      "t": "2024-07-17T17:44:03.879056215Z",
      "az": 110,
      "el": 60,
      "vaz": 0.8,
      "vel": 0,
      "azFlag": 1,
      "elFlag": 0
    }
  ]
}

Thanks, I will try to make this work tomorrow in Xanten.

Format must be
{'metrics': [{'fields': 'az': 30, 'el': 30, 'vaz': 0, 'vel': 1, 'azFlag': 0, 'elFlag': 0}, 'name': 'programtrack', 'tags': {}, , 'timestamp':<PHONE_NUMBER>001}, ...]}

You can do the conversion in telegraf, e.g.:
[[inputs.file]]
    precision = "1ns"
    data_format = "xpath_json"
    xpath_native_types = true
    [[inputs.file.xpath]]
        metric_name = "'programtrack'"
        metric_selection = "/points/*"
        timestamp = "t"
        timestamp_format = "rfc3339"
        tag_selection = "../../tags/*"
        field_selection = "*[not(name() = 't')]"

Telegraf is not really involved here, I am just using the http endpoint which the telegraf components in the HK system are using. The monitor-telegraf service which is defined in XXX_PROGRAM_TRACK_UPLOAD_URL actually knows nothing about telegraf, but expects the format given above. So, please do me the favour and change the format of the data you send.
Thanks!

Instead of sending all requested points of the requested track at or before the start of the track, it would be better to send them either during the scan or at the end of the scan. This would give us the chance to handle the case of aborted scans properly. The tcs would either stop sending points to the HK system (if points are sent during the ongoing scan) or filter out requested points with timestamps after the scan is aborted (if points are sent at the end of the scan).


Bundler 1 crashes on gemfiles generated using bundler 2

I think it could be reasonable to warn or even fail with an upgrade message, but the crash one currently gets seems like a no-go.
To reproduce
$ git clone bundler/bundler

$ cd bundler

$ bin/rake install
Could not find 'automatiek' (~> 0.1.0) among 562 total gem(s)
Checked in 'GEM_PATH=/home/deivid/.gem/ruby/2.5.0:/home/deivid/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0', execute `gem env` for more information (Gem::MissingSpecError)
Could not find 'mustache' (= 0.99.6) - did find: [mustache-1.0.5]
Checked in 'GEM_PATH=/home/deivid/.gem/ruby/2.5.0:/home/deivid/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0', execute `gem env` for more information (Gem::MissingSpecVersionError)
Could not find 'rdiscount' (~> 2.2) among 562 total gem(s)
Checked in 'GEM_PATH=/home/deivid/.gem/ruby/2.5.0:/home/deivid/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0', execute `gem env` for more information (Gem::MissingSpecError)
Could not find 'ronn' (~> 0.7.3) among 562 total gem(s)
Checked in 'GEM_PATH=/home/deivid/.gem/ruby/2.5.0:/home/deivid/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0', execute `gem env` for more information (Gem::MissingSpecError)
Install the ronn gem to build the help pages
bundler 2.0.0.dev built to pkg/bundler-2.0.0.dev.gem.
bundler (2.0.0.dev) installed.
install ran for   0.000000   0.004000   1.628000 (  2.361539)

$ bundle --version
2.0.0.dev

$ mkdir test_app

$ cd test_app

$ echo -e "source 'https://rubygems.org'\n\ngem 'byebug'" > Gemfile

$ bundle install
Fetching gem metadata from https://rubygems.org/.......
Resolving dependencies...
Installing byebug 10.0.2 with native extensions
Bundle complete! 1 Gemfile dependency, 2 gems now installed.
Bundled gems are installed into `./.bundle`

$ cat Gemfile.lock
GEM
  remote: https://rubygems.org/
  specs:
    byebug (10.0.2)

PLATFORMS
  ruby
  x86_64-linux

DEPENDENCIES
  byebug

BUNDLED WITH
   2.0.0.dev

$ gem list bundler

*** LOCAL GEMS ***

bundler (2.0.0.dev, default: 1.16.2)
guard-bundler (2.1.0)

$ gem uninstall bundler -v 2.0.0.dev
Remove executables:
	bundler

in addition to the gem? [Yn]  Y
Removing bundler
Successfully uninstalled bundler-2.0.0.dev

$ bundle --version
Traceback (most recent call last):
	2: from /home/deivid/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
	1: from /home/deivid/.rbenv/versions/2.5.1/lib/ruby/site_ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/home/deivid/.rbenv/versions/2.5.1/lib/ruby/site_ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)

I think im missing something here, but you did just uninstalled bundler, and after that you try to do a bundle --version, it's weird that it tries to call the executable.
I tried to reproduce locally (using rbenv also) but it shows this message:
☁  test_app [master] ⚡  bundle --version
rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.3.3
  2.4.0
  2.4.1

☁  test_app [master] ⚡  rbenv --version
rbenv 1.1.1-30-gc8ba27f
☁  test_app [master] ⚡  ruby --version
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

Maybe it's something related with your rbenv, rubygems or ruby version

To reproduce you need bundler 1 installed for the ruby version you're using. It doesn't seem to be your case, no?

In the case of rubygems 2.7.7 that should be the default, so maybe upgrading rubygems reproduces this for you. Otherwise try gem install bundler before running bundle --version and after generating the lockfile with bundler 2.

Oh, i didn't saw you also have 1.16.2 installed, i thougth the dev version where the only one, my bad.
I've just installed 1.16.2 and i could reproduce it:
☁  test_app [master] ⚡  bundle
Traceback (most recent call last):
        2: from /home/wolox/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
        1: from /home/wolox/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/home/wolox/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)

I've check the content of the bin/bundle file, it includes this:
#!/home/wolox/.rbenv/versions/2.5.1/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'bundler' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'
version = ">= 0.a"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
    version = $1
    ARGV.shift
  end
end

if Gem.respond_to?(:activate_bin_path)
load Gem.activate_bin_path('bundler', 'bundle', version)
else
gem "bundler", version
load Gem.bin_path("bundler", "bundle", version)
end

It seems to be related to the version
I tried to change the version to version = ">= 0.0.a", and the error is now:
☁  test_app [master] ⚡  bundle
Traceback (most recent call last):
        2: from /home/wolox/.rbenv/versions/2.5.1/bin/bundle:22:in `<main>'
        1: from /home/wolox/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/home/wolox/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': Could not find 'bundler' (2.0.0.dev) required by your /home/wolox/workspace/bundler/test_app/Gemfile.lock. (Gem::GemNotFoundException)
To update to the lastest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.0.0.dev`

Which makes a lot more sense. Does this solve your issue?

Nice @hdf1986! That's definitely a better error, and definitely a good starting point for a PR. I suspect the bundler team is going to prefer a warning here, but this is definitely an improvement! :+1:

If the fix lies in the version constraint I agree, since the binstub is generated by rubygems.


Integration of Krypton-OutlookGrid into toolkit

I have requested permission of @Cocotteseb to incorporate their project Krypton-OutlookGrid
 into this toolkit for .NET versions 4.6.2, 4.7 & 4.71. Awaiting response.

Merged with extended toolkit

Sorry for not answering before.
I'm OK with the integration (it is under MS-PL license). A link to the original project would be great!
If you modify/add features it could be great to synchronize and vice-versa. (I think on github it does work with pull request right ?)

Hi @Cocotteseb,
Many thanks for replying, I'm going to integrate it into the extended toolkit project. While that project is on a GPL 3.0 license, I have kept the original MS-PL license for the Krypton Outlook grid portion of it. If you wish to follow/contribute towards it, please see Krypton-Toolkit-Suite-Extended-NET-4.7.


Argument error in Faker.format/2

Hi! I have some strange problem with Faker.format when i run it with hashtag string:
iex> Faker.format("#")
** (ArgumentError) argument error
    (faker) lib/faker.ex:35: Faker.format/2

I think problem may be with new OTP 19 version.
I have this environment:
Erlang/OTP 19 [erts-8.1] [source-77fb4f8] [64-bit]
Elixir 1.4.0-dev (f7c699f)

I just tried it with my environment and it returns what is expected.
I am using:
Erlang/OTP 19 [erts-8.0.2]
Elixir 1.3.2 and 1.3.3

Hi @anronin, I've just checked:
mix new ftest
# set deps in mix.exs
  defp deps do
    [{:faker, ">= 0.0.1"}]
  end
mix deps.get
iex -S mix
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (1.4.0-dev) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Faker.format("#")
"9"

Do you still have a problem with it? can you show steps to reproduce?

sorry for late answer, now i think that problem maybe in my phoenix application, because i've just pulled faker from git and everything work just fine. my bad


Fancy: Hoist statics for styled components

This update bumps Fancy to the latest v2.0.5, which hoists non React
statics to the wrapped Styled component.
This is expected behaviour for HOC wrappers, but is missing from (stock)
Emotion.
Certain Components were refactored to better leverage the static hoists.
Reference: React static hoisting:
https://github.com/mridgway/hoist-non-react-statics
It's a thing that libraries like Redux use.

Coverage remained the same at 100.0% when pulling 6266ffd3c1ca163477083428be24008538396f5f on fancy-hoist-statics into 761d99955d6b5f15f4132043ba06bb921aba58ec on master.

Merging this!


Customize Navigation Bar colors

Is it possible to customise the navigation bar header text colour and the dismiss X UIButton colour?

Much of the customisation was droppped when i did the 1.0 rewrite.
But I'm planning to add them again, probably in 1.1
For now you will probably have to use UIApperance to change color on UIBarButtonItem...but that will change the color on both of them

Perhaps I'll do 1.1 tonight if i got the time :)

1.1.0 is now out which gives you access to cancel, album and done buttons. Tweak them so they fit your needs :)
Thanks for submitting an issue!


01_hello_world.pm6 fails to work as expected

When the "Hello World!" button is clicked it becomes inactive and the "Goodbye!" button becomes active.  When the "Goodbye!" button is clicked.  Exploring a bit deeper it appears that $second.clicked.tap() code is never executed, instead the $button.clicked.tap() code is run whenever either button is clicked.
diff --git a/examples/01_hello_world.pm6 b/examples/01_hello_world.pm6
index 8e9493a..548bc54 100644
--- a/examples/01_hello_world.pm6
+++ b/examples/01_hello_world.pm6
@@ -41,7 +41,7 @@ $app.border_width = 20;
 =comment
     Using the sensitive property we can make a button unclickable.

-$second.sensitive = False;
+#$second.sensitive = False;

 =begin comment
@@ -53,13 +53,13 @@ $second.sensitive = False;
     just C<.sensitive = 0>. The C<$second> button can then be activated.
 =end comment

-$button.clicked.tap({ .sensitive = False; $second.sensitive = True });
+$button.clicked.tap({ .sensitive = False; $second.sensitive = True; say "first button tap"; });

 =comment
     Clicking the second button shall C<exit> the application's main loop.

-$second.clicked.tap({ $app.exit; });
+$second.clicked.tap({ say "second button tap"; $app.exit; });

 =comment

With these changes, the "Goodbye!" button is active, yet when clicked I see 'first button tap' output and "Hello World!" button disabled.
I've tried with JVM/Moar backends on Rakudo Star 2014.04 and Rakudo (not Star) 2014.05 with the same results.
I assume this example worked at some point in the past.  Sadly my Perl6 skills are not yet sufficient to dig much further.

Is this still an issue with the latest?

Is this still a bug? I'll close this for now.


Wrong breakindentopt=list:-1 with multibyte or TABs

Problem:  Wrong breakindentopt=list:-1 with multibyte chars or TABs in
text matched by 'formatlistpat'.
Solution: Use the width of the match text.
fixes: #15634

Wait, the indent may also be wrong with TABs

Wait, the indent may also be wrong with TABs

Yes, I can confirm that. That's actually how I finally figured out the cause of the issue.
Thanks for being on this so fast by the way

thanks!


Add utility function to write a compendium

For those cases when you don't need to do a list first and want to write directly to the chosen output "focus".

Added in v5


Added an example for update function in OpenSSL::Digest

This seems to be incorrect, though? update clearly returns self, not a string.


Improve cmake debugging

Adds some additional logging to print more variables which can alter the modules and libraries search paths.

/ok to test

/merge


Super branch

bringing the awesome.
i think there is a problem because i also updated .gitignore to exclude a working folder in my local repo.

Fixed up the script a bit to generate a less cryptic error for cases like this. As noted above, changes can only edit the README file.
Feel free to update the change and push it to github again, the bot should try to merge it automatically after the push.


Added support for fast enter play mode (no domain reload)

This adds (partial) support for turning off domain reloads to the memory cache.
When domain reloads are turned off in the Edit/Project Settings/Editor, ImageLoader.memorySpriteCache will survive exiting and then entering play mode. But sprites created with Sprite.Create (like the sprites created by ImageLoader) in play mode will always get destroyed as you exit play mode, leading to destroyed images surviving in the memory cache.
The fix is to simply clear the memory cache in a method marked with [UnityEditor.InitializeOnEnterPlayMode]. This makes sure that images are cleared properly.
I'm saying that this adds partial support, because I'm not trying to handle what happens with images that are currently in the process of getting loaded on some thread if you start a load, and then quickly exit and enter play mode again. That would probably require some kind of cancellation token setup, and I'm not familiar enough with all the possible caveats, and I think it's a small enough problem that I won't fix it.

It will be added soon in the next update


documentation: warn user about limitation

I have installed the bot to clean some channels. But after trying to move messages, I realized that the bot can only move messages after it has joined the server.
What about adding a warning about that limitation in the bot documentation ?

Will it be possible to remove this limitation in the future ? Or is it "by design" ?

sadly it's a discord limitation:
https://discord.com/developers/docs/resources/channel#bulk-delete-messages

This endpoint will not delete messages older than 2 weeks, and will fail with a 400 BAD REQUEST if any message provided is older than that or if any duplicate message IDs are provided.

i could add it to the readme though

feel free to reopen for further questions


X.509 Additional Parameter

Java version of microsoft/botbuilder-js#2264

@cleemullins @carlosscastro This would just apply the certificate auth, right? Which isn't implemented in Java yet (https://github.com/microsoft/botbuilder-java/issues/119).


fix: Hungergames user null exception

What

Hungergames gives the user a null exception if the user is not signed. Showing AlertDialog to join us

Screenshot

Part of

#3600

Codecov Report

Merging #3745 (8ba9fab) into develop (c281395) will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##           develop    #3745      +/-   ##
===========================================
- Coverage    10.41%   10.41%   -0.01%
===========================================
  Files          272      272
  Lines        13824    13826       +2
===========================================
  Hits          1440     1440
- Misses       12384    12386       +2

Impacted Files
Coverage Δ

...pages/preferences/user_preferences_contribute.dart
58.66% <0.00%> (-0.80%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

But when user is not logged in the app is crashing and giving user null exception. I will drop a screenshot of error

Please create an issue where we can discuss if the user MUST be logged in for Hunger Games, or if it's not mandatory and there's a bug to fix somewhere else.

Question query is not executable without a user.

@prathamsoni11 Again, please create an issue about it first.
And use ProductQuery.getUser() instead of globalUser.

@prathamsoni11 Again, please create an issue about it first.
And use ProductQuery.getUser() instead of globalUser.

ok, for sure.

@prathamsoni11 Again, please create an issue about it first.
And use ProductQuery.getUser() instead of globalUser.

@monsieurtanuki please have a look at new issue #3746

Not relevant anymore, cf. https://github.com/openfoodfacts/openfoodfacts-dart/issues/712


Gridbox should be able to expand cells and align

From Dev Meeting 11/17/22

@jonathanolson: When we need to expand cells and align things, GridBox doesn't support that. So it could be a multi-day issue to get a good long-term solution.

I tested out a bunch of alignment things with expanded GridBox stuff... and I don't know what else there is to do. Perhaps I already did this? Closing.


Create 0000-01-02-scotor4detc.md

Feel free to add a description of what you’ve accomplished so far. As a reminder, you have: created a branch, created a file and made a commit, and opened a pull request


Need admin access

@rkavalap, I need admin access in order to transfer the repo to types/*. Thanks.

@unional I requested a repo transfer to your name. let me see what happens.

@unional, blake added me to types repo. So I was able to transfer it myself.


Add codestyle/linting instruction to the Contribution Guidelines

It is not to easy to prepare properly formed pull request due to lack of the code style. You will only get "failure" from travis and have to sneak through the messages. Then you will find the mysterious check_format script that is only pretending to "fix" the file while in real doing nothing due to the --check flag.
/zha-device-handlers/CONTRIBUTING.md

All code is formatted with black. The check format script just ensures that code is formatted with black. Instructions for editors can be found here: https://github.com/psf/black#editor-integration Feel free to open a PR adding that if not I'll do it when time permits.


Godot 4.2.2 reports GDExtension library not found

Attempts
Thinking that installing the built version would be easier, I downloaded the latest source version (0.10.0-godot4) on AssetLib page before running into the following error:
core/extension/gdextension.cpp:688 - GDExtension library not found:
  Failed loading resource: res://cef_artifacts/gdcef.gdextension. Make sure resources have been imported by opening the project in the editor at least once.

Then, I tried using the built version on your release page but got the same result again. I also edited the .gdextension file by updating the paths that it points at and hoped it would work. Sadly it didn't. Here are that paths that I tested:
.gdextension samples
[configuration]
entry_symbol = "gdcef_library_init"
compatibility_minimum = 4.1

[libraries]
linux.x86_64.debug = "res://cef_artifacts/libgdcef.so"
linux.x86_64.release = "res://cef_artifacts/libgdcef.so"
linux.x86_32.debug = "res://cef_artifacts/libgdcef.so"
linux.x86_32.release = "res://cef_artifacts/libgdcef.so"

windows.x86_64.debug = "res://libgdcef.dll"
windows.x86_64.release = "res://libgdcef.dll"
windows.x86_32.debug = "res://libgdcef.dll"
windows.x86_32.release = "res://libgdcef.dll"

macos.debug = "res://cef_artifacts/Frameworks/Chromium\ Embedded\ Framework.framework/Libraries/libgdcef.dylib"
macos.release = "res://cef_artifacts/Frameworks/Chromium\ Embedded\ Framework.framework/Libraries/libgdcef.dylib"

[configuration]
entry_symbol = "gdcef_library_init"
compatibility_minimum = 4.1

[libraries]
linux.x86_64.debug = "res://cef_artifacts/libgdcef.so"
linux.x86_64.release = "res://cef_artifacts/libgdcef.so"
linux.x86_32.debug = "res://cef_artifacts/libgdcef.so"
linux.x86_32.release = "res://cef_artifacts/libgdcef.so"

windows.x86_64.debug = "res://gdcef/gdcef.dll"
windows.x86_64.release = "res://gdcef/gdcef.dll"
windows.x86_32.debug = "res://gdcef/gdcef.dll"
windows.x86_32.release = "res://gdcef/gdcef.dll"

macos.debug = "res://cef_artifacts/Frameworks/Chromium\ Embedded\ Framework.framework/Libraries/libgdcef.dylib"
macos.release = "res://cef_artifacts/Frameworks/Chromium\ Embedded\ Framework.framework/Libraries/libgdcef.dylib"

[configuration]
entry_symbol = "gdcef_library_init"
compatibility_minimum = 4.1

[libraries]
linux.x86_64.debug = "res://cef_artifacts/libgdcef.so"
linux.x86_64.release = "res://cef_artifacts/libgdcef.so"
linux.x86_32.debug = "res://cef_artifacts/libgdcef.so"
linux.x86_32.release = "res://cef_artifacts/libgdcef.so"

windows.x86_64.debug = "res://addons/gdcef/gdcef.dll"
windows.x86_64.release = "res://addons/gdcef/gdcef.dll"
windows.x86_32.debug = "res://addons/gdcef/gdcef.dll"
windows.x86_32.release = "res://addons/gdcef/gdcef.dll"

macos.debug = "res://cef_artifacts/Frameworks/Chromium\ Embedded\ Framework.framework/Libraries/libgdcef.dylib"
macos.release = "res://cef_artifacts/Frameworks/Chromium\ Embedded\ Framework.framework/Libraries/libgdcef.dylib"

Notes
I have looked at Godot's source code and found out it was supposed to follow a library path after the error which was not my case. Therefore, I suspect if it is an error in the game engine itself.
I tested with version 0.9.0 as well but things did not change much. I am not a CPP programmer, so I cannot deal with this alone.
I appreciate your effort on this project and hope it will work on everyone's machine.
Environment
Godot: 4.2.2
Operating system: Windows 11 21H2 Build 22000.1936
Project renderer: Compatibility

@Endermanbugzjfc just for information, the latest release is 0.11.0 for Godot 4.3 https://github.com/Lecrapouille/gdcef/releases/tag/v0.11.0-godot4 it contains the cef_artifacts. The Godot asset lib will download code source that you have to compile by yourself.
For Windows we have to fix this issue https://github.com/Lecrapouille/gdcef/issues/45 but for exported projects.
Have you tried the demos (gdcef/addons/gdcef/demos/2D/) ? They shall work directly (if you have compiled gdcef by yourself), else copy the cef_artifacts inside each demos. You do not have to modify the .gdextension normally since version 0.10.0.
Afaik I do not have Windows, and virtualbox on Linux cannot help me testing gdcef once compiled, so I cannot help a lot.

Tysm! It operates correctly after updating to Godot 4.3.

@Endermanbugzjfc Thank you the first good news of the day :)


Ghidra Check-In Incomprehensible Error: "File Update not permitted"

Describe the bug
File update not permitted
java.io.IOException: File update not permitted
    at db.buffers.LocalManagedBufferFile.createNewVersion(LocalManagedBufferFile.java:554)
    at ghidra.framework.data.GhidraFileData.quickCheckin(GhidraFileData.java:956)
    at ghidra.framework.data.GhidraFileData.checkin(GhidraFileData.java:1030)
    at ghidra.framework.data.GhidraFile.checkin(GhidraFile.java:438)
    at ghidra.framework.main.datatree.CheckInTask.run(CheckInTask.java:102)
    at ghidra.util.task.Task.monitoredRun(Task.java:124)
    at ghidra.util.task.TaskRunner.lambda$startTaskThread$0(TaskRunner.java:106)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)

---------------------------------------------------
Build Date: 2021-Sep-28 1538 EDT
Ghidra Version: 10.0.4
Java Home: /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
JVM Version: Oracle Corporation 17.0.1
OS: Mac OS X 12.0 aarch64
Workstation: Gua-mbp

To Reproduce
Steps to reproduce the behavior:
I saved a new Ghidra binary change to my Ghidra server several times with admin rights before, now I just try to checkout the same saved binary and make a minor change like a function name change, then I saved this change successfully, after which I select the option to check-in this changed binary file to my Ghidra server, so I enter the change description for this new commit, and all of a sudden the Error During Check-In process described above pops up.
At first thoughts, I expected it to be just maybe an permission error, but the user is already an admin, and I succeeded to update the binary with the same username several times before. Then when looking it up in the source code it's not what you expect, it's "outFile == null", but I have no idea why this happens as I just try to save a file change normally with Ghidra.
The bug is that the error is incomprehensible and not indicating the real problem causing the error.
ManagedBufferFile outFile = destFile.getSaveFile();
if (outFile == null) {
    throw new IOException("File update not permitted");
}

Expected behavior
It should just check-in the new version perfectly as always, or give a better description of the real underlying problem causing the error.
Screenshots
https://imgur.com/4GdN17K
Environment (please complete the following information):

OS: macOS 12

Java Version:
Java version "17.0.1" 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)

Ghidra Version: 10.04

Ghidra Origin: official ghidra-sre.org distro

Could you please examine (or provide) your server-side log file for errors that coincide with this checkin.  The implication is that the server-side buffer file pre-save failed and was unavailable to complete the checkin.  Possibly out of disk space to complete pre-save or server-side disk access permission failure.

After review of your original post it would seem the server process owner when repository files were initially created now differs from the current process owner.  The repository file ownership should match the process owner.  If you change the server process owner you must migrate the file ownership of all repository files managed by the process.  The issue you describe is expected in light of this process owner switch.


[WIndows OS] Datastore not working as of 2.0.5

The Windows OS cannot utilize this data store package as of shared_preferences: 2.0.5.
The error code returned was:
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: FormatException: Unexpected character (at character 1)
...
^

Dupe: https://github.com/google/flutter-desktop-embedding/issues/434


message_forwarding: Make forward message keep original topic by default.

This PR makes forwarded messages keep their original topic in the topic field, as proposed in CZO
Fixes: https://chat.zulip.org/#narrow/channel/101-design/topic/Explaining.20quote-and-reply/near/1993494

Screenshots and screen captures:

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Merged, thanks @grehnen!


fix(build.sh): add required if block end marker

this is untested in production

removing the v2-beta milestone since this isn't critical for the release

we should clear the LGTMs on it as well

cleared

I would expect shellcheck to complain about this. But maybe #54 was merged after this was created?
@arschles could you rebase this so we can see it get linted in Travis CI?

Never mind, I just clicked the re-run button in Travis and shellcheck said:
Unable to find image 'quay.io/deis/go-dev:0.11.0' locally
0.11.0: Pulling from deis/go-dev
Status: Downloaded newer image for quay.io/deis/go-dev:0.11.0
In rootfs/builder/build.sh line 192:
fi
^-- SC1089: Parsing stopped here. Is this keyword correctly matched up?
make: *** [test-style] Error 1

ah, ok. I think I can close this then


LASB-235 - implement search case

This is work in progress for consuming the Search Prosecution Case endpoint in HMCTS Cloud Platform API.
The current code covers the search by prosecutionCaseReference. Further work needs to be done to extend the codebase in order to allow to search the endpoint based in other parameters:

Thanks @archferns and @willmcb for take over this :clap:


Please invite me to the GitHub Community Organization

Name
Cristian Toffanin

Hi Please invite me to the GitHub Community Organization, thanks

Hi, you just need to add an issue with your name
https://github.com/AccessibleForAll/Support/issues/new?assignees=&labels=invite+me+to+the+organisation&template=invitation.yml&title=Please+invite+me+to+the+GitHub+Community+Organization


can only get one entry from a zip or rar

Hi,
I've tried using MoveToNextEntry to enumerate all the entries in a zip or rar with multiple entries, but it only return one entry then ended.
did I do something wrong?
            using (Stream stream = File.OpenRead(archivefile))
           {
                IReader reader = ReaderFactory.Open(stream);
                try
                {
                    while (reader.MoveToNextEntry())
                    {
                        if (!reader.Entry.IsDirectory)
                        {
                            Console.WriteLine(reader.Entry.Key);
                            EntryStream entryStream = reader.OpenEntryStream();
                            DataSetSampleCase.dtSampleCaseFileRow newrow = dsSampleCase.dtSampleCaseFile.NewdtSampleCaseFileRow();
                            newrow.完整文件路径 = archivefile + @"\\" +  reader.Entry.Key;
                            string purefilename = Func.StringOP.PureFileNameFromFull(reader.Entry.Key);
                            newrow.文件 = purefilename;
                            newrow.时间 = File.GetLastWriteTime(archivefile);
                            string Content = IOFunc.ContentByFileName(reader.Entry.Key);
                            newrow.内容 = Content;
                            dsSampleCase.dtSampleCaseFile.AdddtSampleCaseFileRow(newrow);
                        }
                    }
                }
                catch (Exception err)
                {
                    Debug.WriteLine(err.Message);
                }
            }

The tests have a lot of examples.
Try Disposing the entry stream.  You should be putting using blocks on every stream/reader

I'm running into this too. It happens even with using (var entryStream = reader.OpenEntryStream()) to properly dispose it.
using (var zipReader = ReaderFactory.Open(fileStream, new ReaderOptions { Password = privateKey }))
{
    while (zipReader.MoveToNextEntry())
    {
        Console.WriteLine(zipReader.Entry.Key);

        // commenting out the next two lines of code will make the Console.WriteLine above print out ALL entries
        // but leaving them in will make it print only one line.
        using (var entryStream = zipReader.OpenEntryStream())
        using (var streamReader = new StreamReader(entryStream, Encoding.UTF8))
        {
            //...other logic. This block could be empty and still exhibits the issue.
        }
    }
}

Seems to only happen with certain zip files, but unfortunately I'm dealing with data that I can't publish so I can't provide a test case. The affected files I have are password protected. It skips files only when the entry content is accessed via methods like OpenEntryStream() or WriteEntryTo(memStream). If the entry contents is not accessed using those methods, no entries are skipped and the MoveToNextEntry() behavior works perfectly.
Since my zip files were small, I got around this issue with a really dirty and poor performing hack:

Read the zip file once without accessing entry contents, but just adding all entry metadata to a list of IEntry
Recreate the zip reader to read each IEntry's contents, skipping all other entries except the one, matching by IEntry.Key. A fresh zip reader needs to be created for each entry whose contents needs to be read.


Cannot write session

Using (at least) Phoenix 1.3, I cannot get the way to write into the session effectively.
At the moment I'm able to read the Rails session correctly, but nothing I write on the session is finally written in the cookie.
I've just put a test plug to print in console the content opf the session, and everything written in Rails appears, but not the things written in Phoenix. As expected, that avoids also the correct work of CSRF protection (as the key is stored in session).
Any ideas want can be happening?
My config:
  plug Plug.Session,
    store: PlugRailsCookieSessionStore,
    key: "_myapp_session",
    domain: '.acutario.dev',
    secure: true,
    signing_with_salt: true,
    signing_salt: "signing salt",
    encrypt: true,
    encryption_salt: "encryption salt",
    key_iterations: 1000,
    key_length: 64,
    key_digest: :sha,
    serializer: Poison

Thanks!

I have the exact same issue. If and when I find a fix I'll post back ...

@odarriba @johnknott I ran into the same issue and it has to do with how cookies work.
The solution is to set secure to false in your config or remove the key altogether (and rely on the default https://elixirforum.com/t/how-to-instruct-phoenix-to-set-secure-flag-https-only-on-session-cookie/14292/4)
The problem is that when Set-Cookie has the secure flag set to true, the browser will only update the cookie if the app is running on HTTPS. This is what happens with the above config. Since your app is probably not running on HTTPS in development mode, the cookie is not updated.
Rails already sets the secure flag depending on whether force_ssl is true, so Rails will write the cookie in development mode without problems.
I think it might be a good idea to update the README to leave out the secure: true key or at least explain the behaviour..


mounted: does not guarantee that all child components have also been mounted？

What problem does this feature solve?
null
What does the proposed API look like?
null

The documentation describes the mounted hook：Note that mounted does not guarantee that all child components have also been mounted. If you want to wait until the entire view has been rendered, you can use vm.$nextTick inside of mounted。
By the time of each mounted function, the component has executed _render _update. The element has been added to the page (the child component executes the hook first, and the parent component executes it) the entire view has been rendered。why add $nextTick？

Hi, thanks for your interest but Github issues are for bug reports and feature requests only. You can ask questions on the forum, the Discord server or StackOverflow.

If you have an improvement point on vue docs, please check existing issues and PR in vuejs.org repo and open an issue or PR to improve them 🙂


Doesn't stop timer when switching to another tab

Perhaps onblur, the timer should be reset.

The timer reset for me.

@MarkTiedemann hmm, this time, the timer stopped at 9s and continued from 9s when I returned. It's not an easy problem to fix, I had to deal with times and browser states in another project.

Thank you for reporting. Fixed it.

the timer stopped at 9s and continued from 9s when I returned.

@millette When I created the first version of Nothing, the timer wouldn’t reset on interaction; in fact, it was persisted using local storage. The only change I made was to stop the timer when the tab was changed and resume it when it was back. So, that was intentional and not a bug, but I forgot to change it after adding the "reset" feature.
Now, I've changed it so that it will reset the timer when the page loses focus.


pyrealsense2 don't build from source

Required Info

Camera Model
D400

Firmware Version
<IP_ADDRESS>

Operating System & Version
Linux 18.04.6 LTS

Kernel Version (Linux Only)
4.9.253-tegra

Platform
NVIDIA Jetson Nano

SDK Version
2.50.0

Language
python

Segment
embedded

Issue Description
I try to install pyrealsense2 following this guide and I ran into this issue

I have update to the latest cmake version (3.23.2) and the error is still present.
I also try to run the command in the librealsense folder (top folder) without de ../ and the same results occured.

Closed as a duplicate of https://github.com/IntelRealSense/librealsense/issues/10583


RPS in REST API

Since RPS was deprecated, it might be a good idea to remove it in the future (or document that it's deprecated)

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/9654443-rps-in-rest-api?utm_campaign=plugin&utm_content=tracker%2F494307&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F494307&utm_medium=issues&utm_source=github).

We'll do this when we #537


support Jaccard and angular similarity calculations

these are both calculated in sourmash, albeit for FracMinHash sketches.
ref for angular similarity: wikipedia
abundance projection has also been useful over in sourmash, in which the abundances from one set of k-mers are projected onto the (flat) k-mers from another; the specific use case in sourmash has been to support reference genome abundance estimation in metagenomes. we might do something similar here.

@ctb can you point me at some code for the abundance projection stuff?

This is the clearest example I can find quickly - but maybe not clear enough? :)
The idea is you take some set of k-mers, and then "borrow" the abundances for them from another set of k-mers. Pseudocode:
# a, b are two collections of k-mers
isect = a.intersection(b)

a_onto_b = 0 # calculate projected sum
for kmer in isect:
    a_onto_b += b.abund(kmer)

so I guess if I were going to be more precise I would say: the projection here is of the abundances from either a or b onto the intersection of a and b.

So its just the sum of all the counts in b for kmers that occur in a & b?

yep! The linear algebra analogy would be something like projecting a vector into a subspace, I think.


Added Sentence Counter Calculator

Fixes Issue🛠
Closes #1017
Description👨💻
The above calculator will count the number of sentences present in the given text.
Type of change📄

[x] New feature (non-breaking change which adds functionality)

How this has been tested✅

You can write any text or paragraph you want.
Click on the button & it will generate you the number of sentences.

Checklist✅

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Screenshots/GIF📷

okay i will make the changes and will raise another pr


Module not found: Can't resolve 'react-awesome-slider/src/styled/fold-out-animation.scss'

Hey guys.
I have installed properly the AwsomeSlider and it is working fine, but when I try to use with the Fold out animation (or any animation bascailly ) I get the following error: Module not found: Can't resolve 'react-awesome-slider/src/styled/fold-out-animation.scss' . I tested on this code snippet:
import AwesomeSlider from 'react-awesome-slider';
import AwesomeSliderStyles from 'react-awesome-slider/src/styled/fold-out-animation.scss';

function SomeComponent(props) {
 return(
 <AwesomeSlider  cssModule={AwesomeSliderStyles}>
                {Images.map((img, index) => (
                    <div data-src={`${pageUrl}${img}`} key={index} />
                ))}
  </AwesomeSlider>
 );
}

export default SomeComponent

What am I doing wrong?

I solved it in the following way:
import AwesomeSlider from 'react-awesome-slider';
import 'react-awesome-slider/dist/custom-animations/cube-animation.css';

   <AwesomeSlider  animation="cubeAnimation" selected={2}>
                {Images.map((img, index) => (
                    <div data-src={`${pageUrl}${img}`} key={index} />
                ))}


bug in profile module

[x] user can't change the organisation
[x] logout button in profile page not working

bug fixed


Token expiration and failed login when pusing

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
19.6.0
Amplify CLI Version
10.7.0
What operating system are you using?
mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
added a postConfirmation function, auth and API.
Describe the bug
Login via SSO works once. Then when token expires, re-logging in still produces

The provided token has expired.

on push.
Expected behavior
allow push
Reproduction steps

aws sso login --profile
amplify push -y

Project Identifier
9aed4b0c-6455-4265-b267-914d94d54a4d
Log output

# Put your logs below this line

Additional information
No response
Before submitting, please confirm:

[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

Update to include when amplify init is ran, and the existing environment is used, error:
Could not initialize platform for 'dev': The provided token has expired.

Hey @adcanis apologies for the delay here but thank you for raising this! Are you still experiencing this?

@josefaidt this is the same issue as #12174.


Fix hash calcuation in RendezvousHasher

This change fixes the hash calculation logic in RendexvousHasher. @abhishekagarwal87 pointed that RendezvousHashing based JDBC connection balancing produces a skew in the distribution of the connections amongst brokers.
Upon checking further, it was found that the combineOrdered call to generate a composite hash wasn't uniformly distributing the hash value amongst all the brokers. So, the new logic creates the composite hash using the Murmur_128 hasher which leads to a uniform distribution of load. On testing locally with 8 brokers, the old logic could produce as much as 20% skew between the lightest and heaviest broker. After this change, the skew is consistently observed to be < 5%.
The benchmark run also shows improvement in runtime with the new hashing logic.
Before

Benchmark                       (numIds)  Mode  Cnt       Score     Error  Units
RendezvousHasherBenchmark.hash    100000  avgt   30  129676.458 ± 950.211  us/op

After

Benchmark                       (numIds)  Mode  Cnt      Score      Error  Units
RendezvousHasherBenchmark.hash    100000  avgt   30  97226.880 ± 1019.564  us/op

This PR has:

[x] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

Thanks for fixing this, Rohan. can you also add a test so that any change in the future doesn't cause a skew? For this, you will have to hardcode the input connection ids. so you can generate 100 random ids and then use them in test.

Thanks for the review @abhishekagarwal87. I have added a test for verifying distribution in 100 request keys amongst 5 brokers.
While testing, I found that as the number of request keys decrease the skewness increases in the new algorithm as well. I ran some tests with old and new rendezvous hashing algorithm along with consistent hashing. The test includes 8 brokers and computes the max skew for (100, 1000, 10_000) request keys. max skew is calculated as the difference in request between lightest and heaviest broker. Each request key count config is run 1000 times and the result is the maximum skew amongst all the runs.
Please find below the results :

hashing algorithm
max skew with 100 request keys
max skew with 1000 request keys
max skew with 10_000 request keys

rendezvous old
20 (20%)
67 (6.7%)
193 (1.93%)

rendezvous new
34 (34%)
238 (23.8%)
2090 (21%)

consistent hash
22 (22%)
72 (7.2%)
395 (3.95%)

Thanks Rohan for the analysis. Changes LGTM. Once the CI passes, you can merge it yourself :)

Thanks for the review @abhishekagarwal87


converter: Hint at the type of serial console

What this PR does / why we need it:
It's leaving a hint in the API docs about what type of console we are adding
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:
NONE

/hold
Missing make generate

working on it

/remove-lifecycle stale

@xpivarc my builder vm got destroyed, do you have a chance to take over this patch?

/lgtm
/hold cancel


graphdatascience

when i install database it shows not  graphdatascience, and i cannot pip install that
$  sh seed_database.sh
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
ERROR: Could not find a version that satisfies the requirement graphdatascience (from versions: none)
ERROR: No matching distribution found for graphdatascience
WARNING: You are using pip version 20.2.3; however, version 20.3.4 is available.
You should consider upgrading via the '/usr/bin/python2 -m pip install --upgrade pip' command.
Traceback (most recent call last):

# pip install graphdatascience
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
ERROR: Could not find a version that satisfies the requirement graphdatascience (from versions: none)
ERROR: No matching distribution found for graphdatascience
WARNING: You are using pip version 20.2.3; however, version 20.3.4 is available.
You should consider upgrading via the '/usr/bin/python2 -m pip install --upgrade pip' command.

It looks like you are using python 2 still. Try using Python3 by changing the command to pip3 install

Thank you seems port 8501 started
When I ask question I get error
ServiceUnavailable: Couldn't connect to neo4j:7687 (resolved to ()): Failed to establish connection to ResolvedIPv4Address(('<IP_ADDRESS>', 7687)) (reason [Errno 111] Connection refused)

Is Neo4j service running? You can check localhost:7474

Is Neo4j service running? You can check localhost:7474

nope~ how can i do next

The last error means that you have properly populated the database


Add support in cpp client for 1 partitioned topic

Motivation
IN PR #4883, we support 1 partitioned topic producer/consumer in java client. this is for Cpp client support.
Modifications

change cpp client
add unit test

Verifying this change
New added Ut Passed

run cpp tests

retest this please

run cpp tests

run cpp tests
run java8 tests

run cpp tests


[ISSUE #6343] fix(store): fix consumeQueueExtDir not deleted when deleting topic

Make sure set the target branch to develop
What is the purpose of the change
fix #6343
Brief changelog
delete consumeQueueExtDir when deleting topics
Verifying this change
Set enableConsumeQueueExt to true, create a topic then delete it. Check the consume queue ext directory.
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Codecov Report

Merging #6351 (1a90a54) into develop (fac699e) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@              Coverage Diff              @@
##             develop    #6351      +/-   ##
=============================================
+ Coverage      43.01%   43.03%   +0.01%
- Complexity      8892     8903      +11
=============================================
  Files           1103     1103
  Lines          77763    77762       -1
  Branches       10126    10123       -3
=============================================
+ Hits           33453    33468      +15
+ Misses         40118    40102      -16
  Partials        4192     4192

Impacted Files
Coverage Δ

...org/apache/rocketmq/store/DefaultMessageStore.java
46.61% <100.00%> (ø)

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

Good catch


OAS character encoding and operation "path" segment encoding

There seems to be some ambiguity about character encoding in the OAS 3.0.2 specification.

The spec should clarify the set of allowed characters in the operation "path" segment (by referencing the proper RFC)
The spec should clarify how these characters are supposed to be encoded in the spec.

The OAS specifies "YAML version 1.2 is RECOMMENDED" [...]. Therefore, the YAML character encoding is unicode code point. A YAML processor must support the UTF-16 and UTF-8 character encodings, as specified at https://yaml.org/spec/current.html#id2513364
Additionally, the OAS specifies "Keys used in YAML maps MUST be limited to a scalar string, as defined by the YAML Failsafe schema ruleset".
I don't see any other restriction about the allowed set of characters in the operation "path" segment. So IMO, the set of characters should be as specified in https://tools.ietf.org/html/rfc3986 Section 3.3:
  pchar       = unreserved / pct-encoded / sub-delims / ":" / "@"
  pct-encoded = "%" HEXDIG HEXDIG
  unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"
  sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
              / "*" / "+" / "," / ";" / "="

This means the following is a valid path, per RFC 3986:
/store/orderAZa–z09-._~!$&'(abc)*+ , ;=:@%C5%92%C3%AB%F0%9F%8D%87%E2%84%AC:

It's not very clear what the character encoding should be. One way to interpret the spec is that the path segment is written as UTF-8 characters in the OAS spec; the OAS tool converts the characters to percent encoding, and for example the client performs URL encoding of the "path" segment when it serializes the HTTP request.
With this interpretation, the OAS could have the following path, and that path would be percent-encoded by the OAS tool.
/store/orderAZa–z09-._~!$&'(abc)*+ , ;=:@Œë🍇ℬ:

Alternatively, it could be required that the path segment must be written as URL-encoded characters in the OAS spec. At least one tool I know of makes this assumption, though it's not clear if characters encoding was even considered during the implementation. In that interpretation, the path should be written in the OAS spec as follows:
/store/orderAZa–z09-._~!$&'(abc)*+ , ;=:@%C5%92%C3%AB%F0%9F%8D%87%E2%84%AC:

Another possibility is authors can choose whether to escape paths or not, tools are responsible for applying proper escaping. Either way, it would be good to clarify and provide one or two examples.
There is also the potential issue of JSON and YAML character escaping and OAS path templating on top of the URL encoding.
/store/curly-%7B%7D/AZaz-09._~!$&'(abc)*+, ;=:@Œë🍇ℬ/order/{orderId}/.././c///g?c=3&a=1&b=9&c=0#target

I'm going to roll this up under the broader issue #3256 (Formally define 3.x URL Templating behavior).  I've linked to here from there, so I'm closing this issue as we only need one open issue for tracking.


Missing spec for visibilityConfig in AWS CloudWatch metrics page

File: themes/default/content/registry/packages/aws/api-docs/wafv2/webacl/_index.md
I'm reading here: visibilityConfig

This property is required.
Property Map
Defines and enables Amazon CloudWatch metrics and web request sample collection. See visibility_config below for details.

But there is nothing below. I have searched for 'visibility' , 'metric' , and 'sample' and no useful hits on the page.
Clicking the 'Property Map' hyperlink goes nowhere

Here is equivalent terraform config

Thanks

It looks like this may have resolved itself. It looks like there are now specific types defined for these supporting types and the linking is behaving correctly.

going to go ahead and close this out since this seems to be resolved for the specific case called out by this issue


Selective Adam

This is the same as the sparse adam described in the Taming3DGS paper. Right now the non-zero radii gaussians are optimized. Hence the flag visible adam is used in the command line argument. Any other kind of mask can be passed to the same optimizer backend for different behaviour.
This optimizer is compatible with packed=True as well. It gives a speed-up as briefly evaluated in the table below. I tried the bicycle scene till 7000 iterations on 3080Ti. Although, it leads to a different number of gaussians and slightly different evaluation metrics. The speed-up should be higher and more noticeable with higher number of iterations (due to higher number of gaussians).

Adam
PyTorch Sparse Adam + Packed
Visible (Selective) Adam
Visible (Selective) Adam + Packed

Time
3m 16s
3m 16s
2m 28s
2m 37s

Number of Gaussians
2642634
2234936
2325614
2337493

PS: I've created a new optimizer directory similar to strategy directory. I expect different optimizers catering to 3DGS to show up as research progresses. So I think this is a good option.

Help from the community to evaluate the performance and final evaluation metrics for 30K iterations and to test this for multi-GPUs will be very much appreciated. :)

I was able to test the garden scene on a bigger GPU. Here are the results with the default strategy:

Adam
Visible (Selective) Adam

Time
1821s
1452s

Count
5771257
4869387

PSNR
27.343
27.259

SSIM
0.866
0.862

LPIPS
0.076
0.082

The comparison can be unfair here due to different number of gaussians. So I tried the MCMC strategy with 1M gaussian cap and the results for that are:

Adam
Visible (Selective) Adam

Time
1272s
1188s

Count
1M
1M

PSNR
26.97
26.78

SSIM
0.848
0.839

LPIPS
0.113
0.122

But here, I think that the densification calculation is slow which hides the speed-up of selective adam.
Finally, we can see a drop in metrics. I think the main reason for this is that this is a different optimizer and requires different learning rates which I'm avoiding due to extra complexity. From my old experiments on the outdoor scenes of MN360, changing the learning rates led to better quality.

This is cool! Do you want to add a doc string to the SelectiveAdam and maybe cite the Taming GS paper there?

Done!


Remove serverAppSecret which is not required for AKS cluster updates

Remove serverAppSecret which is not required for AKS cluster updates.
Without this, scale up AKS cluster would report error:
containerservice.ManagedClustersClient#CreateOrUpdate: Invalid input: autorest/validation: validation failed: parameter=parameters.ManagedClusterProperties.AadProfile.ServerAppSecret constraint=Null value=(*string)(nil) details: value can not be null; required parameter

Note: Go SDK should be also be updated after this.
cc @weinong @mboersma

Automation for azure-sdk-for-js

Automation for azure-sdk-for-python

Automation for azure-sdk-for-node

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-java

Can one of the admins verify this patch?

Automation for azure-sdk-for-go

@feiskyer, @mboersma, @weinong this's breaking changes. What's the reason to make breaking changes in the stable API?

@feiskyer @mboersma @weinong please, ignore my questions.

@sergey-shandar Thanks


Update user_role_sync.rb

Enabled Remove user portion.  Had unintentionally left it disabled.

Going back to Draft.  Going to make less AMEX specific.


sequencing of updates should follow a make before break model

According to XDS_PROTOCOL: In general, to avoid traffic drop, sequencing of updates should follow a make before break model
That is push in sequence CDS->EDS->LDS->RDS

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: hzxuzhonghu
If they are not already assigned, you can assign the PR to them by writing /assign @hzxuzhonghu in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: rshriram
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS [rshriram]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Update the game over message

Update the game over message so people know how to play again!

Good Luck


[PPP-4660] - Use of Vulnerable Component: Components/jackson-databind:<IP_ADDRESS>

@smmribeiro
@renato-s
@bcostahitachivantara

:x: Build failed in 1m 13s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine,plugins/pur/core

:exclamation: No tests found!
Errors:
Filtered log (click to expand)

script returned exit code 1

:information_source:  This is an automatic message

:x: Build failed in 1m 33s
Build command:
mvn clean verify -B -e -Daudit -amd -pl engine,plugins/pur/core

:exclamation: No tests found!
Errors:
Filtered log (click to expand)

script returned exit code 1

:information_source:  This is an automatic message


Terminal errors when using green in angular project

Green version: 1.0.0-beta.44
Angular version: 15.1.0
Used by:
@use '@sebgroup/chlorophyll/scss';

During build/serve following appears in terminal:

Just to be clear.. they are just warnings and will not really have an impact.. but they should not be apart of the code we import.

Fully aware, it's just annoying

This doesn't seem to be an issue with Green but rather with ng cli or with critters.
A work around would be to configure your angular.json like this:
"configurations": {
  "production": {
    "optimization": {
      "styles": {
        "inlineCritical": false
      }
    }
  }
}

But be aware if this affects performance like time to first paint.


SMS no longer backs up after I changed Gmail password

My texts and calls no longer back up after I changed my Gmail password.   It seems that SMS Backup is no longer synced to Gmail.  What do I do?  This must occur a lot (changed Google password).

Simply re-authorize the app: disconnect and reconnect.

Disconnecting and reconnecting seems to forget all state about what messages were downloaded. I have 21k SMSs redownloading to my Gmail account. Is this the expected behavior?


Adds a Grammar.md file, to contain markup language specification.

Closes #3. The language specification I've written doesn't include any of the more advanced potential features, such as movement lines, theta roles, or possible meta-data marking. I might want to do everything at once, rather than change the parser around a bunch as we reconfigure things, but because it's so simple I'm comfortable incrementally changing the syntax. I'm not sure when we'll settle on a stable syntax, but it shouldn't take that long to get there.

I've actually put a lot of thought into changes for this. I'll commit in an hour or so.

The language, as written, is linear (with the exception of empty nodes, but that wont change the implementation at all), which I think is important. I have essentially 3 major features I haven't addressed, though I have an idea of how they should look.

Movement lines. I'm considering [Z [X this gets moved]a> [Y to here]a< ]
Assigning classes to nodes, to allow for custom CSS. Maybe [X is a node of class].class
Writing extra lines of data (like theta roles / glosses / classes). (There's lots of ways)

2 and 3 could possibly be combined somehow. Maybe all 3. I'm fine pushing these features off, I think.


[Feature] MemoryFileStoreWrite in flink sink allocate segment from flink managed memory

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
Currently MemoryFileStoreWrite allocate memory pool from heap for sink writer. It should allocate segments from MemoryManager for flink sink.
Solution
No response
Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

I am willing to try this ticket, counld you assign it to me

Thanks @zoucao. I considered this issue overall and thought it was a big feature. We should review the memory usage in merge tree and will give a design in PIP. I will create subtasks after that and please feel free to take them

Thanks @zoucao. I considered this issue overall and thought it was a big feature. We should review the memory usage in merge tree and will give a design in PIP. I will create subtasks after that and please feel free to take them

Hi @FangYongs, Thanks for your kind advice, and I am looking forward to your design.

The related PR has been merged and I will close this issue.


🐛 [firebase_auth] MissingPluginException(No implementation found for method listen on channel plugins.flutter.io/firebase_auth/id-token/[DEFAULT])

Bug report

In crashlytics, I get the following error, only on Android devices running Android 10/11, never on iOS:

Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: MissingPluginException(No implementation found for method listen on channel plugins.flutter.io/firebase_auth/id-token/[DEFAULT]). Error thrown Instance of 'WC'.
       at .#0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:154:7)
       at .#1      EventChannel.receiveBroadcastStream.<anonymous closure> (package:flutter/src/services/platform_channel.dart:486:9)

It seems to occur after launching the app. Some devices where this happens: Samsung Galaxy S20, Pixel, Pixel 5, S20 Ultra 5G
Describe the bug
Exception being thrown that makes plugin unable to function
Steps to reproduce
Steps to reproduce the behavior:
Launch the app which uses FirebaseAuth.instance.authStateChanges() and observe eventually this exception
Expected behavior
No exception
Sample project
Can not reliably reproduce this, so hard to do.
Additional context

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.5.3, on macOS 11.6 20G165 darwin-x64, locale en-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] Android Studio (version 2020.3)
[✓] Android Studio (version 2020.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.2)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.2)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.1)
[✓] Connected device (2 available)

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.14.4
Flutter SDK 2.5.3
ourflat 1.4.1+195

dependencies:
- app_settings 4.1.1 [flutter]
- badges 2.0.1 [flutter]
- cached_network_image 3.1.0 [flutter flutter_cache_manager octo_image cached_network_image_platform_interface cached_network_image_web]
- cloud_firestore 2.5.3 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cloud_functions 3.0.4 [cloud_functions_platform_interface cloud_functions_web firebase_core firebase_core_platform_interface flutter]
- connectivity_plus 2.0.2 [flutter meta connectivity_plus_platform_interface connectivity_plus_linux connectivity_plus_macos connectivity_plus_web connectivity_plus_windows]
- countup 0.1.3 [flutter]
- decimal 1.3.0 [rational]
- equatable 2.0.3 [collection meta]
- eraser 2.0.0 [flutter]
- firebase_analytics 8.3.3 [firebase_analytics_platform_interface firebase_analytics_web firebase_core flutter meta]
- firebase_auth 3.1.3 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 1.7.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 2.2.3 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- firebase_dynamic_links 2.0.10 [firebase_core flutter]
- firebase_messaging 10.0.8 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- firebase_performance 0.7.1+1 [firebase_core firebase_core_platform_interface firebase_performance_platform_interface firebase_performance_web flutter]
- firebase_remote_config 0.11.0+1 [firebase_core firebase_core_platform_interface firebase_remote_config_platform_interface flutter]
- firebase_storage 10.0.5 [firebase_core firebase_core_platform_interface firebase_storage_platform_interface firebase_storage_web flutter]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_bloc 7.3.1 [flutter bloc provider]
- flutter_chat_ui 1.0.5 [flutter flutter_chat_types flutter_link_previewer intl path_provider uuid path]
- flutter_facebook_auth 3.5.2 [flutter flutter_facebook_auth_platform_interface flutter_facebook_auth_web]
- flutter_keyboard_visibility 5.1.0 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_web flutter]
- flutter_linkify 5.0.2 [flutter linkify]
- flutter_localizations 0.0.0 [flutter intl characters clock collection meta path typed_data vector_math]
- flutter_native_timezone 2.0.0 [flutter_web_plugins flutter js]
- flutter_page_transition 0.1.6 [flutter]
- flutter_rounded_date_picker 2.0.0 [flutter]
- flutter_svg 0.23.0+1 [flutter meta path_drawing vector_math xml]
- get_it 7.2.0 [async collection]
- google_fonts 2.1.0 [flutter http path_provider crypto]
- google_sign_in 5.1.1 [flutter google_sign_in_platform_interface google_sign_in_web meta]
- image_cropper 1.4.1 [flutter]
- image_picker 0.8.4+2 [flutter flutter_plugin_android_lifecycle image_picker_for_web image_picker_platform_interface]
- in_app_review 2.0.3 [flutter in_app_review_platform_interface]
- keep_keyboard_popup_menu 2.0.5 [flutter flutter_keyboard_visibility]
- memoize 3.0.0
- native_admob_flutter 1.5.0 [flutter]
- package_info_plus 1.3.0 [flutter package_info_plus_platform_interface package_info_plus_linux package_info_plus_macos package_info_plus_windows package_info_plus_web]
- path 1.8.0
- path_provider 2.0.5 [flutter path_provider_linux path_provider_macos path_provider_platform_interface path_provider_windows]
- pref 2.4.0 [flutter logging shared_preferences]
- preload_page_view 0.1.6 [flutter]
- purchases_flutter 3.4.6 [flutter collection]
- receive_sharing_intent 1.4.5 [flutter]
- rxdart 0.27.2
- scrollable_positioned_list 0.2.2 [flutter collection]
- share_plus 3.0.4 [meta mime flutter share_plus_platform_interface share_plus_linux share_plus_macos share_plus_windows share_plus_web]
- sign_in_with_apple 3.2.0 [flutter meta]
- smooth_star_rating 2.0.0 [flutter]
- sticky_headers 0.2.0 [flutter]
- table_calendar 3.0.2 [flutter intl simple_gesture_detector]
- url_launcher 6.0.12 [flutter meta url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- uuid 3.0.5 [crypto]
- version 2.0.0

dev dependencies:
- build_runner 2.1.4 [args async analyzer build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style frontend_server_client glob graphs http_multi_server io js logging meta mime package_config path pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- dart_code_metrics 4.4.0 [analyzer analyzer_plugin ansicolor args collection crypto file glob html meta path source_span yaml]
- flutter_lints 1.0.4 [lints]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]
- integration_test 0.0.0 [flutter flutter_driver flutter_test path vm_service archive async boolean_selector characters charcode clock collection crypto fake_async file matcher meta source_span stack_trace stream_channel string_scanner sync_http term_glyph test_api typed_data vector_math webdriver]
- intl_utils 2.4.0 [analyzer archive args dart_style http intl path petitparser yaml]
- mockito 5.0.16 [analyzer build code_builder collection dart_style matcher meta path source_gen test_api]
- screenshots 2.2.0 [args yaml resource_portable path file archive platform process meta intl tool_mobile]
- test 1.17.10 [analyzer async boolean_selector collection coverage http_multi_server io js node_preamble package_config path pedantic pool shelf shelf_packages_handler shelf_static shelf_web_socket source_span stack_trace stream_channel typed_data web_socket_channel webkit_inspection_protocol yaml test_api test_core]

transitive dependencies:
- _fe_analyzer_shared 26.0.0 [meta]
- analyzer 2.3.0 [_fe_analyzer_shared cli_util collection convert crypto glob meta package_config path pub_semver source_span watcher yaml pedantic]
- analyzer_plugin 0.7.0 [analyzer collection dart_style pub_semver yaml]
- ansicolor 2.0.1
- archive 3.1.2 [crypto path]
- args 2.3.0
- async 2.8.1 [collection meta]
- bloc 7.2.1 [meta]
- boolean_selector 2.1.0 [source_span string_scanner]
- build 2.1.1 [analyzer async convert crypto glob logging meta path]
- build_config 1.0.0 [checked_yaml json_annotation path pubspec_parse yaml]
- build_daemon 3.0.1 [built_collection built_value http_multi_server logging path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 2.0.4 [analyzer async build crypto graphs logging path package_config pool pub_semver stream_transform yaml]
- build_runner_core 7.2.2 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pool timing watcher yaml]
- built_collection 5.1.1
- built_value 8.1.2 [built_collection collection fixnum meta]
- cached_network_image_platform_interface 1.0.0 [flutter flutter_cache_manager]
- cached_network_image_web 1.0.1 [flutter flutter_cache_manager cached_network_image_platform_interface]
- characters 1.1.0
- charcode 1.3.1
- checked_yaml 2.0.1 [json_annotation source_span yaml]
- cli_util 0.3.5 [meta path]
- clock 1.1.0
- cloud_firestore_platform_interface 5.4.2 [collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 2.4.3 [cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins js]
- cloud_functions_platform_interface 5.0.11 [firebase_core flutter meta plugin_platform_interface]
- cloud_functions_web 4.0.13 [cloud_functions_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- code_builder 4.1.0 [built_collection built_value collection matcher meta]
- collection 1.15.0
- connectivity_plus_linux 1.1.0 [flutter connectivity_plus_platform_interface dbus meta nm]
- connectivity_plus_macos 1.2.1 [connectivity_plus_platform_interface flutter]
- connectivity_plus_platform_interface 1.1.0 [flutter meta plugin_platform_interface]
- connectivity_plus_web 1.1.0+1 [connectivity_plus_platform_interface flutter_web_plugins flutter]
- connectivity_plus_windows 1.2.0 [connectivity_plus_platform_interface flutter]
- convert 3.0.1 [typed_data]
- coverage 1.0.3 [args logging package_config path source_maps stack_trace vm_service]
- cross_file 0.3.1+5 [flutter meta]
- crypto 3.0.1 [collection typed_data]
- csslib 0.17.1 [source_span]
- dart_style 2.2.0 [analyzer args path pub_semver source_span]
- dbus 0.5.6 [args ffi meta pedantic xml]
- fake_async 1.2.0 [clock collection]
- ffi 1.1.2
- file 6.1.2 [meta path]
- firebase 9.0.2 [http http_parser js]
- firebase_analytics_platform_interface 2.0.1 [flutter meta]
- firebase_analytics_web 0.3.0+1 [firebase firebase_analytics_platform_interface flutter flutter_web_plugins meta]
- firebase_auth_platform_interface 6.1.1 [firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 3.1.2 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core_platform_interface 4.0.1 [collection flutter meta plugin_platform_interface]
- firebase_core_web 1.1.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_crashlytics_platform_interface 3.1.3 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_platform_interface 3.0.6 [firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 2.0.6 [firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta]
- firebase_performance_platform_interface 0.0.1+4 [firebase_core flutter plugin_platform_interface]
- firebase_performance_web 0.0.1+1 [firebase firebase_performance_platform_interface flutter flutter_web_plugins]
- firebase_remote_config_platform_interface 0.3.0+6 [firebase_core flutter meta plugin_platform_interface]
- firebase_storage_platform_interface 4.0.3 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_storage_web 3.0.3 [async firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http js meta]
- fixnum 1.0.0
- flutter_blurhash 0.6.0 [flutter meta pedantic]
- flutter_cache_manager 3.1.2 [clock collection file flutter http path path_provider pedantic rxdart sqflite uuid]
- flutter_chat_types 2.1.2 [cloud_firestore equatable meta]
- flutter_driver 0.0.0 [file flutter flutter_test fuchsia_remote_debug_protocol path meta vm_service webdriver archive async boolean_selector characters charcode clock collection crypto matcher platform process source_span stack_trace stream_channel string_scanner sync_http term_glyph test_api typed_data vector_math]
- flutter_facebook_auth_platform_interface 2.7.0 [flutter plugin_platform_interface]
- flutter_facebook_auth_web 2.6.0+2 [flutter flutter_web_plugins js flutter_facebook_auth_platform_interface]
- flutter_keyboard_visibility_platform_interface 2.0.0 [flutter meta plugin_platform_interface]
- flutter_keyboard_visibility_web 2.0.0 [flutter_keyboard_visibility_platform_interface flutter_web_plugins flutter]
- flutter_link_previewer 2.0.7 [flutter flutter_chat_types flutter_linkify html http linkify meta url_launcher]
- flutter_plugin_android_lifecycle 2.0.3 [flutter]
- flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
- frontend_server_client 2.1.2 [async path]
- fuchsia_remote_debug_protocol 0.0.0 [process vm_service file meta path platform]
- glob 2.0.2 [async collection file path string_scanner]
- google_sign_in_platform_interface 2.1.0 [flutter meta quiver]
- google_sign_in_web 0.10.0+3 [flutter flutter_web_plugins google_sign_in_platform_interface js meta]
- graphs 2.1.0 [collection]
- html 0.15.0 [csslib source_span]
- http 0.13.4 [async http_parser meta path]
- http_multi_server 3.0.1 [async]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- image_picker_for_web 2.1.3 [flutter flutter_web_plugins image_picker_platform_interface meta]
- image_picker_platform_interface 2.4.1 [flutter http meta plugin_platform_interface cross_file]
- in_app_review_platform_interface 2.0.2 [flutter url_launcher plugin_platform_interface platform]
- intl 0.17.0 [clock path]
- io 1.0.3 [meta path string_scanner]
- js 0.6.3
- json_annotation 4.3.0 [meta]
- linkify 4.1.0
- lints 1.0.1
- logging 1.0.2
- matcher 0.12.10 [stack_trace]
- meta 1.7.0
- mime 1.0.0
- nested 1.0.0 [flutter]
- nm 0.3.0 [dbus]
- node_preamble 2.0.1
- octo_image 1.0.0+1 [flutter flutter_blurhash]
- package_config 2.0.2 [path]
- package_info_plus_linux 1.0.3 [package_info_plus_platform_interface flutter path]
- package_info_plus_macos 1.3.0 [flutter]
- package_info_plus_platform_interface 1.0.2 [flutter meta plugin_platform_interface]
- package_info_plus_web 1.0.4 [flutter flutter_web_plugins http meta package_info_plus_platform_interface]
- package_info_plus_windows 1.0.4 [package_info_plus_platform_interface ffi flutter win32]
- path_drawing 0.5.1+1 [vector_math meta path_parsing flutter]
- path_parsing 0.2.1 [vector_math meta]
- path_provider_linux 2.1.0 [flutter path path_provider_platform_interface xdg_directories]
- path_provider_macos 2.0.2 [flutter]
- path_provider_platform_interface 2.0.1 [flutter meta platform plugin_platform_interface]
- path_provider_windows 2.0.3 [ffi flutter meta path path_provider_platform_interface win32]
- pedantic 1.11.1
- petitparser 4.3.0 [meta]
- platform 3.0.0
- plugin_platform_interface 2.0.2 [meta]
- pool 1.5.0 [async stack_trace]
- process 4.2.3 [file path platform]
- provider 6.0.1 [collection flutter nested]
- pub_cache 0.3.1 [path pub_semver yaml]
- pub_semver 2.1.0 [collection meta]
- pubspec_parse 1.1.0 [checked_yaml collection json_annotation pub_semver yaml]
- quiver 3.0.1+1 [matcher]
- rational 1.2.1
- resource_portable 3.0.0 [typed_data]
- share_plus_linux 2.0.4 [share_plus_platform_interface file flutter meta url_launcher]
- share_plus_macos 2.0.2 [share_plus_platform_interface flutter]
- share_plus_platform_interface 2.0.1 [flutter meta mime plugin_platform_interface]
- share_plus_web 2.0.4 [share_plus_platform_interface url_launcher flutter flutter_web_plugins meta]
- share_plus_windows 2.0.3 [share_plus_platform_interface flutter meta url_launcher]
- shared_preferences 2.0.8 [flutter meta shared_preferences_linux shared_preferences_macos shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- shared_preferences_linux 2.0.2 [file meta flutter path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 2.0.2 [flutter shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.2 [flutter flutter_web_plugins meta shared_preferences_platform_interface]
- shared_preferences_windows 2.0.2 [flutter file meta path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- shelf 1.2.0 [async collection http_parser path stack_trace stream_channel]
- shelf_packages_handler 3.0.0 [path shelf shelf_static]
- shelf_static 1.1.0 [convert http_parser mime path shelf]
- shelf_web_socket 1.0.1 [shelf stream_channel web_socket_channel]
- simple_gesture_detector 0.2.0 [flutter]
- sky_engine 0.0.99
- source_gen 1.1.1 [analyzer async build dart_style glob meta path source_span yaml]
- source_map_stack_trace 2.1.0 [path stack_trace source_maps]
- source_maps 0.10.10 [source_span]
- source_span 1.8.1 [collection path term_glyph]
- sqflite 2.0.0+4 [flutter sqflite_common path]
- sqflite_common 2.0.1+1 [synchronized path meta]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- stream_transform 2.0.0
- string_scanner 1.1.0 [charcode source_span]
- sync_http 0.3.0
- synchronized 3.0.0
- term_glyph 1.2.0
- test_api 0.4.2 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- test_core 0.4.0 [analyzer async args boolean_selector collection coverage frontend_server_client glob io meta package_config path pedantic pool source_map_stack_trace source_maps source_span stack_trace stream_channel vm_service yaml matcher test_api]
- timing 1.0.0 [json_annotation]
- tool_base 2.0.0 [archive file intl platform process pub_cache collection]
- tool_mobile 1.9.5+1 [tool_base]
- typed_data 1.3.0 [collection]
- url_launcher_linux 2.0.2 [flutter]
- url_launcher_macos 2.0.2 [flutter]
- url_launcher_platform_interface 2.0.4 [flutter plugin_platform_interface]
- url_launcher_web 2.0.4 [flutter flutter_web_plugins meta url_launcher_platform_interface]
- url_launcher_windows 2.0.2 [flutter]
- vector_math 2.1.0
- vm_service 7.1.1
- watcher 1.0.1 [async path]
- web_socket_channel 2.1.0 [async crypto stream_channel]
- webdriver 3.0.0 [archive matcher path stack_trace sync_http]
- webkit_inspection_protocol 1.0.0 [logging]
- win32 2.2.9 [ffi]
- xdg_directories 0.2.0 [meta path process]
- xml 5.3.0 [collection meta petitparser]
- yaml 3.1.0 [collection source_span string_scanner]

This might be related: https://github.com/flutter/flutter/issues/37839
Would be great to have proper documentation here for what is required in terms of obfuscation. Thank you!

I experienced a similar issue here. This is how i managed to fix it , which is probably not right way, but got me going. I
changed firebaseAuth.idTokenChanges() to firebaseAuth.authStateChanges() then closed and run the app again and the error was no longer there

I experienced a similar issue here. This is how i managed to fix it , which is probably not right way, but got me going. I changed firebaseAuth.idTokenChanges() to firebaseAuth.authStateChanges() then closed and run the app again and the error was no longer there

Hm, that would be weird if that was really the cause.
By the way, for anyone else reading this: the issue stopped appearing for us when we changed our proguard rules to this:
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
As well as excluding com.firebase.* in proguard-rules.pro
Might not be related, since no way to know if this is causality, but since it does not occur anymore, issue could be closed for us.

Hey @jangruenwaldt, thank you for the feedback 🙏.


Detect single-assignment bindings

Flow should be able to determine that x is never re-assigned. I would be interested to discuss how we might accomplish this in this issue.
var x: ?number = 1;

if (x) {
  setTimeout(() => {
    (x : number) // we can't know
  })
}

Possible solution: on each init_env, store a boolean mutated property with the new scope entry initially set to false. When an assignment happens, flip mutated to true. Then, whenever we need to havoc the env, we could only do so for scope entries where mutated is true.
Is that sound?

Sadly it's not quite that simple... but it's an interesting situation:

Just to restate the background, the reason why we clear refinements going into a closure is that the closure can run anywhere, not just within the scope of the refinement test.

In your example, that's not a problem because the variable is never reassigned, making it a de facto const. So the if the refinement test holds at all, it holds everywhere, not just inside the if.

But the annotation muddies the water: it deliberately widens the type of the initial value, and we want to respect annotations, except within the scope of a refinement test. If we used item 2 to propagate the refinement everywhere, we'd effectively be rendering the annotation meaningless.

Note that if we take the annotation out, there's no need for the refinement.

So I guess the direct answer is that it's easy enough to detect that x is never re-assigned - in fact, an implementation of const would have to do exactly that. And if it were useful, you could do it in a preliminary pass, yielding (not mutated but) const flag which would allow you to make stronger assertions about the variable's type state as you went through the usual set/get/refine/havoc process. But the use-case as given is problematic-slash-unnecessary per the above, I think.

Thanks for putting it so clearly! I think my problem was that I started without specific problem code in mind, but just a principle. When I started playing around with more realistic code, I noticed that it's actually quite difficult to confuse flow w.r.t. refinements and non-constant bindings. Good!
I will note that it's slightly surprising that the type checker would treat the following code snippet differently from the one above (I understand why it does this):
/* @flow */

var x: ?number = 1;

if (x) {
  var y = x;
  setTimeout(() => {
    (y : number) // we can't know
  })
}

That aside, I still think there could be some use for tracking constant bindings. A realistic example comes from a change I tried to make a while ago in #318.
var s = "hello";
var f = () => React.createClass({ propTypes: { s: React.PropTypes.oneOf([s]) } });
s = "oops";
f() // runtime check and static type disagree

If we knew that the s binding were constant, we would be able to translate that into a proptype instead of defaulting to any, as we do now. This is a very specific case, because even a constant binding to an array wouldn't be good enough—we could only accept an array literal of constant bindings.
So, not a great example again, but is it enough to show the usefulness of tracking constant bindings? You mentioned that an implementation of const would have to do that, which mine (#431) does do, but it just errors on a rebinding and I don't try to track bindings which are not declared as const. I would be happy to roll a more general version into that PR.

Aha - the example actually reinforces the point, though, check it out: y is assigned only once, from a (refined to) number rvalue, and there's no widening annotation. So it's guaranteed to always be a number, and thus safe. (We're not doing anything special to recognize it as a single assignment, it's just that the complete set of assignments yields a number type.)
So again, it's the annotation that starts the dominos falling in the previous example: it means that the refinement is required to narrow x back down to number, but that refinement is busted by the fact that the closure can run anywhere.
In the #318 example, I'm not entirely sure what's going on, but it looks to me like it's again a victim of closures running anywhere: we definitely can't be sure whether s is "hello" or "oops" when it runs.
Unless I'm missing something, for me the real takeaway here is the need for const - even if we were to track de facto const vars, the problem with exploiting them is the lack of developer intent (consider e.g. what happens when somebody reassigns what is by all appearances an ordinary var, maybe in a place that's distant from its definition, and starts getting type errors on all the stuff that was using the thing as if it were a bona fide const).
I haven't been following #431 (which, my bad) but I'll take a look now.

So my take-away here is: yes, we can track de facto const vars, but it's
not clear that we should. Your scenario where a code change causes type
errors from an inferred de-facto const becoming non-const does seem
problematic. After considering this, I do agree that, unless I can come up
with more compelling use cases for inferring const, it's probably not worth
trading potentially confusing type errors caused by seemingly unrelated
code changes.
I opened this issue after being convinced by a tweet from @wycats. Yehuda,
any interest in chiming in here?
I'll think a bit more on use cases for inferred const and close this if I
can't find some that would justify the cost of possibly confusing people.
On Tue, Jun 2, 2015 at 7:27 AM, Basil Hosmer<EMAIL_ADDRESS>wrote:

Aha - the example actually reinforces the point, though, check it out: y
is assigned only once, from a (refined to) number rvalue, and there's
no widening annotation. So it's guaranteed to always be a number, and thus
safe. (We're not doing anything special to recognize it as a single
assignment, it's just that the complete set of assignments yields a number
type.)
So again, it's the annotation that starts the dominos falling in the
previous example: it means that the refinement is required to narrow x back
down to number, but that refinement is busted by the fact that the closure
can run anywhere.
In the #318 https://github.com/facebook/flow/pull/318 example, I'm not
entirely sure what's going on, but it looks to me like it's again a victim
of closures running anywhere: we definitely can't be sure whether s is
"hello" or "oops" when it runs.
Unless I'm missing something, for me the real takeaway here is the need
for const - even if we were to track de facto const vars, the problem with
exploiting them is the lack of developer intent (consider e.g. what happens
when somebody reassigns what is by all appearances an ordinary var, maybe
in a place that's distant from its definition, and starts getting type
errors on all the stuff that was using the thing as if it were a bona fide
const).
I haven't been following #431 https://github.com/facebook/flow/pull/431
(which, my bad) but I'll take a look now.
—
Reply to this email directly or view it on GitHub
https://github.com/facebook/flow/issues/482#issuecomment-108023668.

Yeah. Further, though, and sorry to be tiresome: the issue with the first example is specifically that it's problematic to override an annotation with a narrower type which (we can see) holds throughout the variable's lifetime. Without the annotation, one naturally gets the benefit of assignment tracking - per your second example. :)
You can think of it as a precedence ordering, strongest first:

explicit refinement test
type annotation
union of assigned types

The first example has an error because it can't rely on (1), due to closures running anywhere, but would instead need for (3) to be higher precedence than (2). Make sense?

What would the benefits of Flow detecting de-facto const bindings be?

OK, so I've been thinking on this a bit, and I did come up with what I believe is a compelling use case where the benefit outweighs the cost1.
Flow doesn't currently support computed object keys. We could support them today for string literals (e.g., { ["foo"]: "foo" }), but that isn't very interesting/useful. For many string-typed variables, we will have literal information that we could potentially use to construct an object type with a known key (e.g., { [foo]: "foo" } where foo is some string variable), except that the variable might change if the object is constructed in a closure.
This is a very similar use case for React components in #318, but a lot more applicable to every day code.
Now, we could leverage const here, once that lands, and safely use const-annotated variables as computed object keys. However, one of the goals for flow is to understand JavaScript as it is written, and I posit that enough JavaScript will be written with computed object keys for de-facto-const-but-not-const-annotated vars to make this logic worthwhile. This is obviously speculation, so it's up for debate.

The cost here being a scenario where a developer makes a change and sees a resulting type error that is "far away" from the change.

@samwgoldman Looks like it works now. Can you confirm?
https://flow.org/try/#0G4QwTgBAHgXBD8A7ArgWwEYFNIF4IEYBuAKGIEsAzCACigEoIBvYiCAZ0wBcAVM1TAPbJO1agxwA+Ji1Y0oEOCgzYGAelUQA7pggBjEIgDknCAGtEAzTIC+dYtaA

We have the ability to detect effectively-const variables for a while.


Add pre-commit and pre-push git hooks

I saw this https://github.com/facebook/immutable-js/commit/0c12cea7376ace34feb6bfeb41d33f941b630c33 commit and think that this checks should be done also on developer side.
Also this PR should be updated after merge of #1140.

I think this might be too invasive. I find that git hooks can be more burdensome than helpful and what we really want is "pre merge" hooks where travis fills in.

I'm going to close this PR - feel free to open it again if you would like to continue discussion on it

I think this might be too invasive.

Agree. I thought it can be an overkill for a lib after I published PR.
We can keep only pre-commit hook and stale this PR until fix lint and fix format commits start to appear.

what we really want is "pre merge" hooks where travis fills in.

I don't think that I understand what should go there