Word wrapping issue when viewing blame annotations

Word wrapping breaks the blame layout. Please see the attached screenshot.
I think the appropriate behaviour would be to wrap the lines on the right hand side of the "blame panel", after the heatmap.
If this is technically problematic to do, then I'd rather have word wrapping automatically disabled when blaming a file.

Thanks!

GitLens Version: 5.1.0
VSCode Version: 1.16.1
OS Version: Linux Mint 18

@fgallardograzio While I would love to fix this, unfortunately the only way I can provide the blame annotations (via the vscode api) doesn't allow for something like this. Hopefully vscode will ultimately provide a true gutter api and the crazy hacks that GitLens has to do could be a thing of the past :)

@eamodio what about having the extension disable word wrapping automatically when blaming a file?

Good idea, but I've gone down that path with toggling on/off visible whitespace (used to be required to the annotations to render properly) and it was fraught with issues and caused a noticeable delay in triggering the annotations. Sorry.


Amazon sqs client builder

Hi Jamal,
I forked and updated your SQS exporter such that I could specify the AWS region using an env var. I I'm new to Java and struggled with the strict maven dependency checking so I have commented it out.
Thanks
Simon

Thank you for your contribution.  Did you intend to withdraw these changes?


Promote actions/checkout version 4

Use the latest version of actions/checkout in the README's examples.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks @LeoColomb for updating the README. 🙌


Close VDC: Imported WRF files show up

If WRF and VDC are different types, then the "Close VDC" menu shouldn't show WRF items.
If they are close enough, the "Close VDC" menu should be renamed to something like "Close Dataset."

Fix: Rename to "Close Dataset"


Question: Restarting tournament after pausing

Hello! First of all thank you for creating this engine!
This is more of a question than an issue.
I am a comp sci student trying to use this engine for a school project.
I have a question regarding on how to restart the tournament after pausing it.
What I am trying to do is after each update, I want to pause the tournament (Which works wonderfully) and do other stuff until I ask the tournament to resume.
Here's a part of my code:
//index.js
...
const thread = childProcess.fork("tournament.js");
    thread.on("message", (msg) => {
        if (msg.topic === "exit") {
            thread.kill();
        }
        else if (msg.topic == "pause now") {
            thread.send({ topic: "pause" });
        }
        else if (msg.topic == "process data") {
            //do stuff here with data
            thread.send({ topic: "restart" });
        }
...

and here's the script that the child process is running:
//tournament.js
...
let t;
process.on("message", (msg) => {
    switch (msg.topic) {
        case "create":
            t = new Tournament(tournamentID, players, tournamentSettings, { autoStart: true });
            t.on("TOURNAMENT:updated", (data, done) => {
                t.pause();
                process.send({ topic: "process data", data });
            });
            break;
        case "restart":
            t.restart();
            break;
...

With current code, the tournament seems to reset instead of continuing from where it left off.
here's the debug log:
debug: [TASK]: Increment handId
debug: [TASK]: Wait game restart
info: Tournament tester is going to restart. {"tag":"tester"}
debug: [TASK]: Wait before new hand
debug: [TASK]: Announce current hand
info: Starting hand 1/2 {"tag":"[15300] tester: 1/2"}
debug: [TASK]: Reset gamestate
debug: [TASK]: Assign Dealer button
debug: [TASK]: Set Small Blind
debug: [TASK]: Pay ANTE
debug: [TASK]: Pay Blinds
debug: [TASK]: Assign private cards
debug: [TASK]: Save setup
info: Tournament tester is going to be paused. {"tag":"tester"}
debug: [TASK]: Increment handId

Please let me know if I am misusing Tournament.restart(), or if you have any pointers on how to solve this. Thank you very much!

I've found a couple of bugs on how I handle paused game.
There's a typo pause vs paused... but even with this sorted out the restart doesn't happen as I wanted.
Anyway, it doesn't seem strictily necessary to pause the game to obtain what you're trying to obtain.
t.on("TOURNAMENT:updated", (data, done) => {
                t.pause(); // <- Not strictly needed
                process.send({ topic: "process data", data });
            });

When TOURNAMENT:updated is emitted, the game won't proceed further until done is executed.
Hope this helps.

Also, keep in mind that tournament.pause() is not meant to immediately pause a tournament; it waits the current hand to complete before pausing the game.
This wasn't worked as I expected; but now it should be fixed.
Let me know if it works for you too.
Thank you for reporting the issue.

Thank you for the speedy reply and fixes!
I updated my repo and I think I understand how you intended pause() and restart() to work now.
Unfortunately for us, this breaks our original logic, as we wanted to pause the tournament on each update, and wait indefinitely until the parent sends a message to the child process to continue
We are trying to do :
//child : tournament.js
...
process.on("message", async (msg) => {
    t.on("TOURNAMENT:updated", (data, done) => {
        process.send({ topic: "updates", data }, () => {
            //need a confirmation from index.js
            done();
         })
    }

    switch (msg.topic) {
        case "start-game":
            console.log(chalk.green("Msg = start-game | Starting !"));
            await t.start();
            break;
         case "pause":
            //stops the game until further updates
            t.pause();
            break;
        case "resume":
            //Need the above to wait until this msg comes in.
            break;
});

and
//parent : index.js
..
 thread.on("message", (msg) => {
        if (msg.topic === "exit") {
            thread.kill();
        }
        else if (msg.topic == "updates") {
            //sends a webhook to an external app
           //wait for user input from external app, collect bets etc

          //then notifies child process to continue.
           thread.send({topic : "resume"})
        }
...

We're very new to NodeJs / Javascript, so to me it seems like with the current structure wouldn't work out for us (since we're involving a third party app.)
Would you have any recommendations for us?


Avoid throwing on symlink loops.

Hi, we were seeing a throw from rviz with the following message:
terminate called after throwing an instance of 'boost::filesystem::filesystem_error'
  what():  boost::filesystem::status: Too many levels of symbolic links: "/nix/store/44kcmy9bsw44y13bf7x5kzlm9s4cdhpr-libgccjit-10.3.0/lib/lib/libcpr_viz.so"
Aborted

Here, the /nix/store/44kcmy9bsw44y13bf7x5kzlm9s4cdhpr-libgccjit-10.3.0/lib/ directory is a symlink to itself, so there's an endless recursion. The boost::filesystem::exists method throws in this instance, but the exception is not caught anywhere, so rviz exits.
Instead, it is safer to use the overload that takes the error code and ensure that the function returned success, I don't think pluginlib should ever result in an uncaught throw?
fyi @mikepurvis, @jasonimercer, @nlunscher-cpr (CORE-23076)

LGTM


docs: Windows 8.1 SDK is needed to build Etcher

Otherwise, lzma-native fails.
Signed-off-by: Juan Cruz Viotti<EMAIL_ADDRESS>

Is it specifically always the Windows 8.1 SDK that's required, or is it the SDK corresponding to the version of Windows that you're currently building on?

It seems to be the Windows 8.1 SDK (I had to install it on Windows 10, for example).

I'm closing this. Even with the SDK it doesn't run. Looks like the Visual Studio installer now de-selects a whole Windows 8.1 section by default, which is needed to run Etcher. I'll create a new PR describing the necessary item users need to select.


please push a release tag

The workflow https://github.com/tokio-rs/tracing-opentelemetry/blob/v0.1.x/.github/workflows/release.yml will upload to cargo if someone can push a tag :)
The otel release can't be fully consumed in the ecosystem until this bridge crate releases!

Done 👍  https://github.com/tokio-rs/tracing-opentelemetry/releases/tag/v0.23.0

Thank you!


test: check buttons are disabled after post/delete request

This test is flaky and we don't know why. We already assert the appearance of the loader, so these steps aren't vital. I'm closing this for now.


Protobuf

It looks like you have binary conversion for objects for writing directly to the device (RandomAccessFile?), and the HiveType annotation concept looks very protobuf-like with enumerated fields. Have you given any thought of utilizing protobuf as your binary intermediary? Something like this might make efforts such as syncing with existing cloud persistence services a bit easier if those services utilize gRPC (such as Firestore). This would also allow a nice way to persist classes across platforms, use data in custom platform channels with simple class generation for iOS and Android built in thanks to the protoc plugin. This is certainly not a trivial request but I was curious about your thoughts. Thanks.

The prototype of Hive was using protobuf and Hive still relies on the same concepts.
The problem with protobuf is that it was not customizable enough.
Speed is one of the most important values for Hive and the custom implementation significantly improved performance and also reduced the required space.
One example are the ASCII keys: It is much faster in Dart to convert an ASCII String from / to binary representation. Protobuf has no ASCII String type. This makes a huge difference for bigger boxes.
I understand that using protobuf would have certain advantages but I also think that it is not a good idea to synchronize the binary format directly.

That makes a lot of sense as to why there are so many similarities. I wasn't thinking of syncing the local file directly with the cloud service upon changes, but being able to utilize the same binary for the two seems advantageous for several reasons.

It is much faster in Dart to convert an ASCII String from / to binary representation.

It's faster in dart to convert ASCII compared to...
Also, why bother with holding string keys at all? Doesn't that inflate the file sizes in general?

Actually it is possible to use protobuf with hive, by providing the type adapter:
/// Assume [Foo] is a proto class.
class FooAdapter extends TypeAdapter<Foo> {
  @override
  int get typeId => 0;

  @override
  Foo read(BinaryReader reader) => Foo.fromBuffer(reader.readByteList());

  @override
  void write(BinaryWriter writer, Foo obj) =>
      writer.writeByteList(obj.writeToBuffer());
}

I have no idea what the performance impact would be tho.

@X-Wei There will be a performance impact but it is not too bad. Unfortunately, I don't see where this would be useful.

Protobufs can still be useful especially in cases where we share data across different languages. Protobuf could be useful e.g. if I want to scrape and massage data in python and use it in Flutter.

Then, you should probably define your classes in the protobuf language instead of Dart and then use something like protobuf to use them in Dart.

Then, you should probably define your classes in the protobuf language instead of Dart and then use something like protobuf to use them in Dart.

Sure, I mean after defining the protobuf and generating the dart classes with protoc, I still want to use hivedb for storing and accessing the proto message in the flutter app. This way we have the benefits of both hive and proto worlds.

In one of my projects, I was experimenting with CRDTs and build a synchronization-layer in Dart and I used the package message pack and the repo for serializing all my messages.
When I was looking at your binary_writer, it did look similar. So maybe the message_pack spec could be useful?
This is what I tried out, and it worked quite nice:
class Person {
  String name;
  int age;
  List<Person> friends;
  Person({
    this.name,
    this.age,
    this.friends,
  });

  Person copyWith({
    String name,
    int age,
    List<Person> friends,
  }) {
    return Person(
      name: name ?? this.name,
      age: age ?? this.age,
      friends: friends ?? this.friends,
    );
  }

  Map<String, dynamic> toMap() {
    return {
      'name': name,
      'age': age,
      'friends': friends?.map((x) => x?.toMap())?.toList(),
    };
  }

  static Person fromMap(Map<String, dynamic> map) {
    if (map == null) return null;

    return Person(
      name: map['name'],
      age: map['age'],
      friends: List<Person>.from(map['friends']?.map((x) => Person.fromMap(x))),
    );
  }

  String toJson() => json.encode(toMap());

  static Person fromJson(String source) => fromMap(json.decode(source));

  @override
  String toString() => 'Person(name: $name, age: $age, friends: $friends)';

  @override
  bool operator ==(Object o) {
    if (identical(this, o)) return true;

    return o is Person &&
        o.name == name &&
        o.age == age &&
        listEquals(o.friends, friends);
  }

  @override
  int get hashCode => name.hashCode ^ age.hashCode ^ friends.hashCode;
}

/// Assume [Foo] is a proto class.
class FooAdapter extends TypeAdapter<Person> {
  @override
  int get typeId => 0;

  @override
  Person read(BinaryReader reader) =>
      Person.fromMap(deserialize(reader.readByteList()));

  @override
  void write(BinaryWriter writer, Person obj) =>
      writer.writeByteList(serialize(obj.toMap()));
}

Obviously, the class attributes need to be somehow serialized. You could either use a form of from/toMap (use the VSCode Extention Dart Data Classes or any other code generator) or put the attributes in a list and let the message pack serialize those.
I am not sure about the performance and size in bytes though and it has to be evaluated. But message pack is quite established and has libraries in a lot of languages.

Hi @X-Wei, I have a probuf class object A which has 2 other protobuf objects B,C inside it. Now, I want to store protobug object A in hive db. How can i achieve this? I can't edit .proto file. Also, editing generated proto g.dart is not possible.

You don't need to modify the generated proto.g file, just define the FooAdapter (extends TypeAdapter<Foo>) in a separate file (e.g. "my_adapters.dart"), and import that file whenever you need to use the proto with hive.


Implement IBatchedLogEventSink and send multiple events per service request

Batching log events should dramatically increase throughput; using Serilog.Sinks.PeriodicBatching for this, via IBatchedLogEventSink, will set us up to benefit from all the work done there to support multiple platforms reliably.
The conversion should be very simple/straightforward; some instructions in https://github.com/serilog/serilog-sinks-periodicbatching/#serilogsinksperiodicbatching--, and an example at https://github.com/datalust/serilog-sinks-seq.

Nevermind, I see this is already done! Love your work @loomis :-D


flake8 CI

After yesterdays developer seminar I linted ctapipe with flake8 as proposed by github.com/action/starter-workflows
    - name: Lint with flake8
      run: |
        # stop the build if there are Python syntax errors or undefined names
        flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
        # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
        flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

The results are huge (2 and 61 warnings/errors)
$ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
./ctapipe/utils/unstructured_interpolator.py:96:31: F632 use ==/!= to compare constant literals (str, bytes, int, float, tuple)
        if self._remember and self._previous_v is not 0:
                              ^
./ctapipe/tests/setup_package.py:2:13: F821 undefined name '_ASTROPY_PACKAGE_NAME_'
    return {_ASTROPY_PACKAGE_NAME_ + ".tests": ["coveragerc"]}
            ^
1     F632 use ==/!= to compare constant literals (str, bytes, int, float, tuple)
1     F821 undefined name '_ASTROPY_PACKAGE_NAME_'
2

$ flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
./ctapipe/containers.py:886:60: E241 multiple spaces after ','
./ctapipe/reco/hillas_intersection.py:60:19: E231 missing whitespace after ','
./ctapipe/reco/ImPACT.py:364:5: C901 'ImPACTReconstructor.get_likelihood' is too complex (11)
./ctapipe/reco/ImPACT.py:404:9: F841 local variable 'azimuth' is assigned to but never used
./ctapipe/reco/ImPACT.py:834:13: F841 local variable 'migrad' is assigned to but never used
./ctapipe/reco/tests/test_HillasReconstructor.py:168:50: W291 trailing whitespace
./ctapipe/reco/tests/test_HillasReconstructor.py:170:61: W291 trailing whitespace
./ctapipe/reco/tests/test_HillasReconstructor.py:203:13: F841 local variable 'e' is assigned to but never used
./ctapipe/visualization/mpl_camera.py:87:5: C901 'CameraDisplay.__init__' is too complex (11)
./ctapipe/visualization/mpl_camera.py:219:9: E741 ambiguous variable name 'l'
./ctapipe/visualization/__init__.py:3:43: W291 trailing whitespace
./ctapipe/plotting/bokeh_event_viewer.py:1:1: F401 'numpy as np' imported but unused
./ctapipe/plotting/bokeh_event_viewer.py:3:1: F401 'bokeh.models.Span' imported but unused
./ctapipe/io/hdf5tableio.py:127:5: C901 'HDF5TableWriter._create_hdf5_table_schema' is too complex (13)
./ctapipe/io/hdf5tableio.py:402:5: C901 'HDF5TableReader._map_table_to_containers' is too complex (11)
./ctapipe/io/hdf5tableio.py:447:5: C901 'HDF5TableReader.read' is too complex (14)
./ctapipe/io/dl1eventsource.py:201:5: C901 'DL1EventSource._generate_events' is too complex (23)
./ctapipe/io/tests/test_simteleventsource.py:81:9: F841 local variable 'data' is assigned to but never used
./ctapipe/instrument/subarray.py:7:1: F401 'collections.defaultdict' imported but unused
./ctapipe/instrument/camera/geometry.py:104:5: C901 'CameraGeometry.__init__' is too complex (11)
./ctapipe/utils/download.py:55:9: E722 do not use bare 'except'
./ctapipe/utils/unstructured_interpolator.py:15:1: F401 'time' imported but unused
./ctapipe/utils/unstructured_interpolator.py:96:31: F632 use ==/!= to compare constant literals (str, bytes, int, float, tuple)
./ctapipe/utils/table_interpolator.py:2:86: W291 trailing whitespace
./ctapipe/utils/table_interpolator.py:5:80: W291 trailing whitespace
./ctapipe/utils/table_interpolator.py:9:87: W291 trailing whitespace
./ctapipe/utils/table_interpolator.py:19:80: W291 trailing whitespace
./ctapipe/utils/table_interpolator.py:20:88: W291 trailing whitespace
./ctapipe/utils/table_interpolator.py:79:88: W291 trailing whitespace
./ctapipe/utils/datasets.py:46:1: C901 'find_all_matching_datasets' is too complex (11)
./ctapipe/utils/tests/test_fitshistogram.py:70:28: E231 missing whitespace after ','
./ctapipe/utils/tests/test_CutFlow.py:39:17: E722 do not use bare 'except'
./ctapipe/tools/plot_charge_resolution.py:5:1: F401 'traitlets.Unicode' imported but unused
./ctapipe/tools/display_events_single_tel.py:82:5: C901 'SingleTelEventDisplay.start' is too complex (16)
./ctapipe/tools/dl1_merge.py:176:5: C901 'MergeTool.setup' is too complex (11)
./ctapipe/tools/dl1_merge.py:289:5: C901 'MergeTool.merge_tables' is too complex (14)
./ctapipe/tools/tests/test_tools.py:78:1: C901 'test_merge' is too complex (12)
./ctapipe/tools/tests/__init__.py:4:1: W391 blank line at end of file
./ctapipe/core/traits.py:135:5: C901 'Path.validate' is too complex (15)
./ctapipe/core/traits.py:403:5: C901 'TelescopeParameter.validate' is too complex (12)
./ctapipe/core/tool.py:338:1: C901 'export_tool_config_to_commented_yaml' is too complex (12)
./ctapipe/core/container.py:77:5: C901 'Field.validate' is too complex (13)
./ctapipe/core/provenance.py:54:9: E722 do not use bare 'except'
./ctapipe/core/tests/test_qualityquery.py:33:23: E712 comparison to True should be 'if cond is True:' or 'if cond:'
./ctapipe/image/geometry_converter.py:5:1: F401 '.geometry_converter_hex.convert_geometry_hex1d_to_rect2d' imported but unused
./ctapipe/image/geometry_converter.py:5:1: F401 '.geometry_converter_hex.convert_geometry_rect2d_back_to_hexe1d' imported but unused
./ctapipe/image/geometry_converter.py:10:1: F401 '.geometry_converter_astri.astri_to_2d_array' imported but unused
./ctapipe/image/geometry_converter.py:10:1: F401 '.geometry_converter_astri.array_2d_to_astri' imported but unused
./ctapipe/image/geometry_converter.py:11:1: F401 '.geometry_converter_chec.chec_to_2d_array' imported but unused
./ctapipe/image/geometry_converter.py:11:1: F401 '.geometry_converter_chec.array_2d_to_chec' imported but unused
./ctapipe/image/geometry_converter_hex.py:513:9: E722 do not use bare 'except'
./ctapipe/image/tests/test_cleaning.py:1:1: F401 'os' imported but unused
./ctapipe/image/tests/test_leakage.py:13:5: E741 ambiguous variable name 'l'
./ctapipe/image/tests/test_geometry_converter.py:40:35: E231 missing whitespace after ','
./ctapipe/image/tests/test_geometry_converter.py:84:35: E231 missing whitespace after ','
./ctapipe/tests/setup_package.py:2:13: F821 undefined name '_ASTROPY_PACKAGE_NAME_'
./ctapipe/tests/test_traitles_configurable.py:5:1: F401 'sys' imported but unused
./ctapipe/tests/test_traitles_configurable.py:33:1: C901 'test_all_traitlets_configurable' is too complex (12)
./examples/stereo_reconstruction.py:1:1: F401 'astropy.units as u' imported but unused
./examples/plot_theta_square.py:74:9: E722 do not use bare 'except'
./examples/plot_array_hillas.py:21:1: C901 'If 21' is too complex (13)
18    C901 'Field.validate' is too complex (13)
4     E231 missing whitespace after ','
1     E241 multiple spaces after ','
1     E712 comparison to True should be 'if cond is True:' or 'if cond:'
5     E722 do not use bare 'except'
2     E741 ambiguous variable name 'l'
14    F401 '.geometry_converter_hex.convert_geometry_hex1d_to_rect2d' imported but unused
1     F632 use ==/!= to compare constant literals (str, bytes, int, float, tuple)
1     F821 undefined name '_ASTROPY_PACKAGE_NAME_'
4     F841 local variable 'data' is assigned to but never used
9     W291 trailing whitespace
1     W391 blank line at end of file
61

The black pre-commit hook only fixes the single E241 multiple spaces after ','.
I don't know how to set this up to only check the proposed changes, but since this is a github workflow maybe it is easier to incoporate than with codacy?

While doing this I found out that although we added pre-commit to the cta-dev environment, we skipped black and possible linters.

That's also taken care of by Codacy (it runs flake8 among about 5-6 other linters)

Found a (minor) issue in #1733 that would have been catched by flake8 (or was, but got ignored).
In my opinion, the codacy output is somewhat confusing, and it even seems to get ignored (I could sometimes not even reproduce the errors as shown there).
Should we set up those linters ourselves (e.g. as in top comment) and require them to pass?

I think this issue will be addressed and fixed in #1735


Cannot Install on OpenSUSE Tumbleweed

I can add the repo to Tumbleweed from the .repo file that is on the COPR page when I manually put in the url from that file, https://download.copr.fedorainfracloud.org/results/emixampp/linux-enable-ir-emitter/opensuse-tumbleweed-$basearch/, however when I try to install the package  I get the attached error. I have installed a
conflicts.txt
I can install opencv through the repos on my device, but it specifically wants that libopencv_aruco.so.406. When I attempt to build the package manually it also fails, just in a different way

I'm not sure to understand
Could you first remove the repo: sudo rm /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:emixampp:linux-enable-ir-emitter.repo
Then, could you give me the outputs of the following commands:

sudo dnf copr enable emixampp/linux-enable-ir-emitter
sudo dnf --refresh install linux-enable-ir-emitter

OpenSUSE does not use dnf, while it uses RPM packages the package manager is zypper which does not have copr built into the command

Yes indeed! I forgot.
Maybe try to first install opencv (as you already did) but also opencv-devel. Then install linux-enable-ir-emitter, it could be that the dependency is in the devel package.
Otherwise, just build and install it manually using the bash script of the git repo; everything is explained in the readme.

errorlog.txt
log.txt
Rather than trying with the repo again since it wasn't working I tried to build and install manually after ensuring that opencv and opencv-devel were installed and these are the logs I got when running sudo bash installer.sh install 2> errorlog.txt > log.txt

May be, you could try to find on your computer if a file libopencv_aruco.so* exists (i.e. find / -name libopencv_aruco.so* 2> /dev/null). If so, you could try to create a symbolic link named : libopencv_aruco.so.406 to that file, which in fact is from another version. Most likely, this will not be a problem.
Otherwise, I can do nothing for you, this seems to be an issue of the opencv package on Tumbleweed.

Does this trick work?

I cannot find the file with find, however I can see that it is installed in the software list. I wonder if adding the packages to the openSUSE Build Service would resolve issues as then it may auto solve dependencies and could be installed by using the command opi <packagename>

I cannot find the file with find

This is strange because, if the aruco package in version 407 is installed, the file libopencv_aruco.so407 should be present on the system
Maybe try to install the libopencv3_4 package ?
Honestly, I can't do much about this compilation problem with opencv.

I ran a new build on COPR, but the build fails because of the server, I will try again later.
You will only have to download again the .rpm.  I hope it will work!

The v4.4.0 is ready for release. I still have some details to work out regarding Arch. I will drop all the distributions repositories so, I've changed the way how the dependencies are managed.
You can test in advance the rpm package downloadable here
Let me know if it fix your issue, thanks !

The v4.4.0 has been released and should fix this issue.
Feel free to comment if needed

I see I have libopencv 407 packages instead of 406, could that be the issue?, is it calling for 406 specifically? Or is this just a quirk of OpenSUSE package management do you think

Hum, the package contains all the needed dependencies. Can you add --nodeps to the rpm command ?

This time it should be fine :crossed_fingers:

Progress!!

Can you past the outputs of sudo linux-enable-ir-emitter boot status ?

miss click the close

ir-emitter.log

Thanks, it is fixed

Fantastic, it appears to be working now!! Thank you for working on this!

You're welcome. If you like the project, do not hesitate to star the repository to support me, thank you !


100% CPU usage during tracker timeouts

Support guidelines

[X] I've read the support guidelines

I've found a bug and checked that ...

[X] ... the documentation does not mention anything about my problem
[X] ... there are no open or closed issues that are related to my problem

Description
When a sufficient number of torrents in my client error with the status Tracker Status: Tracker: [Timeout was reached], I see constant 100% CPU usage (single core) from the rtorrent process in the container.
Expected behaviour
Tracker timeouts don't cause 100% CPU usage unnecessarily.
Actual behaviour
Tracker timeouts cause 100% CPU usage.
Steps to reproduce

Run this docker image with a reasonable number of torrents. For context I have 10k+ across a few containers. I have seen this issue with timeouts in only a couple hundred torrents, though
Cause tracker timeouts, either by tracker downtime, or by disrupting the network in a way that you get tracker timeouts. In my case, my VPN was having issues, but I've seen this in the past with normal tracker downtime.
Observe 100% CPU usage

Docker info
I run this container in k8s via crio - if it's relevant, `sudo crictl info` returns:

{
  "status": {
    "conditions": [
      {
        "type": "RuntimeReady",
        "status": true,
        "reason": "",
        "message": ""
      },
      {
        "type": "NetworkReady",
        "status": true,
        "reason": "",
        "message": ""
      }
    ]
  },
  "config": {
    "sandboxImage": "registry.k8s.io/pause:3.9"
  }
}

### Docker Compose config

_No response_

### Logs

```text
There doesn't seem to be anything of note in the container logs or in the rtorrent/rutorrent logs.

Additional info
This looks quite similar to a bug with rtorrent that was caused by a regression in curl, specifically https://github.com/rakshasa/rtorrent/issues/951 / https://github.com/rakshasa/rtorrent/issues/580 / https://github.com/rakshasa/rtorrent/issues/457. However, this seems to be from a very old version of curl, it looks like curl in the container currently is v8.5.0, and this was an issue back around v7.55.0.
I straced the process and got the following output:
>sudo strace -c -p 3290243
strace: Process 3290243 attached
^Cstrace: Process 3290243 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 93.06    1.394528           2    570092           epoll_pwait
  3.42    0.051288       17096         3           futex
  1.83    0.027467           3      9076           statfs
  0.45    0.006774           8       825       825 connect
  0.31    0.004694           2      1998           epoll_ctl
  0.22    0.003364           4       825           socket
  0.18    0.002629           4       630           close
  0.17    0.002493           1      1281           fcntl
  0.16    0.002380           1      1226           setsockopt
  0.06    0.000968           2       424           getsockname
  0.06    0.000849           2       424           poll
  0.05    0.000705          11        64           getdents64
  0.01    0.000129           4        32           open
  0.01    0.000106           6        16           mmap
  0.00    0.000054          18         3           munmap
  0.00    0.000020           2         8         8 stat
  0.00    0.000013           4         3           recvfrom
------ ----------- ----------- --------- --------- ----------------
100.00    1.498461           2    586930       833 total

This does look pretty similar, although it is a different syscall (epoll_pwait instead of epoll_wait). I've tried poking around for recent bug reports here but have been unable to find anything. I haven't tried messing around with curl, but will likely see try to see if somehow this is a similar issue. Frankly I'm not the most familiar with this stuff so I wouldn't really know what I'm doing, and mostly wanted to file this issue to see if anyone else has ran into this issue and found a resolution.
I did just find https://github.com/rakshasa/rtorrent/issues/1208 which claims there may be an issue in recent versions of curl here - I'm going to try changing the versions around and see if I'm able to resolve this. edit: nope, v7.84.0 which is mentioned in that thread doesn't seem to resolve it. That looks to be gentoo specific anyways, so it was really a shot in the dark anyways.

Upgrade to docker edge to resolve this problem.

@stickz Sorry I should have followed up earlier here - I didn't realize what you meant by "edge" but I saw it's a tag. I've just gone ahead and set it but I'm still getting the same issue.

@nolemons This docker container was just switched to rTorrent stickz. https://github.com/stickz/rtorrent
Could you retest with 4.3.5-3.2 and file an issue report there if the problem persists? We can then discuss next steps.


chore(deps): update dependency joda-time:joda-time to 2.10.1

This PR contains the following updates:

Package
Change

joda-time:joda-time
2.9.9 -> 2.10.1

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR is stale, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will now ignore this update (2.10.1). You will still receive a PR once a newer version is released, so if you wish to permanently ignore this dependency, please add it to the ignoreDeps array of your renovate config.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.


Question: Cant follow along with example code

I am trying to get a visualization bar in my app for audio. I am checking out your plugin and in the example page you have a line..
final progressStream = BehaviorSubject<WaveformProgress>();
Where does BehaviourSubject come from? I searched the page and that was the only reference to the name anywhere

MY mistake, I didnt see the RXdart in the imports


Data alignment/stacking issues

From the issue #1211, the bug still remains at 4.2.4 version. When I try to stack values with different update intervals it does not work correctly.
Screenshot of the issue:

Screenshot of expected behavior:

Grafana
Zabbix
Grafana-Zabbix Plugin

8.2.0
5.0.10
4.2.4

Should probably also mention... This is only happening on Time Series panels.  If you use the Graph (old) panel then it still works the old way and you don't run into these interval issues.

@borjasueiro do you use flexible intervals? Could you provide info about using items (update intervals)?

We do not use flexible intervals.  However, we do have a lot of data points that use trappers for various application level data.  Since these come from external scripts, and can sometimes take more than a few seconds to run, the timestamps don't always line up exactly when displaying multiple things on one panel.
When looking at something like "Last Hour" we would see the interval auto calculating as low as 2 seconds.  Since some of those timestamps can have more than 2 seconds of variance, this cases it to display strangely.  As soon as we forced the minimum interval to 1 minute, which is our minimum data gathering interval, then these display problems went away.  I don't necessarily blame the Zabbix plugin for the display issue here, as this is how the new time interval calculations are supposed to work.  It can give more granular display if you have data to fill in those gaps.
I'm just saying, it appears that there is support for setting a global option on the data source.  However, it would appear this plugin has not implemented this option as of yet, and we are forced to modify individual panels any time this display issue happens.

@borjasueiro do you have data alignment enabled?
@CompPhy could you post a screenshots of your case?

Here's a quick example.  In this case you can see exactly what I mean.  It's calculating the minimum interval to be 2s, so it has to fill in the missing values with zeros.  Then if I just force the minimum interval to 1 minute, those bogus zeros go away.  We also have some that look like the original submitter, but I think it's less clear to see what's happening there.

@alexanderzobnin nor do I use flexible intervals. But if I use several items I will probably collect the value in different intervals. Almost all of them have 1 minute or 2 minutes update interval.
I have tested both, with data alignment and without the option enabled.

In my case with a 1 minute interval frequency, I get the right representation for 4 hours and it is broken for 5 hours timeframe.
4 hours:

5 hours:

Software versions

Grafana
Zabbix
Grafana-Zabbix Plugin

8.2.2
5.0.11
4.2.4

I thought about the solution for a long time, but it looks like there's no good one. I can fix stacking for the graphs obtained from the one query, but for the multiple it's tricky since it do not share the same context. So the best way to fix it is a workaround suggested by @CompPhy https://github.com/alexanderzobnin/grafana-zabbix/issues/1334#issuecomment-956388394
Interval should be set to the maximum item update interval you have. For example, if you have an item with 1 minute interval and another one with 10 minutes, then set it to 10m. @borjasueiro please, let me know if it works for you.

What about my suggestion of exposing a global minimum on the plugin?  Most of our graphs work fine just setting 1m as the minimum, but it's pretty frustrating when you have to remember to set it on every single panel.  Grafana documentation seems to suggest that there is a "global" value that can be used, but the plugin needs to implement.

This is quite tricky to handle multiple query and apply any data processing that can help to avoid stacking issue. I added this for the single query, it works pretty well in most cases, but this is not possible for case like this one, where multiple queries are using. So there're some workarounds:

Use min interval in query options and set it according to the longest item collection interval.
Use single query if it's possible.

I'm closing this because I don't see any good solution for this issue and there're workarounds that can help to avoid it.

@CompPhy that's a good point. I will take a look.


Update to new IPFS API

The IPFS API is undergoing a massive refactoring effort to make it all async iterables.  We're pretty close to landing that PR, you can check out the code at the ipfs/js-ipfs#async-await-roundup branch and the API docs at ipfs/interface-js-ipfs-core#refactor/async-iterables/SPEC.
This PR updates the code & example for hlsjs-ipfs-loader to use the new API.

I am experiencing some issues with building the release. @moshisushi  can you check it out?

@vaultec81 Problem with aegir? I'm seeing an error indeed when running the build:
TypeError [ERR_INVALID_ARG_TYPE]: The "id" argument must be of type string. Received type object     at validateString (internal/validators.js:112:11)     at Module.require (internal/modules/cjs/loader.js:764:3)     at require (internal/modules/cjs/helpers.js:68:18)     at Object.exports.getUserConfig (/Users/henry/workspace/hlsjs-ipfs-loader/node_modules/aegir/src/utils.js:82:12)     at userConfig (/Users/henry/workspace/hlsjs-ipfs-loader/node_modules/aegir/src/config/user.js:69:24)     at Object.<anonymous> (/Users/henry/workspace/hlsjs-ipfs-loader/node_modules/aegir/src/config/webpack/index.js:11:32)     at Module._compile (internal/modules/cjs/loader.js:868:30)     at Object.Module._extensions..js (internal/modules/cjs/loader.js:879:10)     at Module.load (internal/modules/cjs/loader.js:731:32)     at Function.Module._load (internal/modules/cjs/loader.js:644:12)
Is this what you mean?

@moshisushi Yes, we seem to be facing the same issue.

I locked the dependency to
"dependencies": {
"aegir": "20.5.0"
}
Seems to work better. @vaultec81 see if that works for you too please

@vaultec81 @alanshaw I think 0.2.3 is ready now. Looking at the diff, it honestly makes no sense why downgrading aegir to the previous minor version would fix the issue (they've only changed some test code!), so I doubt that's what "fixed" it. Will do a full clean-rebuild over here and see if it's still working.

I think upgrading aegir was enough, not a strict version lock. I've changed it to "aegir": "^20.5.0" now and seems fine even after clean rebuild. Let me know how it goes.


after the latest updates it shows this on one device

[14/07/2022, 22:36:17] [TuyaIR] Failed to change device status due to error raw_key can not be null
its supposed to be controlling the tv

version 0.2.1 come back to that version of plugin

version 0.2.1 come back to that version of plugin

Now everything stop working and it doesn't even show the error in the log

Can you send some logs? There hasn't changed anything for DIY devices.

for me come back to that version of plugin resolve my problem , btw, check in the tuya iot project if there are all your remotes , if not just delete from tuya app and re associate.

Can you send some logs? There hasn't changed anything for DIY devices.

What exactly should I send?

Same error here. I am only seeing the following in the Homebridge Logs. Is there a debug mode to show additional logs?
[16/07/2022, 15:56:15] [TuyaIR] Failed to change device status due to error raw_key can not be null

same error here for the DIY devices, and same log one line only
Failed to change device status due to error raw_key can not be null

DIY fixed in v1.0.5. Please check and let me know

Nope not fixed.
[7/23/2022, 6:33:22 PM] [TuyaIR] Failed to change device status due to error raw_key can not be null
same error returning to version 0.2.1

Which device are you trying to use? DIY for AC is not supported.

Which device are you trying to use? DIY for AC is not supported.

Not AC, it is a humidifier, just an on/off with version 0.2.1, in fact AC carrier and sanyo fan working fine with the new version 1.0.5 or 1.0.4, it is only the humidifier works with version 0.2.1, other version it shows Failed to change device status due to error raw_key can not be null

Humidifier is not tested with the plug-in. If it's a DIY device please set DIY flag to true. This will retrieve the IR code for humidifier.

Humidifier is not tested with the plug-in. If it's a DIY device please set DIY flag to true. This will retrieve the IR code for humidifier.

Tried that, did not work. Anyway version 0.2.1 is the best, working fine with everything. Will stick to that version. Thanks and best regards.

Fixed in v1.0.6. Please test and let me know.

Thank you so much, yes it is fixed. All devices working fine.


Extend firewall plugin (for API support) with snat support [tracking ticket]

In https://github.com/opnsense/plugins/issues/1720 we worked on API support for the basic firewall features, this ticket describes the extension with source (outbound) nat rules.
Scope:
This feature addition is not about: port forwards and 1:1 rules, these are destination type nat rules, which therefor lie outside the scope of this ticket.
At minimum this plugin should provide the possibility to use standard API endpoints, similar to the ones for all other new style features.
The rules settings provided should be the following:

Disabled (ignore rule)
Interface (one of the registered interfaces, such as wan)
TCP/IP Version (ipv4 or ipv6)
Protocol (Single registered protocol, such as tcp, udp, icmp)
Source (a single host or network [cidr] or a registered alias)  + Invert option
Destination (same options as source) + Invert option
Translation target (Either an address or registered alias)
Description (user friendly description)
Log (enable logging)

Existing (manual) rules can't be changed with this plugin, since they live in another section of the configuration (separation of concerns).
The rules created by the api don't depend on mode settings of the outbound nat rules, such as  "Manual outbound NAT rule generation" or "Hybrid outbound NAT rule generation".
Since automatic rules are not visible elsewhere in the gui, it's imperative that this plugin has a simple user interface to retain visibility.

(internal reference) this point should be in 20.1.4-devel

Thanks for a quick response. I need a programmatic access to a DNAT rule, but luckily the "Alias" workaround laid out in the thread I linked should be sufficient.

you could also consider the relayd plugin (https://docs.opnsense.org/manual/relayd.html) when it comes to forwarding


support blocktime/difficulty chart

screenshot (e.g. for Ethersocial Network)

Does this require the server spending some time collecting data before charts will display? I have a fully synced server that isn't showing anything.

oh..
this is undocumented from the begining 40174e67018.
anyway the stats data is collected by the following. (all blocktime,difficulty,hashrate collected at the same time.)
$ node tools/stats.js # default interval = 100, default range = 1000 blocks
or
$ RESCAN=1000:100000 node tools/stats.js # interval = 1000, 100000 blocks


Adjust timeouts in dialers

This adjusts down the fallback timeout in the dbdaemon client dialers for network calls. In practice if the host comes up 20 or more seconds after your dial the dial will never complete but underlying networking may hold the connection open up to your context length. So lets adjust down the fallback to avoid unneccessary waiting.
This was found as a cause of test flakes.
Change-Id: I9d19d05341d2d5f39117f945f45e52d9e90f5ece

/approve


Request: backpack:crud-model to generate migration

Love the work you've done so far, is much appreciated :)
Im starting to have a little dig around, and wondered what the possibility of adding the migration creation to the model generation?
For example a normal artisan command would be php artisan make:model Cake --migration and you'd get a migration with it.
Would this functionality be possible to add (or does it already exist?)
Many thanks for your hard work.
Owen

Hi @OwenMelbz ,
Yes, it's on the roadmap. For that, I plan on using the excellent Laracasts/Generators, which you can use right now to speed up development.
I found that this is the fastest way to develop CRUDs right now. In a future version, I hope to transform this entire process:
php artisan make:migration:schema create_tags_table --schema="name:string:unique" --model=0
php artisan migrate
php artisan backpack:crud tag
# then manually add this to your routes.php file (under the admin prefix and auth middleware):
# CRUD::resource('tag', 'TagCrudController');

into one command. So this will bring commands like:
# generate a migration
php artisan backpack:crud-migration tag

# generate a complete CRUD in one line (migration, run migration, controller with fields already
# placed, auto-enable reorder if necessary columns are in the db, model with fillable attributes,
# request with required on NOT NULL columns, route)
php artisan backpack:crud tag tags --schema="name:string:unique"

# OPTIONAL FLAG: also generate pivot tables for n-n relationships
 --pivot="articles,posts,comments"

# OPTIONAL FLAG: also generate seeds
 --seed

I also plan on creating a command-line wizard to make remembering the syntax above unnecessary:
php artisan backpack:crud-wizard
# You are about to generate a new Backpack/CRUD panel.
# 1) What's the name of the entity you're creating? (singular, will be used for the model name)
tag
# 2) What's the name of the entity (plural)? (will be used for the table name)
tags
# 3) Generate migration? (y/n)
y
   # 3.1) Migration schema? (ex: "name:string:unique, description:text"
   name:string:unique, description:text:nullable
   # 3.2) Pivot tables to any tables?
   articles,categories
# 4) Generate seed? (y/n)
y
# 5) Migration generated. Please confirm migration is final (y/n). (your editor should open)
y
# 6) Done:
# - ran migration: database/migrations/2016_05_25_121918_create_tags_table
# - generated controller: app/Http/Controllers/Admin/TagCrudController.php
# - generated model: app/Models/Tag.php
# - generated request: app/Http/Requests/TagRequest.php
# - added route under admin namespace and prefix: CRUD::resource('tag', 'TagCrudController');

It's a lot of work, but when it's finished, it should speed up both development and new users' understanding of Backpack.
What do you think?

Morning!
Overall this does seem like a pretty nice feature to have, I feel the automatic route insertion will be the most complicated component, unless you consider abstracting the routes into a configuration file (array style) which can be parsed and manipulated, more easily than all the different ways a route could be added?
Additionally maybe an option to generate a custom request file? Not a high priority feature, but maybe something worth considering.
For step 5 I'm a little confused about the migration generated, please confirm its final? I'm not entirely sure I understand what that step is for?
Final thought would be that it would also be nice to include the permission generation in this wizard :)
But overall this does seem like a very good feature to have, and will make it easier/faster for people to start scaffolding apps out quicker!

PR is now in place for this

Hey guys, Ive been thinking about this feature a bit over the last few days, turns out youre all already on top of it.
When building cruds ive found the 2 most repetitive tasks are filling model data and creating controllers. I can imagine controller generation would be near impossible to automate, so it may be worthwhile building that into the setup wizard.
ie setup migration -> setup crud -> automate model data/relationships -> iterate each db field and get type input for both columns and fields.
This would save a lot of time.

@b8ne - I agree with you that THAT is the next thing we should automate. My thought was for:

the generated migration to already have everything in fillable
the generated migration to already have the relationships defined
the generated controller to already have all fields added (instead of using setFromDb())

Sorry guys @tabacitu @OwenMelbz  I know this issue is closed, don't think its worth creating another issue though. I just found this which looks promising. May be worth giving it a look and utilising it's backbone. I'm flat out mid semester at the moment, but if it's not done by the end of May i'd be keen to give it a crack.


RoundedBoxView round inner content/half circle

Is there a way to round the content in the box, for example an image or another box view. Is there a way to make a half circle?

Hey Josh,
From my knowledge the BoxView does not support having children or content, which makes the first case you are suggesting impossible.
There is not way to make half a circle just by using the RoundedBoxView.
Now all that being said. Here are some suggestions on how to accomplish what you are trying to do.

Create a RelativeLayout > Add RoundedBoxView as a child > Add the other content you want(image another boxview) and set the height and width to be less then the one of the RoundedBoxView which would constrain it to the inside of the circle
RelativeLayout > RoundedBoxView (to make your circle) > Add BoxView that is correctly positioned to cover the part of the Circle you don't want to display

@paulpatarinski Thanks for the help. I ended up using canvas.DrawPath with NControl for now. It's not the best way to handle it, but it'll do until I have time to figure something better out.


feat(snaefell-nft): smart contracts

[x] Adapt taikoon package into alpha-nft to deploy the Alpha Testnet NFT
[x] Replace source images with corresponding NFT
[x] Update whitelist
[x] Automate IPFS/4everland posting process
[x] Deployment structure
[x] CI Action

Blocked by this PR

I think we should put all NFT contracts in taikoon, use it as an umbrella project for NFTs please.


language in match generates error node

Below generates an error node. If I rename the language key to something else it works.
language: en
-

foo: "bar"

The worst part about this is that foo: "bar" gets interpreted as a matcher.

That's deeply confusing.

Can you confirm you're using the latest version? Can you share the tree?

I thought so too. That problem has also been confirmed by pokey
I believe so.
"tree-sitter-talon": "github:wenkokke/tree-sitter-talon#fd202684c693d1b893fe34575209452424cc9909"
https://github.com/cursorless-dev/vscode-parse-tree/blob/226baf3b9abe86fa223defa4334305d60dfb51ed/package.json#L118C1-L118C103
https://github.com/wenkokke/tree-sitter-talon/commit/fd202684c693d1b893fe34575209452424cc9909

After some more research I've finally figure out that it's not actually language. It's if the right hand value is less than three characters. ene is okay but en fails.

Thanks, that's very helpful!

I have filed a fix for this
#37


Question: why is the rust build in the Makefile using the MSVC "Debug" Runtime?

0.7.0
in Makefile
rust:
ifeq ($(OS),Windows_NT)
	set CFLAGS=/MDd

/MDd means using Debugging-Runtime as DLL (that means the Runtime is doing the typical more deep testing like Debug-Heap etc. )
https://learn.microsoft.com/en-us/cpp/build/reference/md-mt-ld-use-run-time-library?view=msvc-170
Debug builds should(could) use /MDd
but Release builds should use /MD - without the d
Microsoft MSVC behavior is different to Linux here because they provide Debug and Release Versions of Runtime - which are different in speed and active testing (same like with STL - which does in Debug builds also more testing at runtime)
also is the Debug-Runtime only installed when VStudio is also installed

I think that code was missed in #3226.
That target is only currently being used by the macos build pipeline in CI (everywhere else the build code has been inlined to add flags like --locked, which the macos build pipeline presumably would also benefit from). I think we either should get rid of it, or find a way to use it in CI so that it's actually tested.


Show screen share instead of video

If I enable the screenshare, I would like to show my screen instead of my video.
Is it something possible with recomposing? do you have any example?
Also, if I'm using the component in audience mode, how can I view the screen share from another participant?

That isn't a planned feature - you can share both your screen and video at the same time. If that's not something you want, you can add an event callback to mute your camera feed when you start screen sharing.

What will be the callback event? do you have any example?
I have tried using the callback Screensharing but it is never triggered. So how can I detect when the screen sharing starts and stop?

I tried to use the Screenshare callback, but looks like there is an issue... When the user press the button to start the screen  share session and the browser ask for the screen/window/tab to share, the event is triggered even if the user cancel the operation.
Also, when I finish a screen share session, the callback is never triggered.

I tried to use the Screenshare callback but looks like there is an issue... When the user presses the button to start the screen share session and the browser asks for the screen/window/tab to share, the event is triggered even if the user cancels the operation.
Also, when I finish a screen share session, the callback is never triggered.

I think it would be nice to create two separate events for when the screenshare button is clicked and when the actual screenshare is started. I'll add this to the roadmap.

In the end, I used the user-published event to detect the screen share uid. In that way, it is triggered only when the screen share has already started


Window channel for window open state not working

DONT'T DELETE THIS.
Please answer all questions as good as possible.
Language: english
Make sure you have read the documentation at https://github.com/danielperna84/custom_homematic#custom_homematic.
Make sure you have read the release notes at https://github.com/danielperna84/custom_homematic/releases.
Make sure you are running the latest version of the custom_component (and Home Assistant) before reporting an issue.
ENSURE that your Backend (CCU/Homegear/...) is working as expected and connected devices are controllable.
custom_component version (if applicable):
1.20.1
known last working custom_component version (if applicable):
?
Home Assistant version (if applicable):
2022.10.5
CCU version:

Model (CCU3, Raspi3):
OS (piVCCU):
Version: 3.65.8

Problem-relevant configuration:
Do you use tls? no
Do you use callback? no
Do you use username and password? yes
Which interfaces do you use (hmip/bidcos/wired)? hmip
Describe the bug
I want to set the window open state to force the radiator valve to close. I do this via node red. This is the json that is passed on without error.
{
"device_id" : "climate.hmip_etrv_b_00201d898ccXXX",
"channel" : "1",
"parameter" : "WINDOW_STATE",
"value" : "1"
}
Have also tried:
service: homematicip_local.set_device_value
data:
device_id: climate.hmip_etrv_b_00201d898ccXXX
channel: 1
parameter: WINDOW_STATE
value: 1
To Reproduce
fire the event.
Screenshots (if applicable)
no
Relevant HA log entries (full log)
no explicit entry
Expected behavior
Set window open state

climate.hmip_etrv_b_00201d898ccXXX is not a device id as you can see from the docs.
Better you use the UI. Afterward you can the the device id in yaml mode.
Option is to use the homematicip_local.set_device_value_raw and use an entity_id

I have tried to use a blueprint:
https://community.home-assistant.io/t/homematic-reduce-room-temperature-when-a-window-or-door-is-opened/341053
I am not sure but I think there are some things wrong:
`
variables:
blocking_entity: null
climate_target: climate.hmip_etrv_b_00201d898ccXXX
climate_id: '{{ state_attr( climate_target, "id") }}'
open_delay: 1
trigger:

platform: state
entity_id: binary_sensor.testkontakt_state
to: 'on'
for: 1
condition:
condition: template
value_template: >-
{{ (blocking_entity == none) or (states[blocking_entity].state == 'off')
}}
action:
service: homematic.set_device_value
data:
address: '{{ climate_id }}'
channel: 1
param: WINDOW_STATE
value: 1
wait_for_trigger:

platform: state
entity_id: binary_sensor.testkontakt_state
to: 'off'
continue_on_timeout: false

service: homematic.set_device_value
data:
address: '{{ climate_id }}'
channel: 1
param: WINDOW_STATE
value: 0
mode: restart
max_exceeded: silent
id: '1666793224526'
alias: Test
description: ''
`
For example, the service must be homematicip_local I think. The climate_id seems to be null.

This blueprint is for the old integration
There is a community blueprint that might work.

Thank you! I imported the blueprint manually. I used the old one because of an issue while importing.

So ultimately this issue is resolved. Sorry for falsely creating this issue.


Suppress docker-compose arg warnings.

If the user has not created a .env file, then they see warnings like
this when running docker-compose:
WARNING: The USER_ID variable is not set. Defaulting to a blank string.
WARNING: The GROUP_ID variable is not set. Defaulting to a blank string.

This fix provides defaults to docker-compose.yml to suppress this
warning.
resolves #2739
Follow-on to https://github.com/fishtown-analytics/dbt/pull/2741

@heisencoder thanks for opening this!
I think this warning is fixed in 0.18.1, I just haven't pulled that particular commit in to the kiyoshi-kuromiya branch yet. See this PR: #2768
I'd like to make sure the rest of that PR gets in as well, because it has another fix for the .env file behavior on macos that tripped some folks up (I don't really use make, so I didn't notice).

Actually, I just noticed that you fixed this already, so I'll drop the PR


Limit number of cores used by purs on CI

This made a fair difference for my project on CircleCI. Let's see if it helps on travis.

👍 Looks good!

Thanks!


Windows: uses %LOCALAPPDATA% instead of %APPDATA%

AppData% is a roamed persistent user settings.
%LocalAppData% is non-roamed machine-specific settings or other discardable kind of data.
And of course you want to backup %AppData% (but not %LocalAppData%, unless a braindead developer put persistent user settings in there).

https://jpsoft.com/forums/threads/difference-between-appdata-and-localappdata.8893/

Fixed in 7e5a3a7b6581183f5e6fb9500838cb11e8af5ed3.


Add custom statusline for vimodoro.

Vimodoro (https://github.com/VimfanTPdvorak/vimodoro) is a vim plugin which based on the vim-pomodoro plugin. I added integration to the task management app RTM (Remember the milk).

can you please update the documentation?

Thanks! Can you please update the documentation?

I have now updated the documentation. I hope I have not made any errors; I am relatively new to using Git and pull requests. Thank you.

thanks, I have merged it :)


The best practice to avoid unnecessary re-render and batch rendering in React Hooks

Two issues for this code
const [index, setIndex] = useState(0),
      [at, setAt] = useState(0);

handleState = () => {
  const nextIndex = evaluateIndex(window.innerWidth)
  if (nextIndex !== index) { <<<<<<<<<<<<< (1)
    setIndex(nextIndex);
  }

  const nextAt = evaluateAt(window.pageYOffset)
  if (nextAt !== at) { <<<<<<<<<<<<< (2)
    setAt(nextAt);
  }
}

useEffect(() => {
  window.addEventListener("resize", handleState);
  window.addEventListener("scroll", handleState);
  return () => {
    window.removeEventListener("resize", handleState);
    window.removeEventListener("scroll", handleState);
  }
});

unnecessary re-rendering issue
The if statment (1) and (2) are the way that I use to avoid the unnecessary render. Yes, two state variables are fine for now. If I have 10 state variables, then I have to put 10 if statements to perform a pre-check before calling setX. If so, it will be odd. Or did I do something wrong? And what is the best practice?
batch rendering issue
every time, I call setX, it will trigger the rendering immediately. for example, both nextIndex and nextAt are different from previous. The first setIndex(nextIndex) will trigger rendering along with the existing old at value because evaluateAt has not been executed. After the rendering is completed, it will continue to run evaluateAt and then setAt. At this moment, it will trigger rendering again with nextIndex and nextAt. The first rendering along with the existing old is not necessary. What should I do to avoid the first rendering with the old at? I want to batch them all. Should I change to use useState({at: 0, index: 0})?

Use the "useReducer" hook if you have a lot of state.

Two things:

state updates are asynchronous. When you call set***it will only rerender later on.
Also, if the new value is === the old value, I’m pretty sure React won’t actually go through with the update.

Yep, that’s basically === except it treats 0 and -0 as different and NaN as equal to itself.

state updates are NOT asynchronous, if they are called from a non react-controlled code. Like addEventListener.
Right  now you are more or less expected to use ReactDOM.unstable_batchedUpdates to handle (actually rare) situations like this.

Please file questions in the React repo rather than the RFC repo.


addEntrypoint via wxt module fails to register background script.

Describe the bug
trying to add a background script with addEntrypoint via the wxt module will not register the service worker if the user already has a background script.
Reproduction
The issue is how we generate manifests.json.
const background = entriesByType['background']?.[0] as
    | BackgroundEntrypoint
    | undefined;

we only take in the first background script, but the module API allows us to also define a background script, this is an important feature since we could add features to the background via modules such as updating CSP.
My proposed suggest would be to merge it with the user background script, or allow some way to add code to the existing background script, as well as support of adding config option values passed to the background script, such as (cspDomains) would be defined in the wxt config, and then the module would read this and make the changes.
I tried to mess around with the module configuration earlier, but it seems like this is something not implemented or broken.
Steps to reproduce
No response
System Info
PS C:\wxt\packages\wxt> npx envinfo --system --browsers --binaries --npmPackages wxt,vite

  System:
    OS: Windows 11 10.0.22631
    CPU: (24) x64 12th Gen Intel(R) Core(TM) i9-12900K
    Memory: 6.44 GB / 31.79 GB
  Binaries:
    Node: 18.20.2 - C:\Program Files\nodejs\node.EXE
    npm: 10.5.0 - C:\Program Files\nodejs\npm.CMD
    pnpm: 9.12.2 - C:\Program Files\nodejs\pnpm.CMD
    bun: 1.1.42 - ~\.bun\bin\bun.EXE
  Browsers:
    Edge: Chromium (124.0.2478.80)
    Internet Explorer: 11.0.22621.3527
  npmPackages:
    vite: ^5.0.0 || ^6.0.0 => 5.4.11

Used Package Manager
bun
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

this seems to be a duplicate of https://github.com/wxt-dev/wxt/issues/1038


Fix security vulnerability warnings

When running tests against Denali, I'm getting the following notice:
WARNING: Some packages in your package.json may have security vulnerabilities:
***<EMAIL_ADDRESS>***
Found in<EMAIL_ADDRESS>=><EMAIL_ADDRESS>=><EMAIL_ADDRESS>=><EMAIL_ADDRESS>=><EMAIL_ADDRESS>

A naive update to<EMAIL_ADDRESS>(which doesn't contain the needed update to findup-sync but gets us closer) ends up breaking building:
TypeError: Cannot read property 'directory' of undefined
    at Project._finishBuild (./Sites/open-source/denali-js/denali/lib/cli/project.js:143:25)
    at ./Sites/open-source/denali-js/denali/lib/cli/project.js:45:14
    at tryCatch (./Sites/open-source/denali-js/denali/node_modules/rsvp/dist/lib/rsvp/-internal.js:215:12)

The changes introduced here seem to be what broke us: https://github.com/broccolijs/broccoli/commit/899a227f1cb2f9fca6ea5bff50571d162a59bbf6

Yea, broccoli 1.x has some sizable breaking changes in the API. I remember trying to upgrade a while ago, but there was some plugin we were using that wasn't 1.x compatible and I didn't feel like rewriting it. I'd love to upgrade though ...
Another thing - it's a bummer that nsp doesn't allow you to ignore warnings by dependency. They only let you ignore specific warnings, regardless of where they appear in the dependency tree. In this case, the warning is about a DDOS vulnerability, but the vulnerable package is only used by broccoli, which is only at build time, so it doesn't matter. But nsp doesn't let you say "ignore vulnerabilities resulting from this dependency (i.e. broccoli)" - you can only say "ignore this vulnerability everywhere", which means if it appears in a runtime dependency (where it would actually be a problem) it would be ignored there too.
We could potentially add our own API (i.e. config.nsp.ignoredDependencies) that would simply not print errors from those packages ...


Error with files that have import { type Something}

Hey, this plugin doesn't work when types are imported inside {} of an import.
This is an example, and an error message.
✖ prettier --write:
[error] packages/[NDA]/index.tsx: SyntaxError: Unexpected token, expected "," (2:7)
[error]    1 | import {
[error]    2 |   type ComponentProps,
[error]    3 |   type ComponentType,
[error]    4 |   memo,
[error]    5 |   useCallback,
[error]    6 |   useMemo,
[error]    7 |   useRef,
[error]    8 |   useState,
[error]    9 | } from 'react';

Your Environment

Prettier version: 2.5.1
node version v16.14.2:
package manager: yarn@3
IDE: VScode, CLI]

Configuration File (cat .prettierrc, prettier.config.js, .prettier.js)
{
  "endOfLine": "lf",
  "jsxSingleQuote": false,
  "printWidth": 80,
  "trailingComma": "all",
  "singleQuote": true,
  "importOrder": ["react(.*)$", "<THIRD_PARTY_MODULES>", "@NDA/(.*)$", "^[./]"],
  "importOrderSeparation": true
}

This is caused by the project locking to an old babel version.  It's fixed in IanVS/prettier-plugin-sort-imports if you'd like to give that a try.

running into the same issue

If yarn is used, this error could be solved by fixing babel packages to the newest versions like this:
  "resolutions": {
    "@babel/core": "^7.18.2",
    "@babel/generator": "^7.18.2",
    "@babel/parser": "^7.18.4",
    "@babel/traverse": "^7.18.2",
    "@babel/types": "^7.18.4"
  },


Template Review Feedback

Evaluated your template for the Gallery, please provide a documentation either in the template file or link to a public page with documentation with how user's are expected to populate the url parameter. Please mark this issue as closed once you are done and we will re-review.

Added help about how to populate the url field. Thanks for the review!


Support central DHIS2 app store

Support retrieving the list of available (and compatible) apps from the central DHIS2 app store.

Done!


Fix makers formatting

Fixes #533
There are two commits, the first fixes the issue, the second one fixes cargo make ci-flow on Windows.
The reason why formatting works when you run makers indirectly (through cargo run or cargo make) is that cargo use a special print function: https://github.com/rust-lang/cargo/blob/e4aebf0a039ca3787f3ce98a9d469a3187f83706/src/cargo/core/shell.rs#L327-L340 with Windows-only code. Note: There are multiple Unix/Windows "hacks" in the linked file to make the shell work as expected.
Another way is to enable ANSI support globally, just like Trunk or other apps do it. This approach has been used in this PR.  We need to call a native API to enable it: https://github.com/ogham/rust-ansi-term/blob/ff7eba98d55ad609c7fcc8c7bb0859b37c7545cc/src/windows.rs

@MartinKavik thanks a lot!!!
few questions:

second one fixes cargo make ci-flow on Windows.

what does this mean? i'm running ci flow on windows today, so what was i missing?
why do we need all those removals of './'?
(again, i don't have windows, so i only look at the github windows execution which seems ok.

For Windows users: You need to allow to run PowerShell scripts

can you explain this one? why do we need powershell for cargo make? i usually default to cmd.

what does this mean? i'm running ci flow on windows today, so what was i missing?
why do we need all those removals of './'?

It's pretty "standard error" for many tools on Windows. The first related issue I was able to find: https://github.com/rust-lang/rustfmt/issues/1873. It happens at least in Git Bash and PowerShell. Maybe it will be fixed in the next rustfmt version or it already works in nightly or there are other factors, who knows :) I would be probably able to track the real problem, but I don't want to kill time unless necessary.

can you explain this one? why do we need powershell for cargo make? i usually default to cmd.

ci-flow with the default PowerShell settings:

One test:

You can switch between cmd and poweshell multiple ways and a Windows update has changed the default shell to PS. I don't know which settings affect the cargo-make scripts but probably there is a way.

Codecov Report

Merging #535 (901cc3d) into master (ccce394) will decrease coverage by 27.59%.
The diff coverage is n/a.

:exclamation: Current head 901cc3d differs from pull request most recent head 419f3c5. Consider uploading reports for the commit 419f3c5 to get more accurate results

@@             Coverage Diff             @@
##           master     #535       +/-   ##
===========================================
- Coverage   92.92%   65.33%   -27.60%
===========================================
  Files          98       98
  Lines       18672    18672
===========================================
- Hits        17351    12199     -5152
- Misses       1321     6473     +5152

Impacted Files
Coverage Δ

src/lib/cache.rs
58.46% <ø> (ø)

src/lib/cli.rs
36.16% <ø> (-53.58%)
:arrow_down:

src/lib/cli_commands/diff_steps.rs
100.00% <ø> (ø)

src/lib/cli_commands/list_steps.rs
94.02% <ø> (-2.99%)
:arrow_down:

src/lib/cli_commands/print_steps.rs
83.33% <ø> (ø)

src/lib/command.rs
92.92% <ø> (-0.89%)
:arrow_down:

src/lib/condition.rs
90.61% <ø> (-7.05%)
:arrow_down:

src/lib/config.rs
75.86% <ø> (ø)

src/lib/descriptor/cargo_alias.rs
88.23% <ø> (ø)

src/lib/descriptor/descriptor_deserializer.rs
63.88% <ø> (ø)

... and 83 more

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 ccce394...419f3c5. Read the comment docs.

@MartinKavik thanks a lot for the answers :)

./ issue - feels like rustfmt issue. strange one by the way. but thanks for explaining and let's keep your fix.
powershell - forgot about that test. i usually run that in CI which has powershell scripting enabled, so never saw it.
I'll probably extend your comment in the contribution doc a bit.

Will probably merge it later today/tomorrow.
I'll first create a new dev branch for it.

Ran few manual tests on linux. looks awesome. thanks again @MartinKavik
you can now update the second PR so i can merge it as well (i tested it also).


Error

ERROR in vendor.33d6a985.js from UglifyJs
SyntaxError: Unexpected token punc «(», expected punc «:» [../~/react-modal/lib/helpers/refCount.js:4,0]

and after update 1.7.5 too

This is the gift that keeps on giving.  I'll get a fix up.

Give 1.7.6 a shot


Assetto Corsa 1.12

added a few more cars to carclasses, and a few other fixes.

I can close this again incase you want to wait untill next update ?

no, let's put it in. Any reason why those control input mappings were removed? Just cos they aren't used anywhere? Or is the data no good? I don't think we use them for anything with Assetto, but we might find a use for them

ah, ignore me, i see it's mapped twice :)

was just about to say.

is there anything else you'd like in the next release for Assetto?

No i think this is it ofr now.

good stuff. I won't package it until just before I release it (Tuesday evening i think) so there's still time to add changes if we need to


Running actor in different modes

Allow to only run in worker or server mode, as well as current default mode. Also moving actor management APIs from http routes. Advantages
Isolation between different goals of Kafka consumption and HTTP serving
Easier orchestration, as stream upgrade process can be significantly different from HTTP

@hogaur Can I pick this up?

@RajatVaryani Yeah sure, Go ahead. Assigning it to you.
Let's discuss the approach here.

Sure. What do you have in mind?

I was thinking to have three optional options passed while starting the app with Ziggurat such as server, worker(consumes from RabbitMQ), stream-worker. Then these options can be passed to ziggurat so that it figures out what states to start.

That will work. We will also require a config variable right? To control the mode in which the actor runs? We will use the value of that config in ziggurat's main and then pass on to start function?

Actually, I think config variable approach is better. Yeah, we can go ahead with that. wdyt @theanirudhvyas ?

What I had in mind was to pass the mode in a command line argument. This way you don't need separate configs for different modes. And the mode in which ziggurat runs is decided by the arguments passed at startup.
I'm not sure if one approach is better than the other. I propose we do an analysis of both the approaches first (or any other approach that we can come up with). @RajatVaryani @kartik7153

@theanirudhvyas Do we want the users of the library to quickly change the mode the actor runs in? If that is the case then config would be easier.  Wdyt?

Even if you go the config way, you will still have to restart the service after a config change, how would it be easier?

I had a conversation with @RajatVaryani where we discussed that going with the config approach will not require a change in the way ziggurat applications are deployed.
But it turns out that is not true. With different modes, we want different instances of our application to run in different modes simultaneously. This will require us to send different config-map to each instance and thus will require a change in the way we deploy.

@RajatVaryani we should properly analyze as to how each approach will be implemented and what all changes will be required so that we don't make the same mistake in further discussions.
We can split the work if you want.

@theanirudhvyas Then it's clear to ahead with the command line argument approach right?

@RajatVaryani Yeah. Please go ahead with the command line approach.

@RajatVaryani yes, command line approach makes sense now. How are you going about implementing it?

@theanirudhvyas Let me analyze first and then get back to you. I have few questions as well.

Should we make the command line argument a mandatory parameter?
If not, what would be the default value of the argument?

@RajatVaryani the argument does not have to be mandatory. By default, we can run all 3 procs.
In the command line arguments then we can pass the set of procs that we wish to run, if we don't want to run all of them.
The 3 procs are:

http server
kafka worker
rabbitmq worker

Also could you analyse whether the command line options will except a set of procs or only 1 proc?
For e.g. (kafka-worker + rabbitmq worker). Or should we support only 1 proc at a time?

@theanirudhvyas As far as my understanding goes, rabbitmq worker is coupled with kafka streams to add retry, dead letter queue capability. Would it be a good design approach to give access to start different procs? (We might start the kafka worker with retry enabled and not pass rabbitmq worker when ziggurat starts). An alternative approach would be to give only http mode, worker mode and default mode. Wdyt?

@RajatVaryani Kafka-streams would always start with rabbitmq. But that is not true the other way round, where you would only want to run rabbitmq consumers (and not kafka-streams), in the case where we are flushing rabbitmq queues (while rabbit migration for e.g.). HTTP-server can be its own proc.
We should also consider that

should we give the functionality to run is streams mode with rabbitmq consumption (it will only push messages to rabbitmq). I can't think of a usecase where this will be needed though.
should actors running only in consumer mode or stream mode have basic apis (like health-check)?

@RajatVaryani could not continue with this, due to some personal responsibilities. So, I will take this up.

So there are three procs.
stream worker
retry worker
HTTP API
I was thinking that ping API would be present in HTTP API mode (no breaking change).
we can make new health check API for retry worker because of management APIs.

API changes
Currently, the main fn takes 4 arguments with actor routes as an optional argument.
Now, to make things backward compatible we have added one more arity in accepts map as an argument
(defn main [{:keys [start-fn stop-fn stream-routes actor-routes modes]}])


extend data_downloader to one or two more datasets and add one notebook only to download and explore the different datasets

The current code in opensense_data_downloader_and_transfomer.py supports downloading three datasets: The pycomlink example data, the E-Band data from Czech Republich and the Dutch CML data. For the Durch CML data the transformation to xarray.Dataset with correct metadata is already working. For the pycomlink data it is not required. Hence, the next logical step is to do the transformation for the E-Band data.
In addition, it would be good to have one separate notebook that shows how to download, transform and explore the datasets. Any processing examples should live in their own notebook in the future.

Closed in #11


feat(tutorial): complete step 3-boeblingen

Closes #
{{short description}}
Changelog
New

{{new thing}}

Changed

{{change thing}}

Removed

{{removed thing}}

@DanielaImmel Looks great 🏆! I've recorded your completion of step 3.
PS: Please take a look at your PRs for the steps 1 and 2 - there are still some changes needed.


"--include-merged-tags" not working in "lerna publish" and "lerna version"

Describe the bug
when use "lerna changed",it is found 1 package ready to publish, but when use  "lerna publish" or  "erna version", it is assuming all packages changed
Expectation
In the above questions，found 1 package ready to publish is right, so expect the "lerna publish" and "lerna version" behavior to be consistent with the "lerna changed" behavior
Reproduction
Git log need contain "Merge branch xxx".
The following steps may be required for problem recurrence:

Create a new branch
publish a package,
merge the branch into the master,
create another branch,
and change another package for publishing

Lerna config and logs
lerna.json

<!-- Please paste your `lerna.json` here -->

lerna-debug.log

<!-- If you have a `lerna-debug.log` available, please paste it here -->
<!-- Otherwise, feel free to delete this <details> block -->

Environment Info
System:
OS: macOS 11.3.1
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 126.13 MB / 16.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
Yarn: 1.22.19 - ~/.nvm/versions/node/v16.13.0/bin/yarn
npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
Browsers:
Chrome: 110.0.5481.177
Firefox: 78.9.0
Safari: 14.1
Used Package Manager
pnpm
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion.
[X] The provided reproduction is a minimal reproducible example of the bug.

can't help without a repro and this code came from the original Lerna code

can't help without a repro that I can clone, also this code came from the original Lerna code and the behavior didn't change. I would also suggest to look at Lerna's issues to see if there's anything similar. It's also not very clear if run this command from master branch or a different branch, Lerna doesn't always produce expected result when on a different branch, for example this Stack Overflow question
A possible alternative is to use lerna publish from-package

I also use Lerna, and  the result of Lerna is right. Currently, there is no way to provide repo, because this is the company's private library.

The implementation should be the same as Lerna, there aren't much differences in code from to Lerna vs Lerna-Lite (the only major difference is that Nrwl are starting to add a lot of Nx related code which will not be added to Lerna-Lite).
There are Jest unit tests that exist for lerna version --include-merged-tags in here and these tests are still passing. The code came from Lerna, I don't think that I modified anything related to it, so it should work as intended

The implementation should be the same as Lerna, there aren't much differences in code from to Lerna vs Lerna-Lite (the only major difference is that Nrwl are starting to add a lot of Nx related code which will not be added to Lerna-Lite).
There are Jest unit tests that exist for lerna version --include-merged-tags in here and these tests are still passing. The code came from Lerna, I don't think that I modified anything related to it, so it should work as intended

The reason is found. It is the tag pattern problem. The lerna-lite publish and version command will pass the isIndependent parameter when calling collectUpdates, and set tagPattern="*@*" in collectUpdates. The code is as follows:
https://github.com/lerna-lite/lerna-lite/blob/4fe2a7051f41052665b5da601eabf3fed803a746/packages/core/src/utils/collect-updates/collect-updates.ts#L47
In version conventional-commits, tagPattern is also set：
https://github.com/lerna-lite/lerna-lite/blob/4fe2a7051f41052665b5da601eabf3fed803a746/packages/version/src/conventional-commits/get-commits-since-last-release.ts#L57
For some reasons, my project cannot set tagPattern as *@*, so whether it can support custom tagPattern.Thank you very much.

in that case it must be related to issue #220 and PR #311, @StarpTech might have more details to share, in any case feel free to create a Pull Request if you know how to fix it

My usage scenario is in the company's automated process, so the tag is automatically added by the automated process, and the module name is used as the tag, such as lerna-project_ 1-0-32-1_ PD_ BL.

@xueran
By the way, on a totally different subject, I saw that you opened a new issue in Lerna not long ago

The publishConfig of lerna is different from pnpm , it is not support "main" , "module" and "types"

a similar issue was also opened in Lerna-Lite under #404 and we did resolve this issue with PR #415, so this should work as expected in Lerna-Lite. I've set a list of properties to be overridden, you can see the list below (the list is actually a copy of what pnpm have in their own repo)... so anyway, I just thought of letting you know in case you didn't know that this issue was actually fixed in Lerna-Lite (requires >=1.13.0) but wasn't fixed in Lerna itself (at least not yet)
https://github.com/lerna-lite/lerna-lite/blob/2e9dc7aef1d98f006d78b1596af2acdc37266f4c/packages/publish/src/lib/override-publish-config.ts#L3-L21

@ghiscoding I don't know the repo so well. Filtering tags based on '*@*' was required not to include tags from others that aren't managed by lerna lite. I don't see how it can conflict with lerna at all. Based on your provided information, it's hard to understand your use case @xueran.

I also use Lerna, and the result of Lerna is right. Currently, there is no way to provide repo, because this is the company's private library.

Please provide a repro with your lerna.json, and expectations. The source is not important.


Add static typing with typing/mypy.

Provide type hints on all functions.
Provide type hints on some variables where it's not obvious.
Change some config functions config to throw errors.
They formerly (inconsistently) returned bools.
Catch exceptions in main.
Run mypy on Travis CI to check typing is fine.
Favor import X over from X import for everything but typing.
from import used for typing due to how much typing it adds.
Fix some places in tests where use_backlog still existed.

Changes Unknown when pulling 3f3e19ac17bc8cde51cf305a9d580e87a347406e on #5-implement-static-typing into ** on master**.

Hell Yeah


LDR overview and monitoring pages

This PR adds the Monitoring page and General Overview page for the LDR section.
Preview
Overview page
Monitoring page
This PR is 2 of 4(?) for LDR docs. It contains:
Overview: General description of LDR and its features/use cases
Monitoring LDR: This is a page that describes what is available for monitoring and links out to the relevant docs material
Reviewers: You'll see a lot of comments for follow-up PRs to connect pages with links and such.
Content pages to come:
CREATE/SHOW sql ref
Technical Overview
LDR Metrics Dashboard docs
PR 1 #19043

TFTRs!


broken on Hibernate ORM master

Hibernate Reactive doesn't work against current master of Hibernate ORM.
All the tests fail with something like:
Caused by: org.hibernate.AssertionFailure: possible non-threadsafe access to the session
	at org.hibernate.reactive.loader.ReactiveResultSetProcessor.initializeEntity(ReactiveResultSetProcessor.java:55)
	at org.hibernate.reactive.loader.ReactiveLoaderBasedResultSetProcessor.lambda$reactiveInitializeEntitiesAndCollections$3(ReactiveLoaderBasedResultSetProcessor.java:142)
	at org.hibernate.reactive.loader.ReactiveLoaderBasedResultSetProcessor$$Lambda$364/0000000000000000.apply(Unknown Source)
	at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:995)

The cause appears to be the changes committed on Jul 30 by @yrodiere.

To be specific, I believe it's one of these commits that has caused the problem:

3bdc5af63d514af8b47fe0016606eddfd37b8e7c
2c98ab236d16646774b1dfb02bde11c6f6be9f66

Ok, so it's my fault. How can I help you?

Ok, so it's my fault. How can I help you?

No, it's not your fault, it's the fault of we have no mechanism in either project to detect when something like this happens. Its only by pure chance that I got lucky and noticed this quickly instead of weeks later when tracking down the cause of the breakage would have been much more difficult.
So we're going to need to come up with some way to find problems like this automatically, and it's not clear what's the best way to do that.

So after carefully looking over the commits, I think it looks like all we're going to need to do is replicate those changes over to our copy/paste-job code. If I'm understanding correctly, we just need to know how to interpret these nulls in the list of hydrated objects.

So we're going to need to come up with some way to find problems like this automatically, and it's not clear what's the best way to do that.

To begin with, we can create a JOB that tests with the latest ORM snapshot

To begin with, we can create a JOB that tests with the latest ORM snapshot

Well sure, but is there a way to make it run on a schedule? I had the (perhaps wrong) impression we couldn't do that.

So we're going to need to come up with some way to find problems like this automatically, and it's not clear what's the best way to do that.

To begin with, we can create a JOB that tests with the latest ORM snapshot

I have something similar for Hibernate Search. Every time the ORM build finishes, I run a Hibernate Search build that uses the latest Hibernate ORM snapshot. However, I can only do that because I'm using Jenkins jobs, and they allow triggering a job after another job finishes.

I have something similar for Hibernate Search. Every time the ORM build finishes, I run a Hibernate Search build that uses the latest Hibernate ORM snapshot. However, I can only do that because I'm using Jenkins jobs, and they allow triggering a job after another job finishes.

That would be perfect except we don't have Jenkins here yet :-/

I'm going to create one.

I'm going to create one.

OK great.

The problem is fixed in #311.

@Sanne when is the next release of ORM?

hi @gavinking , micro releases of ORM are triggered on demand. We do one tomorrow if it's urgent, or we can wait for more PRs if that suites you better. Just let me know what's your preference.
Do I understand correctly that nothing else beyond https://github.com/hibernate/hibernate-orm/pull/3484 is required?

hi @gavinking , micro releases of ORM are triggered on demand. We do one tomorrow if it's urgent, or we can wait for more PRs if that suites you better. Just let me know what's your preference.

Well, it's not super-urgent, but it would be nice to be able to merge #310 and #311 and not have them on my mind.
So sure, it would be nice, unless we can think of something else we need.

Do I understand correctly that nothing else beyond https://github.com/hibernate/hibernate-orm/pull/3484 is required?

I believe that #311 completely fixes the problem.

It's available now https://in.relation.to//2020/08/10/hibernate-orm-5/

It's available now

Awesome, thanks, I will merge everything tonight then!


Weird indentation for method call

The following:
           new_style = context.stylist.style_for_anonymous::<E>(
                &context.guards,
                pseudo,
                &new_style,
            );

gets formatted as:
           new_style =
                context
                    .stylist
                    .style_for_anonymous::<E>(&context.guards, pseudo, &new_style);

which turns out to be longer horizontally than the original.

On master, I get
    new_style = context
        .stylist
        .style_for_anonymous::<E>(&context.guards, pseudo, &new_style);

We don't try and give the shortest (in any dimension) formatting, rustfmt just sticks to rules which are defined to give a clear, fairly succinct formatting. In this case we prefer keeping the short function call on one line rather than the chain, which reflects precedence.


Report non existent file

Hi Bryan,
Currently rflint doesn't report an error when run on a non-existent file, or a file it can't open for some other reason, only giving a message on stderr. This changes that behaviour, by going through RfLint.report to report the error. As a result the error message is formatted according to the --format option and update the exit code.

Hi @boakley ,
Can I also prod you to have a look at this PR?
Again, if there is anything I can do to help you review it, please tell me. I actually have a few more changes I'd like to submit, so if I can make your job easier don't hesitate, that'll make the process more enjoyable for all!


Please help a poor windows user

First of all, congratulations on the latest release.
My situation is:

C++ application with OpenCL 1.2 kernels, running on windows but is portable to Linux.
(video compression app, makes heavy use of OpenCL images, events )
Windows 10 Crimson with 2x 470 4GB cards
i7 6600 CPU, ASUS mb

I am looking for a simple, tested, step-by-step guide to getting my app running on ROCm.
i.e.

which operating system (hopefully xubuntu, since I am familiar with that)
which graphics drivers
how to do the ROCm install

I tried installing xubuntu 16.04 a few months ago when I got my system, but I wasn't able to get the graphics drivers to recognize the cards, so had to wipe and install windows 10.  But,  I would like to use Linux as my main target OS, so ROCm will be perfect if I can get it running.
Any guidance here would be greatly appreciated.
Thanks!
Aaron

You just need to install ROCm as explained in the README.md.
Just do:
wget -qO - http://packages.amd.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add -
sudo sh -c 'echo deb [arch=amd64] http://packages.amd.com/rocm/apt/debian/ xenial main > /etc/apt/sources.list.d/rocm.list'
sudo apt-get update
sudo apt-get install rocm
Restart your computer and your good to go.
For the operating system I think Ubuntu 16.04 is a solid choice.

thanks @rjfnobre .  So, I would like to use 16.04. What about graphics drivers ?

The drivers are included in ROCm.
From the REAME.md:

As a result, the ROCK driver is composed of several components based on our efforts to develop the Heterogeneous System Architecture for APUs, including the new AMDGPU driver, the Kernel Fusion Driver (KFD), the HSA+ Runtime and an LLVM based compilation stack for the building of key language support.

Great, thanks! Have you managed to build an OpenCL app with ROCm ? I noticed you were having some difficulties earlier.


Check-health for Kafka Collector

Use Admin Client API to validate that communication with Kafka brokers is working correctly.
Attempt to fix #2098

lgtm!

can you do the same in zipkin-reporter?


Complicated aliasing issue when passing modules as arguments in transforms

For a setup-style module with helper methods, under named_call or other transforms we raise a name-reuse error when a helper-method takes a self.some_submodule as a method argument.
For instance the simplest breaking example, reduced from a user bug, is:
k = random.PRNGKey(0)
x = jnp.ones((2,))
class Foo(nn.Module):
  def setup(self):
    self.inner = nn.Dense(2)
  @nn.jit
  def helper(self, x, m):
    return x   # we don't even need to call 'm' to trigger the issue!
  @nn.jit
  def __call__(self, x):
    return self.helper(x, self.inner)
vs_bar = Foo().init(k, x)

Here, we pass local submodule self.inner as a helper-method argument.  This means that inside a transform dedup_scopes will already create the child scope for self.inner from the scope of self.  However, when setup is actually called "non-shallowly" inside the transform this causes a name-reuse error.
I tried fixing it by not having dedup_scopes reserve names during push, but of course that breaks detection of compact-style name conflict:
k = random.PRNGKey(0)
x = jnp.ones((2,))
class Foo(nn.Module):
    @nn.jit
    def helper(self, x, m):
      a = nn.Dense(2, name="a")
      return m(x)
    @nn.jit
    @nn.compact
    def __call__(self, x):
      a = nn.Dense(2, name="a")
      return self.helper(x, a)
vs_bar = Foo().init(k, x)

I also tried some complicated lifecycle state-management tweaks in an earlier flawed PR...  I'm not sure how to fix this error.  I'm not even sure how to reliably throw a more helpful error since even detecting this sort of aliasing is just as hard as handling it correctly.
I might be able to fix things if I moved name reservations back into the linen level vs. at the scope level?  But I'm not actually sure and that's a large change.
Honestly at this point I'd be tempted to remove the ability to pass Modules as arguments altogether, but I'm afraid a ton of our users are already using this feature... so ideally I'd like to find a way to rule out this class of obscure bugs.

I believe #1745 handles this issue correctly.  We need to evaluate static checks on setup immediately via abstract evaluation for name-collision, but under transforms allow scope-name aliasing by calling push with reuse=True.

@levskaya is this completly fixed now?

I had forgotten to handle one other line doing a "name-check on scope" in #1745, but #2001 should resolve that and let us close this.

#1745 and #2001 should fix this.


GDScript: Fix error message for LUA-style dictionary

Changed confusing error message when typing an incorrect dictionary syntax.
Old error message:
Expected identifier or string as LUA-style dictionary key.

I replaced it with two error messages:
When typing
var foo = {
  1 = "bar"
}

Expected string literal as dictionary key.

When typing
var foo = {
  1+1 = "bar"
}

Expected identifier or literal as dictionary key.

Fixes #74821.

I think that mentioning the style (in one form or another) is necessary, since in the case of a Python style, the key does not have to be an identifier or a string literal, it can be any expression.

And it's Lua, not LUA in any case.

I think that mentioning the style (in one form or another) is necessary, since in the case of a Python style, the key does not have to be an identifier or a string literal, it can be any expression.

The problem is that it is necessary for the user to have any knowledge of either Python or Lua to understand this error message, which is not always the case. Maybe we need to be more specific.
This is what occurred to me:
Expected string values for keys declared with an equals sign.

But the concept of Lua vs Python style dictionaries are in the documentation

I would mention a practical example while also calling it Lua-style (not LUA, it's not an acronym).

So I kept the original message but changed LUA to Lua and added a one-line dictionary example.
Expected identifier or string as Lua-style dictionary key (e.g "{ key = value }").

Thanks!


sign-up-and-sign-in-and-add-user

This is my first version of project, that have some functions, how add user and sign in and sign up, using graphical interface of class joptionpane and also select option of menu on which the user wanted.

commenting my code