Tests and proposed fix for BCEL-370

BCEL currently does not support LDC with Constant_Dynamic, this notably happens with class files modified by Jacoco following https://github.com/jacoco/jacoco/pull/845
This causes issues in SpotBugs when it runs after Jacoco has modified the class fiels: https://github.com/spotbugs/spotbugs/issues/2759
Here's a test case illustrating the problem and a proposed fix. The change in LDC.getValue() is most certainly wrong but I'm not sure what to do here, any guidance would be much appreciated.
See: https://issues.apache.org/jira/browse/BCEL-370

Codecov Report
Attention: 4 lines in your changes are missing coverage. Please review.

Comparison is base (20cf556) 64.77% compared to head (01210d1) 64.31%.

Files
Patch %
Lines

...g/apache/bcel/verifier/statics/Pass3aVerifier.java
0.00%
1 Missing and 1 partial :warning:

src/main/java/org/apache/bcel/generic/LDC.java
50.00%
1 Missing :warning:

...el/verifier/structurals/InstConstraintVisitor.java
0.00%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@             Coverage Diff              @@
##             master     #254      +/-   ##
============================================
- Coverage     64.77%   64.31%   -0.46%
+ Complexity     3878     3864      -14
============================================
  Files           364      364
  Lines         15677    15680       +3
  Branches       1947     1941       -6
============================================
- Hits          10154    10084      -70
- Misses         4600     4681      +81
+ Partials        923      915       -8

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

Hello @gtoison
Thank you for your report and PR.
Please see the build failures on Java 11 and up.

@nbauma109
Any thoughts?

The change in StringRepresentation.visitNestHost() seemed necessary because I tested with a sample from the Checkstyle project's build.
I've removed that sample from the test and also the change, hopefully it is better with that new commit.
It's probably a good idea to keep the changes limited to LDC CONSTANT_Dynamic anyway

Thanks for approving the builds. I've made some changes to fix the checkstyle violations
When running the build on my computer I had many many violations about line endings (expected LF but got CRLF) so I missed these violations

@gtoison
Thank you for your updates. We have green builds.
Note that the coverage report thinks there is something missing: https://github.com/apache/commons-bcel/pull/254#issuecomment-1874039866
Now, let's see if @nbauma109, @JuditKnoll, or anyone else has any thoughts.

Hm, what about LDC2_W?

Hum, you're right: I misread and thought it was only for long and double constants but it was also modified for dynamic constants.
Currently LDC2_W.getValue() returns a Number (while LDC.getValue() returns an Object. Updating it would require modifying the return type of the method, so it could be a breaking change for client code using BCEL.
It also remains an open question as to what should be returned by getValue() since the value is computed at runtime.
I'll look into modifying LDC2_W as well, thanks for pointing this out!

@gtoison
Note that I'm OK and would actually prefer splitting out LDC2_W work into a separate PR. I'd also prefer we nail this PR down first, and get it merged. The PR behavior seems better that the current production code, at least it does not blow up 😉
I want to make sure all interested parties are OK with the current PR or if it needs another tweak.

I would also ask @gtoison and others for a full code base scan to see if there are other switch (or cascading if-else) statements that fall through to an error condition that should be/can be addressed for constant_dynamic handling. TY!

Thank you very much for your PR @gtoison!
I looked at the usages of Const.CONSTANT_Integer, and found two functions where Const.CONSTANT_Dynamic is not handled, but I think it should be:

ConstantPoolX.constantToString(),
ConstantPoolGen.addConstant().

Thanks for checking @JuditKnoll
I think I could come up with something sensible for ConstantPoolX.constantToString() but ConstantPoolGen.addConstant() seems outside of the scope of this PR
@garydgregory, shall I add a new line to src/changes/changes.xml?
Regarding the coverage: the updated/uncovered lines are in the logic for rejecting invalid classes, so the case of a valid class is covered, but an invalid case isn't (e.g LDC CONSTANT_Module)

In general, I feel it's best not to edit changes.xml as it could create conflicts with other PRs.

Also note that out test coverage is not great (https://commons.apache.org/proper/commons-bcel/jacoco/index.html), so any help there would be appreciated

For the unit tests I've noticed that Mockito doesn't seem to be on the project's (test) classpath. Is there any objection against adding it?

For the unit tests I've noticed that Mockito doesn't seem to be on the project's (test) classpath. Is there any objection against adding it?

Fine with me.

I've added some tests checking that the verifier rejects LDC with an unsupported constant

Thanks for merging!

Hello @gtoison
Now that this PR is merged, do you plan on another PR soon? If yes, I'll wait to start the release cycle.

I don't plan another PR right now, I think you can start the release.
Thanks!

FYI: You can track the vote thread here: https://lists.apache.org/thread/29vnv2xdr2hkh7j5bmn0f23vz6pd8dfj

When using BCEL 4.8.1RC1 in https://github.com/spotbugs/spotbugs/pull/2807 the issue seems fixed indeed.
I still get an error but that's coming from SpotBugs itself, so it is another problem


Can't generate polyphony_rnn SequenceExamples

Hello,
I am trying to create my own dataset in order to train polyphony_rnn model. I've created NoteSequence with succes, but when I am trying to generate SequenceExample, output file is empty and I get following output:
(music_gen) sebastian@sebastian-ubuntu:~/PycharmProjects/music_gen$ ./polyphony_create_dataset > log.txt
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/sebastian/Python/music_gen/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])
WARNING:tensorflow:From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/music/note_sequence_io.py:60: The name tf.python_io.TFRecordWriter is deprecated. Please use tf.io.TFRecordWriter instead.

WARNING:tensorflow:From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/pipelines/statistics.py:132: The name tf.logging.info is deprecated. Please use tf.compat.v1.logging.info instead.

WARNING:tensorflow:
The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:
  * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md
  * https://github.com/tensorflow/addons
  * https://github.com/tensorflow/io (for I/O related ops)
If you depend on functionality not listed there, please file an issue.

WARNING:tensorflow:From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/models/polyphony_rnn/polyphony_rnn_create_dataset.py:66: The name tf.app.run is deprecated. Please use tf.compat.v1.app.run instead.

WARNING:tensorflow:From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/models/polyphony_rnn/polyphony_rnn_create_dataset.py:49: The name tf.logging.set_verbosity is deprecated. Please use tf.compat.v1.logging.set_verbosity instead.

W1007 14:04:42.498110<PHONE_NUMBER>59648 deprecation_wrapper.py:119] From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/models/polyphony_rnn/polyphony_rnn_create_dataset.py:49: The name tf.logging.set_verbosity is deprecated. Please use tf.compat.v1.logging.set_verbosity instead.

WARNING:tensorflow:From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/pipelines/pipeline.py:355: The name tf.gfile.Exists is deprecated. Please use tf.io.gfile.exists instead.

W1007 14:04:42.498677<PHONE_NUMBER>59648 deprecation_wrapper.py:119] From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/pipelines/pipeline.py:355: The name tf.gfile.Exists is deprecated. Please use tf.io.gfile.exists instead.

WARNING:tensorflow:From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/pipelines/pipeline.py:310: tf_record_iterator (from tensorflow.python.lib.io.tf_record) is deprecated and will be removed in a future version.
Instructions for updating:
Use eager execution and:
`
tf.data.TFRecordDataset(path)`
W1007 14:04:42.502693<PHONE_NUMBER>59648 deprecation.py:323] From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/pipelines/pipeline.py:310: tf_record_iterator (from tensorflow.python.lib.io.tf_record) is deprecated and will be removed in a future version.
Instructions for updating:
Use eager execution and:
`tf.data.TFRecordDataset(path)`
WARNING:tensorflow:From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/pipelines/note_sequence_pipelines.py:174: The name tf.logging.warn is deprecated. Please use tf.compat.v1.logging.warn instead.

W1007 14:04:42.890728<PHONE_NUMBER>59648 deprecation_wrapper.py:119] From /home/sebastian/Python/music_gen/lib/python3.6/site-packages/magenta/pipelines/note_sequence_pipelines.py:174: The name tf.logging.warn is deprecated. Please use tf.compat.v1.logging.warn instead.

WARNING:tensorflow:Key signatures ignored by TranspositionPipeline.
W1007 14:04:42.890894<PHONE_NUMBER>59648 note_sequence_pipelines.py:174] Key signatures ignored by TranspositionPipeline.

# About 100 lines of the same warning.

WARNING:tensorflow:Key signatures ignored by TranspositionPipeline.
W1007 14:04:50.451306<PHONE_NUMBER>59648 note_sequence_pipelines.py:174] Key signatures ignored by TranspositionPipeline.

INFO:tensorflow:

Completed.

I1007 14:17:40.579305<PHONE_NUMBER>56608 pipeline.py:386]

Completed.

INFO:tensorflow:Processed 14 inputs total. Produced 0 outputs.
I1007 14:17:40.579487<PHONE_NUMBER>56608 pipeline.py:388] Processed 14 inputs total. Produced 0 outputs.
INFO:tensorflow:DAGPipeline_PolyExtractor_eval_polyphonic_track_lengths_in_bars:

I1007 14:17:40.579632<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_PolyExtractor_eval_polyphonic_track_lengths_in_bars:

INFO:tensorflow:DAGPipeline_PolyExtractor_eval_polyphonic_tracks_discarded_more_than_1_program: 189
I1007 14:17:40.579679<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_PolyExtractor_eval_polyphonic_tracks_discarded_more_than_1_program: 189
INFO:tensorflow:DAGPipeline_PolyExtractor_eval_polyphonic_tracks_discarded_too_long: 0
I1007 14:17:40.579760<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_PolyExtractor_eval_polyphonic_tracks_discarded_too_long: 0
INFO:tensorflow:DAGPipeline_PolyExtractor_eval_polyphonic_tracks_discarded_too_short: 0
I1007 14:17:40.579850<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_PolyExtractor_eval_polyphonic_tracks_discarded_too_short: 0
INFO:tensorflow:DAGPipeline_PolyExtractor_training_polyphonic_track_lengths_in_bars:

I1007 14:17:40.579917<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_PolyExtractor_training_polyphonic_track_lengths_in_bars:

INFO:tensorflow:DAGPipeline_PolyExtractor_training_polyphonic_tracks_discarded_more_than_1_program: 963
I1007 14:17:40.579987<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_PolyExtractor_training_polyphonic_tracks_discarded_more_than_1_program: 963
INFO:tensorflow:DAGPipeline_PolyExtractor_training_polyphonic_tracks_discarded_too_long: 9
I1007 14:17:40.580026<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_PolyExtractor_training_polyphonic_tracks_discarded_too_long: 9
INFO:tensorflow:DAGPipeline_PolyExtractor_training_polyphonic_tracks_discarded_too_short: 117
I1007 14:17:40.580092<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_PolyExtractor_training_polyphonic_tracks_discarded_too_short: 117
INFO:tensorflow:DAGPipeline_RandomPartition_eval_poly_tracks_count: 1
I1007 14:17:40.580128<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_RandomPartition_eval_poly_tracks_count: 1
INFO:tensorflow:DAGPipeline_RandomPartition_training_poly_tracks_count: 13
I1007 14:17:40.580199<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_RandomPartition_training_poly_tracks_count: 13
INFO:tensorflow:DAGPipeline_TranspositionPipeline_eval_skipped_due_to_range_exceeded: 0
I1007 14:17:40.580262<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_TranspositionPipeline_eval_skipped_due_to_range_exceeded: 0
INFO:tensorflow:DAGPipeline_TranspositionPipeline_eval_transpositions_generated: 189
I1007 14:17:40.580318<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_TranspositionPipeline_eval_transpositions_generated: 189
INFO:tensorflow:DAGPipeline_TranspositionPipeline_training_skipped_due_to_range_exceeded: 0
I1007 14:17:40.580380<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_TranspositionPipeline_training_skipped_due_to_range_exceeded: 0
INFO:tensorflow:DAGPipeline_TranspositionPipeline_training_transpositions_generated: 1089
I1007 14:17:40.580429<PHONE_NUMBER>56608 statistics.py:141] DAGPipeline_TranspositionPipeline_training_transpositions_generated: 1089

Due to "Key signatures ignored by TransportationPipeline" warning, output file is empty. As you can see, 14 files has been processed but 0 output was generated. Tried on few songs and also on Lakh MIDI dataset Link. If any additional information is required, please let me know.
Update:
I've run through entire Lakh dataset with polyphony_rnn_create_dataset, it took some time but after it finished the message has been logged `Processed 16980 inputs total. Produced 5558 outputs.' So only 1/3 of inputs has been processed.

I think the main thing that's causing inputs to be dropped is "tracks_discarded_more_than_1_program". The polyphony_rnn model doesn't support outputting multiple programs (instruments), so the dataset creation setup currently excludes MIDI/NoteSequence inputs with multiple programs.


onboardingConfigurationItem not called for index 0

I'm using your demo code and trying to make the image full screen and send it to the background.
In ViewController -> onboardingConfigurationItem I have remove the current constrains and added new ones for the image to have full size.
Problem is that it is not working for the first (initial screen). But if I change to screen 2 and go back to initial screen then the method is called and the image is full size.
Any idea why this is happening?

+1

+1

+1


export functions as const to use object destructuring

closes #592

Coverage remained the same at 98.838% when pulling 3ac32f8ee27cfb76f24fc6a994f810bb3b421748 on rands0n:master into 3e7747eaab5011b6f190ed2d4c529cd29d045398 on chriso:master.

Coverage remained the same at 98.838% when pulling 620b7a5babed41aa0aafe2740c4aa091da45cd95 on rands0n:master into 3e7747eaab5011b6f190ed2d4c529cd29d045398 on chriso:master.


Text sub-types don't inherit default font-family

Describe the bug
Text.span and Text.p and Text.s do not utilize the default font-family for rimble-ui and fallback to a serif font.
To Reproduce
https://codesandbox.io/embed/988wwq5w0w
Expected behavior
Text should look the same as Text.span/Text.p/Text.s regardless of a ThemeProvider wrapping the component.
Screenshots

Rimble UI Version

0.7.1 (latest)

This is blocking release of https://github.com/ConsenSys/rimble-web3-components/issues/16

Resolved in 0.8.1


Ruby gem install ronn fails on Windows Server 2022

Description
In our Windows CI build job for the Git LFS project, we have a step which installs the ronn Ruby gem (https://github.com/rtomayko/ronn) with gem install ronn.  This succeeds on a Windows Server 2019 Actions runner, but fails on a Windows Server 2022 runner, due to a what seems to be a C library or header problem.  The specific failure is outlined in the "Actual behavior" section below.
Virtual environments affected

[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[ ] macOS 10.15
[ ] macOS 11
[ ] Windows Server 2016
[ ] Windows Server 2019
[X] Windows Server 2022

Image version and build link
Environment: windows-2022
Version: 20220207.1
Failed build: https://github.com/chrisd8088/git-lfs/runs/5236350328?check_suite_focus=true
Is it regression?
This is a regression from Windows Server 2019.
Environment: windows-2019
Version: 20220131.1
Successful build: https://github.com/chrisd8088/git-lfs/runs/5236480511?check_suite_focus=true
Expected behavior
We expect the Ruby gem to install cleanly and successfully, as it does with Windows Server 2019:
▶ Run gem install ronn
  gem install ronn
  shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
Successfully installed mustache-1.1.1
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
Successfully installed rdiscount-<IP_ADDRESS>
Building native extensions. This could take a while...
Successfully installed hpricot-0.8.6
Successfully installed ronn-0.7.3
Parsing documentation for mustache-1.1.1
Installing ri documentation for mustache-1.1.1
Parsing documentation for rdiscount-<IP_ADDRESS>
Installing ri documentation for rdiscount-<IP_ADDRESS>
Parsing documentation for hpricot-0.8.6
Installing ri documentation for hpricot-0.8.6
Parsing documentation for ronn-0.7.3
Installing ri documentation for ronn-0.7.3
Done installing documentation for mustache, rdiscount, hpricot, ronn after 5 seconds
4 gems installed

Actual behavior
The build failure output is as follows; it appears that the key issue may be a failure to build a small C test program used to check the system configuration during the build process.  The result is perhaps a failure to run the test program and check its return value.
▶ Run gem install ronn
ERROR:  Error installing ronn:
	ERROR: Failed to build gem native extension.
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...

    current directory: C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/gems/3.0.0/gems/rdiscount-<IP_ADDRESS>/ext
C:/hostedtoolcache/windows/Ruby/3.0.3/x64/bin/ruby.exe -I C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0 -r ./siteconf20220217-1960-zhwi49.rb extconf.rb
checking for random()... no
checking for srandom()... no
checking for rand()... yes
checking for srand()... yes
checking size of unsigned long... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=C:/hostedtoolcache/windows/Ruby/3.0.3/x64/bin/$(RUBY_BASE_NAME)
	--with-rdiscount-dir
	--without-rdiscount-dir
	--with-rdiscount-include
	--without-rdiscount-include=${rdiscount-dir}/include
	--with-rdiscount-lib
	--without-rdiscount-lib=${rdiscount-dir}/lib
C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:755:in `Integer': can't convert nil into Integer (TypeError)
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:755:in `block in try_constant'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:419:in `popen'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:419:in `block in xpopen'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:331:in `open'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:412:in `xpopen'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:754:in `try_constant'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:1366:in `block in check_sizeof'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:971:in `block in checking_for'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:361:in `block (2 levels) in postpone'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:331:in `open'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:361:in `block in postpone'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:331:in `open'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:357:in `postpone'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:970:in `checking_for'
	from C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/mkmf.rb:1365:in `check_sizeof'
	from extconf.rb:11:in `block in sized_int'
	from extconf.rb:11:in `each'
	from extconf.rb:11:in `find'
	from extconf.rb:11:in `sized_int'
	from extconf.rb:15:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/gems/3.0.0/extensions/x64-mingw32/3.0.0/rdiscount-<IP_ADDRESS>/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/gems/3.0.0/gems/rdiscount-<IP_ADDRESS> for inspection.
Results logged to C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/gems/3.0.0/extensions/x64-mingw32/3.0.0/rdiscount-<IP_ADDRESS>/gem_make.out
Error: Process completed with exit code 1.

Repro steps

An Actions workflow which runs gem install ronn on a Windows Server 2022 runner, e.g.:
name: CI
on: [push, pull_request]

jobs:
  build-windows:
    name: Build on Windows
    runs-on: windows-2022
    steps:
    - run: gem install ronn
      shell: bash

Note that the same workflow but with runs-on: windows-2019 succeeds.

Also note that while our legacy CI job for the Git LFS project first runs the now-deprecated actions/setup-ruby@v1 action, the problem can be seen without that step, as per the reproduction workflow script above.

A few further notes:

The actual build problem appears to stem not from the ronn gem itself but from Ruby's own build tooling, and specifically occurs when building one of ronn's dependencies, the RDiscount Markdown processor gem (https://github.com/davidfstr/rdiscount).

We have experimented with first running the ruby/setup-ruby@v1 action, as recommended, but while this does permit the gem install to succeed, it unfortunately installs a number of other tools like MSYS2 and alters the PATH such that a considerable number of our CI tests fail.

In turn that means that workflow steps with shell: bash don't run C:\Program Files\Git\bin\bash.EXE but C:\msys64\usr\bin\bash.EXE instead, with an environment that looks like:env:
  MSYS2_PATH_TYPE: inherit
  Path: C:\Program Files\MongoDB\Server\5.0\bin;C:\aliyun-cli;C:\vcpkg;C:\Program Files (x86)\NSIS\;C:\tools\zstd;C:\Program Files\Mercurial\;C:\hostedtoolcache\windows\stack\2.7.3\x64;C:\cabal\bin;C:\\ghcup\bin;C:\tools\ghc-9.2.1\bin;C:\Program Files\dotnet;C:\mysql\bin;C:\Program Files\R\R-4.1.2\bin\x64;C:\SeleniumWebDrivers\GeckoDriver;C:\Program Files (x86)\sbt\bin;C:\Program Files (x86)\GitHub CLI;C:\Program Files\Git\bin;C:\Program Files (x86)\pipx_bin;C:\hostedtoolcache\windows\go\1.16.13\x64\bin;C:\hostedtoolcache\windows\Python\3.9.10\x64\Scripts;C:\hostedtoolcache\windows\Python\3.9.10\x64;C:\tools\kotlinc\bin;C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\8.0.322-6\x64\bin;C:\npm\prefix;C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin;C:\ProgramData\kind;C:\Program Files\Microsoft\jdk-<IP_ADDRESS>-hotspot\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\ProgramData\Chocolatey\bin;C:\Program Files\Docker;C:\Program Files\PowerShell\7\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\nodejs\;C:\Program Files\LLVM\bin;C:\Program Files\OpenSSL\bin;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\ProgramData\chocolatey\lib\pulumi\tools\Pulumi\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\CMake\bin;C:\ProgramData\chocolatey\lib\maven\apache-maven-3.8.4\bin;C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code;C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\GitHub CLI\;c:\tools\php;C:\Program Files (x86)\sbt\bin;C:\SeleniumWebDrivers\ChromeDriver\;C:\SeleniumWebDrivers\EdgeDriver\;C:\Program Files\Amazon\AWSCLIV2\;C:\Program Files\Amazon\SessionManagerPlugin\bin\;C:\Program Files\Amazon\AWSSAMCLI\bin\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Users\runneradmin\.dotnet\tools;C:\Users\runneradmin\.cargo\bin;C:\Users\runneradmin\AppData\Local\Microsoft\WindowsApps

As a result of these PATH changes the Git which is found and run by default is C:\Program Files\Git\bin\git.exe instead of C:\Program Files\Git\mingw64\bin\git.exe.  That might be OK for us, as they may even be the same binary.
However, we then need to test the git-lfs.exe binary which our CI jobs compile.  Our CI suite prepends the location of the compiled git-lfs.exe binary to the PATH environment variable, and then runs git lfs, which should invoke the default Git binary, which then looks for a git-lfs binary in the PATH locations and executes it.  That's how Git looks up all of its own individual programs, such as git-commit, git-merge, etc.  This all works normally on other platforms (Linux, macOS) and on Windows Server 2019 runners.
But seemingly as a result of the introduction of MSYS2 by the ruby/setup-ruby@v1 action, when Git looks through the set of PATH locations, it appears to get only the PATH as defined above, not as it has been adjusted by our CI scripts.  This may be due to the way MSYS2 can reset PATH.  Supposedly this behaviour is changed by setting MSYS2_PATH_TYPE to inherit, but that may not be taking effect (see, for instance, msys2/MSYS2-packages#2140).  The consequence is that the default Git LFS binary is run, not the one compiled by our CI job, so of course the test suite then fails.

We don't particularly care if we need to run ruby/setup-ruby@v1 or not to get get install ronn to run to completion, but we do need a working environment afterwards and not one which overwrites PATH in a way that can't be undone by the usual ability to prepend paths, i.e., PATH=/new/path:$PATH.  That breaks all kinds of assumptions throughout our test suite.

Hello @chrisd8088 ,
We will take  a look at it.

@chrisd8088 hello!
the failure happens just because we are having different versions of ruby be default on win19 and win22 (2.5 and 3.0 respectively). setup-ruby indeed helps mitigating this, but given that you can't use it at the moment the most suitable workarond for you would be changing the default $PATH value and put there a ruby version you wish, say, by executing the  same function as we do in your pipeline's runtime.

Thanks for the advice and info, @mikhailkoliada!  That's helped us formulate an alternative approach; I suspect we will stop using ronn altogether and replace it with either Pandoc or Asciidoctor.  It'll be a bit more work on our end but as ronn appears to be unmaintained at this point, I think this is probably the right direction.  Thanks again!


Microsoft 365 Usage Analytics App cannot be created

I tried to follow the 'Initiate the content pack' steps on this page: https://docs.microsoft.com/en-US/office365/admin/usage-analytics/enable-usage-analytics?view=o365-worldwide.
On step 3, after clicking 'Get in now', it displays a "Please hold on while we load a few things..." message, and continues spinning.

@esther-tan-IT - Thank you for submitting feedback.
I think the best way forward is if you can open a service ticket in your tenant so this can get resolved ASAP. Based on outcome, let me know if it is something that can be called out in the docs.
If you don't mind please keep us posted here on the resolution so we can get this information you are discovering back into the docs.


Create citrix-virtualapps-service-master-no-vda.yaml

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This is no longer needed. Addressed by https://github.com/aws-quickstart/quickstart-citrix-virtualapps-service/pull/27. Added a new parameter: CitrixVDAServerSetupFileLocation. The default value for it is empty string which skips the VDA stack creation. To install the VDA stack, you need to provide a public https URL where the VDASetup.exe can be found. (The public URL requirement is to keep the old behavior where the VDA setup was being sourced from a public S3 URL. Open to a PR that enhances the code to source the VDA setup from a private S3 location)


Remove HWID from default key to add VM instance to DUT list

Remove HWID from the list of the default DUT info key to add VM instances (e.g. betty VM) to the DUT list

In this issue https://github.com/google/lium/issues/204, we considered using another key.
However, since I found that the betty VM has the model name and MAC address, it was able to obtain the DUT information by simply removing the HWID from the list of the default DUT info keys.


Entity Timeline

Why
The conceptual data model of geovistory, based on CIDOC-CRM, is event centered: The persistent items (persons, places) are related to each other and to literals describing their attributes through time referenced temporal entities (birth, death, occupations, appellations, localizations, etc.). Thus, the events and their time are very central in the data. This issue is about bringing the time referenced data to a visual form.
The goal is to allow readers to quickly see events in chronological order. For example: The events in the life of a person.
What
Time in data
Each temporal entity can have a time span. Each time span can have 6 time properties in order to narrow down its localization and duration within a temporal reference system (calendar and time).

property
label in diagram

crm:P82 at some time within
At some time within

crm:P81 ongoing throughout
Ongoing throughout

crm:P82a begin of the begin
Earliest possible begin

crm:P81a end of the begin
Begin

crm:P81b begin of the end
End

crm:P82b end of the end
Latest possible end

Time in visualisation
To visualise this kind of data on a timeline, a number of questions has to be answered:
Do we use an Absolute chronology or Relative chronology?
An Absolute chronology is a chronological order which outlines events in terms of their absolute time span. A relative chronology is a chronological order that outlines events relative to other events. It can be used to compare different periods, or to analyze and understand the sequence of events in a specific period.
How to deal with the 6 time span properties?
The visualization of a time span could display all 6 properties in a visually distinguishable way (as on the diagram above), it could reduce the 6 props to 2 (start and end) or to one (point in time).
How to display time spans in a relative chronology?
Assumed we have two simplified time spans A and B with start and end, they can have different relationships:

no overlap: A ends before B starts
overlap: A starts before B, B starts before A ends, A ends before B ends
contains: A starts before B and ends after B
The visualization would either reduce every event to a simple point in time (which is good for short events like a Birth, but bad for longer phases) or it would have to visualize the relationships sketched above.

Decision
After the discussion (see below) we create a time line visualization in the style of a Gantt chart, with an absolute chronology referencing the start and end dates of time spans.

Some Java Script libraries / examples:
Absolute chronology
Time points
This example uses timeline js (in an old version) to display clickable points in time together with a label:
http://srs.symogih.org/correspondences/letters-timeline.html
Time spans with start and end (often referred to as Gantt chart)
This example uses d3 (in an Angular Component) to create a Gantt chart.
https://stackblitz.com/edit/d3-gantt-chart-basic?file=src%2Fapp%2Fapp.component.ts
Mermaid js allows to create Gantt chats (can the elements be clickable?)
example
There are many more libraries on npmjs under a name containing "gantt"
Relative chronology
none found so far

regarding the questions above and the available libraries (especially Charts.js and the linked tutorial videos) I would propose:

we so absolute chronology
we use start and end time per time span (using the algorithm in geov-time-span)

@perrauda what is your opinion?

In view of the elements you've written and the information you've been able to compile, I can only agree with the use of a Gantt chart, with an absolute chronology using the start and end dates.
I agree.

Ok, I updated the spec accordingly, @perrauda.

Rests the technical spec: How should this be implemented?
I propose to use charts.js to create a standalone geov-timeline-gantt component.
input:

data: {entityLabel: string, entityClassLabel: string,  entityUri: string, startDate: string, endDate: string}[]

features:

zooms to temporal extend on init
scroll y when higher than container (to deal with large data)
on each bar, shows ${entityClassLabel}, ${entityLabel}
click on bar opens entityUri in new window

In addition, there is a wrapper component geov-entity-timeline that executes a sparql query and injects the data into geov-timeline-gantt.
In addition, a yasgui plugin for geov-timeline-gantt is developed (as it is done for geov-yasgui-map-circles).

@joschne Sorry, I hadn't seen that comment.
As you indicate, I'm going to develop the webcomponent in the same way as I did for map-circles, because it's really practical.
In fact I've rewritten it as geov-yasgui-timeline, but I can easily change it to geov-timeline-gantt, it's simpler, I'll do it.
So, yes I agree

This query could serve as an example:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xml: <http://www.w3.org/XML/1998/namespace>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX time: <http://www.w3.org/2006/time#>
PREFIX ontome: <https://ontome.net/ontology/>
PREFIX geov: <http://geovistory.org/resource/>

SELECT ?event (MIN(?date) as ?start) (MAX(?date) as ?end) (SAMPLE(?l) as ?label)
WHERE {
  # event is a Ship voyages
  ?event a ontome:c523 .
  # event -> has -> time span
  ?event ontome:p4 ?timespan.
  # time span -> timeprop -> date time description
  ?timespan ontome:p71|ontome:p72|ontome:p150|ontome:p151|ontome:p152|ontome:p153 ?dtd.
  # date time description -> year;month;day
  ?dtd time:year ?y ; time:month ?m  ; time:day ?d .
  FILTER regex(str(?y), '^-') # necessary because of https://github.com/geovistory/toolbox-streams/issues/124
  # parse to xsd:date
  bind(xsd:date(concat(replace(str(?y), "^-", "" ), replace(str(?m), "^-", "" ),replace(str(?d), "^--", "" ))) as ?date)
  # event -> has -> label
  ?event rdfs:label ?l .
}
GROUP BY ?event

Copy it here to get results: https://www.geovistory.org/project/84760/sparql


EnableRetryOnFailure defaults don't cover SQL Azure recommended retry period

The EnableRetryOnFailure method defaults to 5 retries, max delay 30 sec, which the code comments indicate give a ~26sec total retry duration.
The SQL Azure "dealing with transient errors" documentation indicates that transient problems may list up to 1 minute. (https://docs.microsoft.com/en-us/azure/sql-database/sql-database-troubleshoot-common-connection-issues)
Should the default for EnableRetryOnFailure cover this duration?
Additionally, I found this when checking my context config code.  I have EnableRetryOnFailure, but received a load of a connection timeout exceptions with the below text, on SQL Azure, last night at around midnight:
Connection Timeout Expired. The timeout period elapsed during the post-login phase.
The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections.
This failure occurred while attempting to connect to the routing destination.
The duration spent while attempting to connect to the original server was -
[Pre-Login] initialization=24; handshake=47;
[Login] initialization=0; authentication=0;
[Post-Login] complete=9;
The duration spent while attempting to connect to this server was -
[Pre-Login] initialization=10; handshake=32;
[Login] initialization=0; authentication=0;
[Post-Login] complete=28997;
The wait operation timed out

(added some newlines for readability)
Forgive me for rolling two questions into one issue - but does this indicate that a) it retried as a part of opening this connection, but the problem took more than the 5 default retries, b) that EF Core doesn't retry this type of connection-open operation, c) that it should, but I've probably misconfigured something?
Thanks!

@AndriySvyryd Any comments on this?

I think it would be reasonable to bump up the default retry count to 6 to match the current recommendation.
I don't think EF retries this error by default. You could try increasing the timeout in the connection string.

Ok, that's all understandable.
Although... this is the first time I've come across one of these "transient" problems with SQL Azure*, and out-of-the-box, the flag which I assumed was designed for this kind of cloud scenario, didn't cover the right timeout period, or cover the type of error I encountered.
I understand if it's not a part of the plan (though it would be a plus, depending on other priorities).  But maybe it should be possible, maybe documented?  Is there a way I can configure a retry on connection failure?
(* - I can only assume this is a transient error: I wasn't reconfiguring it at the time etc)

@kierenj We do retry on failure during the connection opening, but the exception you got is not considered retryable because it's generated on the client side and you have a different mechanism to set the timeout there.
We try to handle as many transient failures as possible by default, but we don't want to swallow any exceptions that might not be transient.

Increase retries to cover one minute.


samba: build with profiling enabled

Motivation for this change
Add support monitoring with netdata - https://docs.netdata.cloud/collectors/python.d.plugin/samba
Cleanup build configuration and removed unused packages. Checked here - https://wiki.samba.org/index.php/Package_Dependencies_Required_to_Build_Samba
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg test samba

@GrahamcOfBorg test samba

@Izorkin What is the impact on performance? Is this something that can be enabled by default without degrading performance to much?

Small check
max cpu load 8.6 download speed ~110Mb/s
max cpu load 8.5 download speed ~110Mb/s
Is there a correct method to check?

I don't know what the correct methodnto measure this would be, just wanted to check there is not s huge impact.
If you don't see one it's fine with me.

cc @bachp @jtojnar

The diff is hard to read. Could you format the derivation so that there is one dependency per line without any other changes (e.g. using nixpkgs-fmt), and then rebase this PR onto that?

@jtojnar update PR.

@jtojnar checked PR?

@jtojnar don`t need to squashed PR?

No need for squashing. When there are non-trivial changes, it is nice to have them split into multiple commits. Not only is that easier to review but also, it will be easier to figure out why each line was introduced in future debugging. More descriptive commit messages would be nice, thought (git rebase --interactive and change pick to reword).

That's correct?

Fixed
iff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix
index ff647cc0a27..1d6951bb8c1 100644
--- a/pkgs/servers/samba/4.x.nix
+++ b/pkgs/servers/samba/4.x.nix
@@ -2,6 +2,8 @@
 , fetchurl
 , python
 , pkgconfig
+, bison
+, flex
 , perl
 , libxslt
 , docbook_xsl
@@ -58,6 +60,8 @@ stdenv.mkDerivation rec {

   nativeBuildInputs = [
     pkgconfig
+    bison
+    flex
     perl
     perl.pkgs.ParseYapp
     libxslt


[BUG] Swap progress link missing in macOS

Describe the bug
The Swap Progress view is missing on macOS and only visible on iOS. please implement on macOS
-v42

need to try again to reproduce it

Can't reproduce anymore on Thorchain routes


Removed deprecated builder classesvo

Description
Please explain the changes you've made
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Extended the documentation

Why remove the deprecated notice? We plan to delete these classes in 1.5 of this SDK.

closed by #704


Duplicate Issue Still Exists

Description
This is a duplicate of this issue which after the update yesterday still exists.
DBeaver Version
Version <IP_ADDRESS>406231636
Operating System
Windows 11 Enterprise multi-session
Database and driver
No response
Steps to reproduce
No response
Additional context
No response

Thank you for feedback. Indeed, keyword should be blue.


Added new color value types

Coverage increased (+0.06%) to 78.476% when pulling a9baf7a9cda8b391e7a63fd513c60e9f8581b4bc on task/addNewValues into 422a9610f38ffcf139f70ae5db08c9fd486cd41c on develop.


New topic for the textbook

Can someone take a look at PR #47... Is it something we wanna add to qiskit textbook  and what's it missing?

Besides these highlighted texts,  I found it quite well written and easily understandable!

@DaxedLuffy Thanks for your comment, highlighted errors have been corrected. Let me know if you have any other comments.  No, I am not from IBM. Just an enthusiast!

You should just use this image and not include its code as it would not work for obvious reasons for someone using the Jupyter notebook in the local kernel.

That's true @DaxedLuffy. Will do that now

Besides, I think the image is not really necessary

@esobimpe you used your personal API, you don't wanna do that!

@DaxedLuffy but I won't be able to run it on a real quantum computer if i don't do that. I will remove it, but is there a way to run it and still get the plots without the api


Last displayed day outside month range doesn't appear blocked when it should be

I found this issue when trying to customize the day picker for our own project. It can be reproduced by adding a story like this to Storybook:
  .add('blocks weekend days', withInfo()(() => (     <SingleDatePickerWrapper       isDayBlocked={(day) => moment.weekdays(day.weekday()) === 'Sunday' || moment.weekdays(day.weekday()) === 'Saturday'}       autoFocus       enableOutsideDays       firstDayOfWeek={1}       numberOfMonths={1}     />   )))
The numberOfMonths prop is not required to reproduce the issue.
Here is the result:

This is the same in all months. Notice that all Saturdays and Sundays are blocked as expected, including the first one of the outside range, except for the last one displayed.
If I look at the html, I see that the last day doesn't get the CalendarDay__blocked_calendar class and also the aria-label doesn't say "Not available.".
If I click that last day, it doesn't get selected, so to the click event handler it is blocked.
The issue also exists if I make the isDayBlocked function always return true.
The issue does not occur when I leave out firstDayOfWeek={1}.

I found out what the issue is. It is because the getVisibleDays function doesn't take the firstDayOfWeek prop into account.
I've fixed the issue locally, and I'm hoping to get a pull request ready by tomorrow.

Is any work around available for this while still setting firstDayOfWeek prop?


Stop page transition

I have a form component, and when the user fills in a field and tries to navigate to a different route, I'd like to display a prompt that he'll lose unsaved changes.
So in short, I'd like to hook into the route change event, display the prompt there and stop the transition if needed. At the moment I can't see a way to accomplish this.

Closing this because I realized this probably belongs in next.js issues and not here.


Epic: Add configuration options for font rendering things (fallback, line height, ligatures, ...)

[ ] Implement ligature option (#759)
[ ] Implement configurable fallback (#2664)
[x] Implement antialiasing flags (#1298)
[ ] Implement vertical antialiasing flags (#5093)
[ ] Configurable line height / spacing (#3498)
[ ] An option to disable colour font emoji (#956)
[x] Add configuration for font weight (#1751)
[ ] Add configuration for font width / other generic variation (#5828)
[ ] consider grouping font-related configuration into a single object (#6049)

consider (backlog)

[ ] #6678 should we support fractional point sizes?

original content
This is a summary from #714 #455

To properly handle box drawing characters we may need ability to explicitly set line height in pixels (to avoid rounding error). We may also need baseline position settings to avoid clipping.
For the arrow issue, we may need the ability to support specifying a fallback sequence of fonts rather than a master font, pretty like how CSS works.

We may also need some method to allow WT to change how it measure characters in a fallen font?

Option for antialiasing modes — at least for the case that the console's background isn’t transparent.

Should we should move these things into #759 and make that the master issue for font rendering options? @miniksa.

Congrats, this is now the epic for font rendering settings.

I think one more interesting thing is to redefine certain characters' "width", in both rendering and cell allocation. For example, if someone is working frequently with Japanese applications, they may want box-drawing characters to become full-width.

Eagerly awaiting this in general, but perhaps especially for disabling ligatures and changing line heights.

I agree this would be "epic"

Colour vs Monocoloured Emoji's would be a good option to include too

Could this be a good away to handle the Block Drawing characters?  Enable Terminal to override the font characters, so even with increased line spacing, the various shapes and lines will still connect horizontally, vertically, and diagonally.

@mdtauk #5897 is a better place to discuss that.

@mdtauk #5897 is a better place to discuss that.

Sure to discuss the implementation, but I meant would the font section of the settings be the best place to handle allowing an override option?

I suspect the "font fallback" task may become more highly requested when oh-my-posh v3 is released (it's currently in beta). It defaults to using characters that aren't in Cascadia Code, so without font fallback many people will have to switch to one of:

Meslo, as recommended by the oh-my-posh project
Caskaydia Cove, the nerd-font patched version of Cascadia Code

A third alternative is adding the missing characters directly to Cascadia Code, which would sidestep the font fallback. @aaronbell was trying to get approval for that in https://github.com/microsoft/cascadia-code/issues/210#issuecomment-561490170

I'd really like to see the option of handling 1m and 2m attributes as bold/light font weights and/or brighten/diminish intensity. Looking across the landscape of terminal programs for different platforms, bold/intensify is implemented differently, sometimes as font weight, sometimes as intensify, using brblack instead of black for instance, and sometimes both.
With the implementation of 2m/dimming it applies across all terminal colors. Obviously if the terminal color is already floored, like black #000, then it can't go lower, but brblack doesn't render the same as black. With 1m/bold/intensify, it doesn't try to brighten 30m-37m, but instead the range just shifts up to 90m-97m and 90m-97m remain the same. In this case black becomes brblack. This means that while 1m and 2m are somewhat complimentary, they aren't in their current implementations.
Font weight would be a good solution which gives the attributes meaning across the entire range of terminal colors. Likewise an intensity attribute implemented in a similar way to diminish would also give value across the full range. I think maintaining a compatibility mode would be appropriate, but for modern terminals with a palette of more than 16 colors, these changes would benefit the user. If using a Solarized theme for instance, 1;31m wouldn't be expected to be orange, it should be a bold/intensified red. It almost certainly shouldn't shift into different hues as some of the base* colors might with the current implementation, green for instance.

@rbeesley FYI #109 has a much longer and specific discussion of 1m than this thread - it's dedicated to just the "bold text" discussion.
actually, after looking through #6879, the discussions are in:
#109, #5682, #6703 / #6873,  https://github.com/microsoft/terminal/issues/2916#issuecomment-544880423


add localhost & final container creation instructions

Can't request reviewers for some reason. Tagging @ggabernet, @SusiJo , and @jonoave since they also use this.

@SusiJo for the conda_prefix, it is not set anywhere, right? So it is something the user needs to know -> we need some docs, right?

Isn't this usually set when conda is installed?

If you prefer using the /home/centos/.conda/ as prefix we can also add a comment that a user should check beforehand if that prefix is correct with which conda.

For it does not exists on denbi, in addition conda installation and the path that the nevs are installed to does not seem to be the same, but the original docs state that you just need to add the conda envs paths


[Improve Existing Best Practice Guide]: Documentation Organization Ref Architecture

Checked for duplicates
Yes - I've already checked
Best Practice Guide
Documentation
Best Practice Guide Sections
Reference Architectures
Describe the improvement
We need some sample reference architectures for recommending how documentation created for a project should be organized. This involves documentation artifacts like user guides, dev guides, etc., and how they can be organized to make it most efficient for users and developers to find those resources.

I don't have a clear idea of how this might fit with your plans and intentions for the SLIM website's content, but I wanted to share this documentation framework that I really like:
https://diataxis.fr/

@Scotchester - I really like the link you shared. It takes a really high-level structural view of the most important components of good documentation. Thank you for the excellent suggestion!
I need to read that link in a bit more in depth, but do you have any suggestions to the current recommended documentation hierarchy based on your reading / understanding you'd like to share?

@riverma Sure thing!
I think the Diátaxis framework is most geared toward the developer docs portion of the recommendation in #30. The user docs I would probably suggest keeping entirely separate, but this certainly would depend on the nature of the software and the expectations of its users.
Looking just at the proposed outline of developer docs, here's how I see them correlating with Diátaxis. (For simplicity, I have collapsed the sections for multiple systems into one.)

Architecture – Explanation
Features – N/A? More introductory/marketing material than "docs"
Quick Start – How-to guides
Docs

User Guide – Tutorials

Setup
Running
Usage Examples

Developer Guide – How-to guides

Requirements
Setup
Building
Running
Testing

Admin Guide – Not entirely sure what is meant by this, but it feels like Reference

Requirements
Installing
Configuring
Troubleshooting

FAQ – FAQs in documentation feel like a bit of an anti-pattern, in my opinion. I would try to make whatever information one wanted to put here more discoverable in other places.
Getting Involved – Explanation (if design decisions are discussed) and/or Reference

Prerequisites
Development Process
Ways to Contribute

FWIW, my domain is web development and software that enables that, so that's the lens with which I look at this. While I'm sure there is some overlap, I feel like I would need a primer on the kind of software projects you're primarily concerned with in order to suggest any specific changes to the proposed hierarchy.

@Scotchester - very much appreciate your insights!
Some thoughts:

Thinking "Admin Guide" would help guide the install and administer phase from a systems admin perspective. From the web-dev perspective, does that just fall under "Developer Docs" or "User Docs"?
Based on your suggestion - thinking it'd be good to account for the nature of projects Ex: web-projects, backend projects, etc. In fact, we've got another thread discussing how to structure Operational documentation (especially for large-scale data systems) - which is its own beast. One of the goals of this ticket and the associated PR is to recommend a doc structure hierarchy that can be consistently used across member projects for ease of navigation. Maybe even auto-generate a folder hierarchy with template files if people find that useful down-the-line. Creating categories of software projects might be wise in this light.

I think as an initial next step, I may update the PR to make room for (at minimum) three types of doc hierarchies: data-systems / backend docs, front end docs, operational docs. What do you think? Would you be open to collaborating on the front-end docs hierarchy template (or any others)? :).

Thinking "Admin Guide" would help guide the install and administer phase from a systems admin perspective. From the web-dev perspective, does that just fall under "Developer Docs" or "User Docs"?

Gotcha. In web-dev world, I would consider that part of User Docs.

Based on your suggestion - thinking it'd be good to account for the nature of projects Ex: web-projects, backend projects, etc. In fact, we've got another thread discussing how to structure Operational documentation (especially for large-scale data systems) - which is its own beast. One of the goals of this ticket and the associated PR is to recommend a doc structure hierarchy that can be consistently used across member projects for ease of navigation. Maybe even auto-generate a folder hierarchy with template files if people find that useful down-the-line. Creating categories of software projects might be wise in this light.

I think as an initial next step, I may update the PR to make room for (at minimum) three types of doc hierarchies: data-systems / backend docs, front end docs, operational docs. What do you think? Would you be open to collaborating on the front-end docs hierarchy template (or any others)? :).

Yeah, I think that largely makes sense, and I would be glad to collaborate on the suggested front-end hierarchy (though any serious time spent on that probably needs to wait until late October, given the work I have lined up for end of FY and helping our team present at DjangoCon).
One other thing I would note is that the terms "back end" and "front end" can mean different things to different people, and both are usually needed in the web world – sometimes in one repository, sometimes in separate repositories. I'm not 100% sure I am clear on what you are meaning when you use those terms above, but as an example, the JPL external website has www-backend, www-frontend, and www-terraform repositories. There is definitely room for improvement, but each of these currently has their own documentation in different forms, and all three are necessary to end up with the JPL external website running in AWS as you see it on https://www.jpl.nasa.gov/.

Hi @Scotchester - thanks for the reply. Great to see you're interested! That'll help me set up some of the structure to have a proposed front-end docs hierarchy that future front-end projects can use (including your own or your teammates). I think @tariqksoliman might even be interested in this, as he works heavily in UI.
To answer your question - backend to me means strictly non-user-interface code, akin to a service that can be invoked programmatically. Front end to me is code related to direct user interaction. It's fuzzy. Maybe we should use better names in our own differentiation.
I'll see what sort of structure / template guide I can whip up that can then be filled in later more for the various types of documentation.

+1'd by @nttoole


DocumentTemplateMessageRequest

I didn't find the implementation for sending pdf documents, is this feature implemented?

Hi @claudineibr you will need to send the pdf documents using a media id or an external link. For using media Id, you will need to upload pdf document using uploadMedia function which will return the media Id for your pdf document.
I'm yet to test sending DocumentTemplateMessage using media Id. The implementation of the document template message was done to support pdf or any document file that is hosted by an external link that WhatsApp can use to retrieve the document file.
The approach to sending DocumentTemplateMessageRequest may be similar to ImageTemplateMessageRequest but it will depend on the number of parameters you have defined for your template message.
DocumentTemplateMessageRequest imageTemplateMessage = new DocumentTemplateMessageRequest();
                documentTemplateMessage.To = sendTemplateMessageViewModel.RecipientPhoneNumber;
                documentTemplateMessage.Template = new DocumentMessageTemplate();
                documentTemplateMessage.Template.Name = sendTemplateMessageViewModel.TemplateName;
                documentTemplateMessage.Template.Language = new DocumentMessageLanguage();
                documentTemplateMessage.Template.Language.Code = LanguageCode.English_US;
                documentTemplateMessage.Template.Components = new List<DocumentMessageComponent>()
                {
                    new DocumentMessageComponentt()
                    {
                        Type = "header",
                        Parameters = new List<DocumentMessageParameter>()
                        {
                            new DocumentMessageParameter()
                            {
                                Type = "document",
                                Document = new Document()
                                {
                                    Link = "<EXTERNAL_LINK_DOCUMENT>" // Link point where your document can be downloaded or retrieved by WhatsApp
                                }
                            }
                        },
                    },
                    new DocumentMessageComponent()
                    {
                        Type = "body",
                        Parameters = new List<DocumentMessageParameter>()
                        {
                            new DocumentMessageParameter()
                            {
                                Type = "text",
                                Text = "Order Invoice"
                            },
                        }
                    }
                }

Let me know if sending a document template message using an external link solves your issue.

Sorry, maybe my message wasn't clear, I did exactly like the example you gave, but the problem is that I couldn't find the interface to send DocumentTemplate like there is for image. see image

I can see the method is missing in the interface. I will add the implementation of SendDocumentAttachmentTemplateMessageAsync method today.

Thank you!

I have implemented the method. You can test it and let me know if it works on your side.

I added an extra property for filename and caption for the document template message request. I guess specifying on the caption or filename should work,

I added an extra property for filename and caption for the document template message request. I guess specifying on the caption or filename should work,

ok, as soon as it's available I'll test and report the result. Thanks

Alright. The package update should be available as of now.

Alright. The package update should be available as of now.

When you pass the caption parameter, an error is thrown

Passing filename works, I think the caption can be removed

Thanks for the update. I think I will leave the caption property. They may add caption support for document template messages.


Can cookies have "=" in the value?

I converted my cookie value to base64 and stored it.  However, when I tried to read it back, I get "Invalid cookie format" because this package is splitting the string on the equals sign.  Base64 uses equals signs causing the error.  Are cookies allowed to have equals signs inside the value?

Hello @scastria,
Equals signs are treated as separators in cookies, and thus can not be used in the value.
You could try encoding your value before setting it in the cookie, and decoding it when reading it back.
Also, equals signs are just for padding in base64, so you could probably just trim those, too. It should not affect the actual value.


Camera Plugin Record Video orientation issue

I have an application that uses the camera and video_player for taking pictures/record videos and upload to firebase storage. Then, I download from firebase and reproduce by using Image.file or VideoPlayer, depending on the file. My application have screen orientation locked by the setting SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]). But, I have some issues:

Recording a video from Iphone in portrait or landscape, generates a mp4 file that follows the lock orientation config, playing in Android and Iphone correctly.
Recording a video from Android in portrait mode, generates a mp4 file that plays in the correctly orientation on Android. But, rotates 90 CCW on Iphone.
Recording a video from Android in landscape mode, generates a mp4 file that plays 90 CCW in both Android and Iphone.

I've researched in many issues of GitHub and many of this relate some EXIF issue. Then, I use this site https://www.get-metadata.com to extract the metadata of each mp4 file and I've gotten this results:

Video from Iphone in portrait:

Video from Iphone in landscape:

Video from Android portrait:

Video from Android landscape:

I noticed that Iphone's video files contains Rotation 0 and the same width and height (height > width) in both modes. In Android's video files, landscape mode contains Rotation 0 but width and height different of the portrait mode being width > height. In portrait mode the result contains Rotation 90. This mode is the only one that have TAGS and SIDE DATA LIST sessions having Rotate 90 and Rotation -90, respectively.
Taking pictures with the camera and showing with Image.file using both devices, in portrait mode, the picture always comes with the correct orientation. However, in landscape mode the picture comes rotated in 90 CCW.
This is my flutter doctor -v
[✓] Flutter (Channel beta, v1.0.0, on Mac OS X 10.13.6 17G4015, locale pt-US)
    • Flutter version 1.0.0 at /Users/workeduc/flutter
    • Framework revision 5391447fae (9 weeks ago), 2018-11-29 19:41:26 -0800
    • Engine revision 7375a0f414
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/workeduc/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/workeduc/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[!] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    ✗ Verify that all connected devices have been paired with this computer in Xcode.
      If all devices have been paired, libimobiledevice and ideviceinstaller may require updating.
      To update with Brew, run:
        brew update
        brew uninstall --ignore-dependencies libimobiledevice
        brew uninstall --ignore-dependencies usbmuxd
        brew install --HEAD usbmuxd
        brew unlink usbmuxd
        brew link usbmuxd
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    • ios-deploy 1.9.2
    ✗ ios-deploy out of date (1.9.4 is required). To upgrade with Brew:
        brew upgrade ios-deploy
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 32.0.1
    • Dart plugin version 182.5124
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[✓] Connected device (2 available)
    • Moto G                  •<PHONE_NUMBER>                               • android-arm • Android 7.1.2 (API 25)
    • iPhone de Desenvolvedor • 4346ae62097024ea99d0bfbee86b849efdc5fdab • ios         • iOS 12.1.3

I'm using the camera plugin 0.3.0 and video_player 0.8.0, any ideas for solving this issue?

Hi @magnocasmor .
I added a fix for video orientation metadata when recording a video with the camera plugin. The PR is this one: https://github.com/flutter/plugins/pull/1452
I also added a fix to the video_player. The PR is here: https://github.com/flutter/plugins/pull/1451
Please don't hesitate to have a look at the PRs and leave comments or suggestions to push the review process.

I feel this can be related to #80881 and will be solved in PR: https://github.com/flutter/plugins/pull/3970

It seems that it also has the wrong orientation on landscape left. The video is rotated 180° less than it should be.

I had a quick look at the bug itself. Apparently the switch case for LANDSCAPE_LEFT and LANDSCAPE_RIGHT are flipped? The angle for LANDSCAPE_LEFT should be 270 and for LANDSCAPE_RIGHT it should be 90. Then the source video has the correct orientation.


Refs #35734 -- Updated PostgreSQL version in daily tests to 17.

Trac ticket number

ticket-35734
Branch description
Following the release of PostgreSQL 17 yesterday(September 26th, 2024), this PR updates the scheduled tests to include the new version. This ensures that our CI tests cover the latest PostgreSQL release.
(related PR: https://github.com/django/django/pull/18592)
Checklist

[x] This PR targets the main branch.
[x] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[ ] I have checked the "Has patch" ticket flag in the Trac system.
[ ] I have added or updated relevant tests.
[ ] I have added or updated relevant docs, including release notes if applicable.
[ ] I have attached screenshots in both light and dark modes for any UI changes.

Unfortunately, it was already updated in a separate commit c334c1a8ff4579cdb1dd77cce8da747070ac9fc4.


⚠ fef's blog has degraded performance

In 8a820e2, fef's blog (https://fef.moe/) experienced degraded performance:

HTTP code: 200
Response time: 7931 ms

Resolved: fef's blog performance has improved in 4c4a69e after 21 minutes.


POE analysis fails on run_starfysh

Great package! When trying to run
model, loss = utils.run_starfysh(visium_args,
                                 n_repeats=n_repeats,
                                 epochs=epochs,
                                 poe=True,
                                 # Turn on/off for model with/without histology integration
                                 device=device) # 16'

I get the following error:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/shared/apps/anaconda3/lib/python3.9/site-packages/starfysh/utils.py", line 440, in run_starfysh
    result = train_func(model, trainloader, device, optimizer)
  File "/shared/apps/anaconda3/lib/python3.9/site-packages/starfysh/starfysh.py", line 821, in train_poe
    img_outputs = model.predictor_img(img)  # inference & generative for 2D img. data
  File "/shared/apps/anaconda3/lib/python3.9/site-packages/starfysh/starfysh.py", line 507, in predictor_img
    hidden_z = self.img_z_enc(y_n)
  File "/shared/apps/anaconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/shared/apps/anaconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1541, in _call_impl
    return forward_call(*args, **kwargs)
  File "/shared/apps/anaconda3/lib/python3.9/site-packages/torch/nn/modules/container.py", line 217, in forward
    input = module(input)
  File "/shared/apps/anaconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/shared/apps/anaconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1541, in _call_impl
    return forward_call(*args, **kwargs)
  File "/shared/apps/anaconda3/lib/python3.9/site-packages/torch/nn/modules/linear.py", line 116, in forward
    return F.linear(input, self.weight, self.bias)
RuntimeError: mat1 and mat2 shapes cannot be multiplied (32x3072 and 1024x256)

When running with poe = False it works. I attach the model and the img_metadata.
model_img.zip
Thanks for any help!

setting up hhchannel=True on preprocess_image (#31 run_starfysh error with poe argument) works but the image looks horrible:

Hi @Jorges1000,
Thanks for using Starfysh! We'll try to reproduce the RGB dimension error you reported and get back later (will release a new version if it's a confirmed package error).
For your follow-up question with 1-D PoE, Starfysh performs H&E color deconvolution to pick only hematoxylin channels via histomicstk link, where we empirically found the positive correlations between H-channel and cell density.
From the uploaded image, the color segmentation picks up a lot of background noise distribution (repeated white blobs) + fiducial points (boundary black dots). However, Starfysh only input pixel patches mapped with valid Visium coordinates (`img_metadata['map_info'][['imagerow', 'imagecol']]) while most of the background values should be dropped. Does your raw tissue consist of four separate tissues?

Hi, thanks for the reply, it seems to be enhancing small differences in the background of the slide. Here is the source image:

And here is the estimated tissue density; it seems that the background is affecting it more than cell density

Thanks for the follow-up. We fixed the RGB issues and you can install through the GitHub version to run histology integration. I also looked into the 1D PoE: the Haematoxylin channel might either captures nucleus or the background depending on the color comparison w/ background (examples attached). We might extend it as a user option whether to flip the 1D intensities.

Provided histology:

Our sample histology vs. smoothed library size:

Please let me know which intensity preprocessing setup makes more sense to you?

Hi @YinuoJin, many thanks for the improvements, i will try soon. I think there may be a benefit of applying a threshold to the H-channel to eliminate low counts, as it appears that the nuclei intensities are well above the background.


Fix stress test for image config opt requirements

Signed-off-by: Michael Crosby<EMAIL_ADDRESS>

Works for me.
Without this fix:
$ sudo ./containerd-stress -c 4 -d 10s
INFO[0000] pulling docker.io/library/alpine:latest
INFO[0000] generating spec from image
INFO[0000] starting stress test run...
rootfs absolute path is required

With this fix:
$ sudo ./containerd-stress -c 4 -d 10s
INFO[0000] pulling docker.io/library/alpine:latest
INFO[0000] starting stress test run...
INFO[0010] worker 0 finished
INFO[0010] worker 3 finished
INFO[0011] worker 1 finished
INFO[0011] worker 2 finished
INFO[0011] ending test run in 10.200 seconds
INFO[0011] create/start/delete 104 containers in 10.200 seconds (10.196 c/sec) or (0.098 sec/c)  failures=0

LGTM

Codecov Report

Merging #2720 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2720   +/-   ##
=======================================
  Coverage   43.54%   43.54%
=======================================
  Files         101      101
  Lines       10734    10734
=======================================
  Hits         4674     4674
  Misses       5326     5326
  Partials      734      734

Flag
Coverage Δ

#linux
47.2% <ø> (-0.03%)
:arrow_down:

#windows
40.67% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Cannot create field 'external_xmp_develop_setting' in element {1: null}

@hpgrahsl
I am getting below exception from sink.
My sink propertirs:
name=oz_next_assets_sink_01
key.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=false
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
connector.class=at.grahsl.kafka.connect.mongodb.MongoDbSinkConnector
topics=oz_next_assets.oz_next.assets
mongodb.connection.uri=mongodb://localhost:27017/oz_next_new?w=1&journal=true
mongodb.change.data.capture.handler=at.grahsl.kafka.connect.mongodb.cdc.debezium.mongodb.MongoDbHandler
mongodb.collections=assets
mongodb.collection.oz_next_assets.oz_next.assets=assets
#Route failed messages to a dead letter queue
errors.tolerance=all
errors.deadletterqueue.topic.name=dlq_oz_new_assets_sink_01
#To include the reason for rejection in the header of the dead letter queue message
errors.deadletterqueue.context.headers.enable=true
#Recording the failure reason for a message: Log
errors.log.enable=true
errors.log.include.messages=true
Exception:
[2019-07-23 16:24:04,270] ERROR error on mongodb operation (at.grahsl.kafka.connect.mongodb.MongoDbSinkTask:160)
com.mongodb.MongoBulkWriteException: Bulk write operation error on server localhost:27017. Write errors: [BulkWriteError{index=263, code=28, message='Cannot create field 'external_xmp_develop_setting' in element {1: null}', details={}}].
at com.mongodb.connection.BulkWriteBatchCombiner.getError(BulkWriteBatchCombiner.java:177)
at com.mongodb.connection.BulkWriteBatchCombiner.throwOnError(BulkWriteBatchCombiner.java:206)
at com.mongodb.connection.BulkWriteBatchCombiner.getResult(BulkWriteBatchCombiner.java:147)
at com.mongodb.operation.BulkWriteBatch.getResult(BulkWriteBatch.java:227)
at com.mongodb.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:280)
at com.mongodb.operation.MixedBulkWriteOperation.access$700(MixedBulkWriteOperation.java:70)
at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:203)
at com.mongodb.operation.MixedBulkWriteOperation$1.call(MixedBulkWriteOperation.java:194)
at com.mongodb.operation.OperationHelper.withReleasableConnection(OperationHelper.java:424)
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:194)
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:69)
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:193)
at com.mongodb.client.internal.MongoCollectionImpl.executeBulkWrite(MongoCollectionImpl.java:468)
at com.mongodb.client.internal.MongoCollectionImpl.bulkWrite(MongoCollectionImpl.java:448)
at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.processSinkRecords(MongoDbSinkTask.java:148)
at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$null$0(MongoDbSinkTask.java:118)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.lambda$put$1(MongoDbSinkTask.java:117)
at java.util.HashMap.forEach(HashMap.java:1289)
at at.grahsl.kafka.connect.mongodb.MongoDbSinkTask.put(MongoDbSinkTask.java:112)
at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:538)
at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:321)
at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:224)
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:192)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[2019-07-23 16:24:04,270] ERROR writing 497 document(s) into collection [oz_next_new.assets] failed -> remaining retries (0) (at.grahsl.kafka.connect.mongodb.MongoDbSinkTask:161)

hi again @rajarameshyv
were you already successful in reproducing this error in a different context i.e. outside of the mongodb connector e.g. just within the mongoshell or some leveraging some other drivers doing comparable insertions?

@rajarameshyv any news on this?

@hpgrahsl No fix found yet. I am getting the same error on different fields of the document. Examples below.  My current challenge is I am not able to find the actual source document that causing this issue. As I am new to Kafka, I am not able to dump full document to logfile along with error. Logfile contains only exception error but not the mongo document it is failing on. Appreciate, if you know how to get to problematic document, please share steps and weblink so that I can debug and try to fix the problem.
BulkWriteError{index=157, code=28, message='Cannot create field 'proxies' in element {2: null}', details={}}
BulkWriteError{index=263, code=28, message='Cannot create field 'external_xmp_develop_setting' in element {1: null}', details={}}
BulkWriteError{index=24, code=28, message='Cannot create field 'master' in element {1: null}', details={}}
BulkWriteError{index=27, code=28, message='Cannot create field 'updated' in element {1: null}', details={}}
BulkWriteError{index=135, code=28, message='Cannot create field 'renditions' in element {2: null}', details={}}

@rajarameshyv I think it should help a lot already to run kafka connect with debug log level. then it shows you a lot more information in the logs, e.g. the full sink record. hopefully it becomes clear then what really causes this strange issue.

@hpgrahsl Your debug suggestion helped to find problem documents on the target where connector writing. This is what I found.
Somehow on target for some documents, I feel connector inserting 'null' value in some scenarios. Please see attached files. I am attaching an original document from source, document after the connector copied over to target and BulkWrite command with updates. If you wanted to reproduce problem I am facing,

Insert document from file document_on_target.json.
Run bulkwrite command from testRun_on_kafkaconnectbreaker.json again document you inserted from step 1.
Compare documents from document_from_source.json & document_on_target.json.

Archive.zip

@hpgrahsl And one more thing I notice is, before 'initsync' complete, I see connector trying to update documents may be from oplog. I am not sure this is expected behavior. My expectation is connector first completes all initsync step to target mongodb and then will start reading from oplog and runs INSERT, DELETE and UPDATE.
Why I am saying this? Please take a look at couple of lines from my DEBUG mode. It says initsync is false.  I am curious how this is fixed. Appreciate if you can share fix that rolled into to address this issue if you can. Thank You.

@rajarameshyv thx for getting back to this. are you sure that the only thing that changed is the connector version and everything else in your pipeline is the same including the data itself? so:

the same mongodb source database version
holding the same data
the same Debezium MongoDB source connector version
same kafka topic settings + partition count
ONLY change: instead my community sink connector you use the official sink connetor?
same mongodb sink database version

the reason I'm asking this is that I'm currently not aware of any sink connector related change in the official sink connector - I guess this is what you referred to above when writing version 1.0 - that would have changed write behaviour in this regard. in other words don't see why this should work but  now but didn't before. maybe we can find this out together. what's still puzzling me is that fact that I haven't seen the issue described above by any other users of which there are many by now.


Chore/update dependencies 2020.03.23

More dependency updates

update to newest styleint-config-bitcrowd
update the other packages, but still two minimalist packages at a bad version number left

@lwassermann thanks for the suggestion! I did that and updated here — lots of packages updated actually, but not minimalist. yarn audit still has 2 vulnerabilities therefore (though they’re low)

👍


Add example code to demonstrate how to set templates-folder

The documentation is missing some example code which demonstrates how to set the templates folder (Files section). In a common PHP project I usually have my Twig templates located in a sub-folder, e.g. templates and I don't want Twig-CS-Fixer to lint all the files in the current directory, as this part suggests.

Thanks


simtk.openmm.OpenMMException: Particle coordinate is nan

hello. We are struggling endlessly to get 2.3.1 running, it would be great if someone could help us with these issues.  Here is the latest.  This is running on A100.
 As in
--use_gpu_relax=false.
Also reading the GH readme I couldn't find this particular flag "--use_gpu_relax" you mention. I found these instead:
"--enable_gpu_relax=false"
"--models_to_relax=none"
Maybe try running AF231 without Amber Relax part and see if you get structures. If you do so, visualize the structures. If they look really wild then Amber relax is probably failing due to a high number of clashes and/or bad geometries (this could possibly explain the NotaNumber(nan) issue. I have had that happen for a really large multimeric complex.

thank you for your response.
Indeed I do only see --enable_gpu_relax on the GH.   However this must be a mistake (and should be fixed to avoid confusion).  Hopefully the repo owners see this.
After loading AF2.3.1 and running it with that flag I get the following error:
FATAL Flags parsing error: Unknown command line flag 'enable_gpu_relax'. Did you mean: use_gpu_relax ?
Pass --helpshort or --helpfull to see help on flags.

Further, when I invoked the helpful through terminal I saw this in the output:
--[no]use_gpu_relax: Whether to relax on GPU. Relax on GPU can be much faster than CPU, so it is recommended to enable if possible. GPUs must be available if this setting is enabled.
So for now I will leave it as --use_gpu_relax.    However, as you suggested I will try turning it off to see if that fixes the issue.  Thank you for the suggestion!  As a side note, this error is happening even on small multimers and for different input sequences.

Hi thanks for raising. This should be fixed in v2.3.2. Please raise again if this persists!

Hi thanks for raising. This should be fixed in v2.3.2. Please raise again if this persists!

thank you.  Is there a solution for now?

To clarify - v2.3.2 has been released


Update app configuration to use new app context

This is for file-based configuration. Database configuration updates are handled in a separate issue.
#910 must be completed prior to this

This is currently already done in dev. Will also change deployment pattern to centralize configuration and secrets using .env pattern.

This is complete and now in PROD


Command documentation

This is a work in progress and will continue to be tweaked until release early next week.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: jeffandersen:x: mattcreager

⚡ LGTM ⚡


[bug] Redefine x-model for dictionary sources

This was accidentally set to the empty string while pushing out multi-dict support for the reader.
Test plan: tried it on dev.

Pushing now since this fixes a breaking production bug.


google/magika: Detect file content types with deep learning

It can be run with Python (3.8) / Node.js. The big issue is that it uses native codes and big size dependencies.
It has a website for online testing: https://google.github.io/magika/

Not sure how accurate it is. It says yarn.lock is powershell with 98% confidence.


d3.layout.patrition Bug on Google Chrome?

It seems like a bug on Chrome , x position is not calculated as expected. Works for other browsers....
http://codepen.io/anon/pen/myWoKp

This isn’t a bug in Chrome.  Hierarchical layouts have a sort parameter, which defaults to sorting on the value field.  In your example, all nodes have the same value.  In JavaScript, the built-in array sort is not stable, which can lead to different results in different browsers.
Your example can be fixed by turning off sorting: .sort(null), or you could pick some well-defined sort order instead.
D3 could potentially use a stable sort but the built-in sort is usually very fast so I don’t think there’s a compelling reason to roll our own.


Split game_context into game_context and game_functionality

All functionality related to GameContext structure should be separated from the game logic.

Resolved with ab4162d.


Drag create event supported

this calendar look promising, however I notice that there is no drag create event. Is it supported? Since calendar allow me drag-release new event in calendar (just need a call back event)

Please take a look at select.

Fuiyo! it work, thanks you are the man!


Gateway Error,

After argentx wallet upgrade I started to get this error, every contract call.
"GatewayError: Execution was reverted; failure reason: [0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473]."
It's a simple NFT approve call.
      const devnetPrivateKey = element.key;
      const devnetAccount0Address = element.adress;
      const account = new Account(provider, devnetAccount0Address, devnetPrivateKey);

      const multiCallMySwap = await account.execute(
          {
            contractAddress: "0x02d679a171589777bc996fb27767ff9a2e44c7e07967760dea3df31704ab398a",
            entrypoint: "ApprovalForAll",
            calldata: CallData.compile({
              owner : devnetAccount0Address,
              operator : "0x578a25fe5fe8f4749651be751dff8fc68d8f3d16b175d3e6ae4f99645a7d100",
              approved: "1",
            })
          }
      )
      console.log(multiCallMySwap.transaction_hash);
      console.log(element);
      await provider.waitForTransaction(multiCallMySwap.transaction_hash);

When reporting bugs it is best to adhere to the bug report template.
I'm guessing you are running a forked devnet, and the account from the code snippet is the upgraded one. If so, with the wallet upgrade the Cairo version of the account changed, it doesn't match the default "0" and needs to be set to "1", e.g. new Account(provider, devnetAccount0Address, devnetPrivateKey, "1"). This will be automated in the upcoming version but needs to be explicitly set for now.
If you run into any more issues you can also check the starknet.js Discord channel, a bunch of people have been going through the upgrade so decent chance someone else has encountered it before.

Thank you sir, you are awesome.  @penovicp


[mgmt] containerservicefleet release

https://github.com/Azure/sdk-release-request/issues/4501

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-arm-containerservicefleet

lgtm 🚀


Update Docker file for distroless base

Updates docker file to use a light distribution base for hapistrano as requested on #182.

Hey @FranzGB Do you need a hand with this? I think it looks fine. Is there something missing for it to be ready for review?

Hey @FranzGB I was finally able to test your PR in my personal computer. Unfortuantely, I got the following error when I tried to run the container with the hapistrano version in the distroless repository:
➜  hapistrano git:(distroless-Dockerfile-base) docker images
REPOSITORY                           TAG          IMAGE ID       CREATED          SIZE
<none>                               <none>       01b7365e6821   20 minutes ago   49.5MB
...
➜  hapistrano git:(distroless-Dockerfile-base) cd example
➜  example git:(distroless-Dockerfile-base) docker run -v $PWD:/app 01b73 -c ./app/hap.yaml deploy
hap: ssh: readCreateProcessWithExitCode: posix_spawnp: does not exist (No such file or directory)

I guess that is expected since (I guess) the distroless image doesn't contain the ssh binary (and I guess it doesn't have git either). Therefore, I don't think this will solve #182

@CristhianMotoche thank you for the detailed explanation, in that case, I think it would be worth exploring SSH alternatives written in Haskell, there might be some bindings already. If we manage to decouple hapistrano from the SSH binary, I think it would be easier to produce a standalone binary

@CristhianMotoche thank you for the detailed explanation, in that case, I think it would be worth exploring SSH alternatives written in Haskell, there might be some bindings already. If we manage to decouple hapistrano from the SSH binary, I think it would be easier to produce a standalone binary

Hey @sestrella Unfortunately, there are many more binary dependencies like scp, git, and others. It's not going to be an easy to task to replace all of those binaries.

@CristhianMotoche in that case, I would suggest holding a little bit on this feature, until we have a clear plan to generate a standalone binary. What do you think?

Sounds good to me @sestrella

Thanks for the contribution @FranzGB As I mentioned in #182 , let's hold on until we're sure about how to use a distroless with Hapistrano since it depends on some binaries to be present in the host (e.g. git, ssh, scp, etc.).


Using IF & FOR on the same line

Hey guys,
Not sure if this is related to #133 or not..
I was encountering memory leak when trying to merge a template & found that it was due to IF & FOR being on the same line in the template.
Moving FOR to a new line fixed the issue.
Not working;
{#IF someData#}{#FOR data IN someData#}{#END-FOR#}{#END-IF#}

Ok;

{#IF someData#}
{#FOR data IN someData#}{#END-FOR#}{#END-IF#}

Just wanted to raise this in case it is helpful to others, at least.

Hi! Thanks for reporting.
I'm not really sure I understand. What kind of memory leak did you experience? Do you mean runaway memory use? Or do objects stick around after the createReport call (weird)?

Sorry, yes- runaway use, until the stack limit is exhausted & Node throws the error

Hmm interesting, can you maybe make a PR with a (failing) unit test for this so we have a clear repro? I'll take a look but i'm swamped in other work currently, so it would help if you could take some boilerplate-writing off my hands.

@KAVA-Leigh i tried to reproduce this using:
+++IF true+++ +++FOR data IN list+++ +++INS $data+++  +++END-FOR data+++ +++END-IF+++

See d47fc49
I couldn't get it to fail in the way you observed. Can you take a look and see if I missed something?

@jjhbw - Sorry I hadn't got back to you on this yet.
In the template, if you amend to;
+++IF list+++ +++FOR data IN list+++ +++INS $data+++ +++END-FOR data+++ +++END-IF+++
(Noting a carriage return after +++INS $data+++) - the test run does not complete for me.
The same is true for the following;
+++IF list+++ +++IF list[0]+++ +++END-IF+++ +++END-IF+++
(Noting carriage return before the 2nd END-IF)
Attached is amended DOCX with these examples
ifForOnSameLine.docx

Thanks!
Successfully reproduced in https://github.com/guigrpa/docx-templates/commit/49e8d65343db6f64f5cb70fc4fa0171f715c95f7.
I'll take a look.

@jjhbw Any further thoughts on this one? Unfortunately we deal with some pretty complex templates when it comes to conditionals & it is necessary to avoid empty lines in the output, which means cramming the condition up as much as possible often.
Probably not a lot I can do, but if you can even point me to the correct place, I can take a look.
Thanks

I'm getting a sort of reverse issue (but probably related) where if an IF inside a FOR is called on the same line as FOR, anything inside the IF must be on the same line or it goes into an infinite loop.
In your example, this does not complete:
+++FOR data IN list+++  +++IF $data+++
+++$data+++  +++END-IF+++  +++END-FOR data+++
But this works fine:
+++FOR data IN list+++
+++IF $data+++
+++$data+++  +++END-IF+++  +++END-FOR data+++

Hi all,
I encountered the same issue, with two IF on the same line (version 4.11.3). Here is a template that blocks my program:
+++ IF variable1 +++ +++ IF variable2 +++
Hello
+++ END-IF +++
+++ END-IF +++

Hi, having similar issues.
Knowing (if i rememebr correctly) that an IF is just a FOR-Loop with zero or one iterations, it fits this case :/
Anything i can contribute?
As far as i can debug its running and endlessloop around here (main.js __generator),

Caught an exception here:

and reported validateContext is not a function: variable1
with variable1 beeing the first if in a line

f069eb22469a296db555faafbb164fa7b68c7f7f may have fixed this (related to #340 )