Add progress log

It would be nice to report some intermediate calculation progress as log info messages. For large data the process can be relatively long and progress info will help.

That sounds like a very sensible thing to do. I am not really an expert on the best way to do that -- ideally I want to be compatible with both script usage, and usage inside Jupyter and look good in both. I would welcome suggestions on how best to do that.

You can use standard python logger, example from gensim: https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/ldamodel.py#L652

Thanks, that looks like the sort of thing I need! I'll see if I can get something like that integrated soon.

I would be willing to implement a first pass at this.

That would be greatly appreciated! Pull requests more than welcome.

Resolved.


Selective Metric Downsampling

Is your proposal related to a problem?

Metrics have different needs and importance, as well as different characteristics like time series cardinality.  In certain situations it may be desirable to exclude certain metrics from the downsampling aggregations.  Particularly, I'm thinking about high cardinality time series metrics, which have a large impact on disk space compared to datapoints as documented: https://github.com/thanos-io/thanos/issues/813 https://github.com/thanos-io/thanos/blob/master/docs/components/compact.md
Allowing for granular selection of which metrics to downsample would allow for optimized long term retention of certain metrics, while allowing for others to only use storage for shorter periods of time (assuming your raw retention is shorter).  It is also possible certain metrics would not lend themselves to needing/wanting to view downsampled results, again adding to the overhead.
Also worth noting that my primary use case is centered around the Thanos Receiver, not Prometheus based collection.
Describe the solution you'd like

I am just beginning to learn how the compactor works, so it is possible this idea would not be efficient.
Metrics that we do not want to be downsampled could be stored with a tag downsample=false (or something similar).  The compactor could then exclude all of these metrics from its downsampling.
Describe alternatives you've considered

https://thanos.io/tip/components/tools.md/#bucket-rewrite looks like it could achieve a similar result, but would require an extra step in the process.
Another option I see is if the Thanos Receiver could filter out selective metrics from being forwarded on to the Thanos S3 store, as long as the retention and replication on the receivers was sufficient for the data you only want short term.
Additional context

The data I'm thinkin about specifically is things like system process level data, and to a lesser extent kubernetes containers.  When using Thanos to store process data, the cardinality of process time series could have huge variations from system to system.  In order to still collect this data safely, being able to exclude it from the longer term retention could be of benefit for deployments.
For example, if you are monitoring 10,000 systems, each uploading 100 datapoints per minute, that is 1M time series.  Of those 100 datapoints, 99 are static time series and 1 changes each minute (eg a short lived process), then over a day you have 1440 new time series for the system.  If this happens on each of the 10,000 systems, then you have 990K static time series and a new 14.4M time series for the environment.  Over a year, that works out to 5.256 billion time series.

Looks like a duplicate of https://github.com/thanos-io/thanos/issues/903, or at least would be covered by that feature.


Hide default values on annotations

Default values should not be present on annotations, especially if they are not present in the original schema

Done.


fix: stickyHeaderIndices

Summary

Ignore stickyHeaderIndices prop from Styled FlatList as its value is a valid breakpoint format
Fix #3963
Signed-off-by: Egi Ginting<EMAIL_ADDRESS>

Thanks for working on this. This will be resolved in 3.2, we won't need ignoreProps from 3.2. Only styled props will be checked for responsive values :)

Thank you for the information, can't wait for v3.2


Fixes #896: Fixing available version retrieval; enabling allowSnapshots

Version range should not be specified in the retrieval at all; removed.
If provided, the actual version range restriction should be used, and not the result of the toString() method
Also, allowSnapshots was ignored for the mojo; corrected

@slawekjaranowski please review

Also corrected the way how range was interpreted if also a concrete version was passed inside the VersionRange object.


Remove "I have performed a self-review of my changes" from the pull request template

Description
We don't have a CLA but the guidelines should be help enough.

[x] I have read and understood the contributing guidelines

Removing the "I have performed..." item from the template, as per our recent discussion, since the content seems to potentially be mis-understood.

Thanks; merging...

Released in v1, v1.18 and v1.18.2. Thanks.


WIP: hashes: Create a new crate level API

Make a start on writing a new crate level API for the hashes crate.
Is this anything like what you had in mind @apoelstra? Feel free to tear it apart, I will not be offended.
Questions

Should we provide an easy to use API that defaults to using sha256?
Should we provide the same API but in submodules so that the following two calls are identical?

        let digest = hashes::hash_file(&f);
        let digest = hashes::sha256::hash_file(&f);

Comments on the function names?
What else should we provide?

Notes
Tests provided in extended_tests/api crate, copied here:
use std::path::PathBuf;

fn main() {
    hash_a_string();
    hash_some_bytes();
    hash_a_file();
}

fn hash_a_string() {
    let s = "some arbitrary static string";
    let _digest = hashes::hash_str(s);
}

fn hash_some_bytes() {
    let bytes = b"some arbitrary bytes";
    let _digest = hashes::hash_bytes(bytes);
}

fn hash_a_file() {
    let file = PathBuf::from("src/main.rs");
    let _digest = hashes::hash_file(&file).expect("failed to hash file");
}

No, sha256 shouldn't be the default.
If we have a hash_file we should definitely have a hash_write (and I'm not even sure we should have hash_file in this case).
I don't think it makes sense to have a "primitives" module here.
We also need some top-level API for creating a hash engine and feeding bytes into it.

This can go on ice till #1555 comes back to life, I should have looked around more before starting.

This is stale now, see #2770


BFormRadio warning when bound to an object

When a BFormRadio is bound to an object, in development mode following warning is displayed
[Vue warn]: Invalid prop: type check failed for prop "modelValue". Expected Boolean | String | Array, got Object
The prop modelValue definition does not specify the Object option.
This is a warning in development, but I'm not sure if it doesn't create an error in production mode.

Let me ask you a question, despite that warning, the behavior it's correct when you bound it to an Object? If the answer is yes, I believe it's as simple as changing the prop type inside the component.

Yes, the behavior is correct. It is indeed a matter of changing the property type definition.
I've tried that, but then other typescript errors appear.
So it needs a bit more TLC

I agree that the former implementation that has been kept (behaving like checkboxes) was not correct.
This should be solved in https://github.com/cdmoro/bootstrap-vue-3/pulls


KITTI to XVIZ conversion error

KITTI to XVIZ converter generates corrupted files which gives error while parsing on browser. Everything works fine with the already converted KITTI data available in XVIZ-data directory.
https://github.com/uber/xviz-data/tree/master/kitti/2011_09_26_drive_0005_sync
Tried with different data streams from the KITTI website but the issue is the same.
4f8cbb35-d1bd-4b30-983a-dc0efd5cd9db:8 Uncaught TypeError: Cannot convert undefined or null to object
at Float64Array.set (<anonymous>)
at 4f8cbb35-d1bd-4b30-983a-dc0efd5cd9db:8
at p (4f8cbb35-d1bd-4b30-983a-dc0efd5cd9db:8)
at 4f8cbb35-d1bd-4b30-983a-dc0efd5cd9db:17
at Array.forEach (<anonymous>)
at 4f8cbb35-d1bd-4b30-983a-dc0efd5cd9db:17
at t.default (4f8cbb35-d1bd-4b30-983a-dc0efd5cd9db:17)
at y (4f8cbb35-d1bd-4b30-983a-dc0efd5cd9db:8)
at d (4f8cbb35-d1bd-4b30-983a-dc0efd5cd9db:8)
at t.parseXVIZMessageSync (4f8cbb35-d1bd-4b30-983a-dc0efd5cd9db:8)

The converter generates the files without any error
ubuntu@ubuntu1904:~/xviz/examples/converters/kitti$ yarn start -d
/home/ubuntu/xviz/scripts/../data/kitti/2011_09_26/2011_09_26_drive_0048_sync -o
/home/ubuntu/xviz/scripts/../data/generated/kitti/2011_09_26/2011_09_26_drive_0048_sync/ --
disable-streams=image_00,image_01
yarn run v1.19.1
warning package.json: No license field
$ node ./src/index.js -d
/home/ubuntu/xviz/scripts/../data/kitti/2011_09_26/2011_09_26_drive_0048_sync -o
/home/ubuntu/xviz/scripts/../data/generated/kitti/2011_09_26/2011_09_26_drive_0048_sync/ --
disable-streams=image_00,image_01
/home/ubuntu/xviz/scripts/../data/kitti/2011_09_26/2011_09_26_drive_0048_sync
/home/ubuntu/xviz/scripts/../data/generated/kitti/2011_09_26/2011_09_26_drive_0048_sync/
Converting KITTI data at
/home/ubuntu/xviz/scripts/../data/kitti/2011_09_26/2011_09_26_drive_0048_sync
Saving to
/home/ubuntu/xviz/scripts/../data/generated/kitti/2011_09_26/2011_09_26_drive_0048_sync/
Matrix4.transformVector has been removed in version 3.0, see upgrade guide for more
information
(node:30746) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability
issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
Generate 22 messages in 21452s
Done in 24.09s.

XVIZServer also starts without any errors
ubuntu@ubuntu1904:~/xviz/modules/server/bin$ ./xvizserver -d
/home/ubuntu/xviz/scripts/../data/generated/kitti/2011_09_26/2011_09_26_drive_0048_sync --
port 8081
xvizserver-log: Listening on port 8081

start-streaming-local also does not give any error
ubuntu@ubuntu1904:~/streetscape.gl/examples/get-started$ yarn start-streaming-local --host
<IP_ADDRESS>
yarn run v1.19.1
warning package.json: No license field
$ webpack-dev-server --env.local --env.stream --progress --hot --open --host <IP_ADDRESS>
10% building 1/1 modules 0 activeℹ ｢wds｣: Project is running at http://<IP_ADDRESS>:8080/
ℹ ｢wds｣: webpack output is served from /
ℹ ｢wds｣: Content not from webpack is served from /home/ubuntu/streetscape.gl/examples/get-
started
12% building 21/29 modules 8 active ...e/ubuntu/streetscape.gl/examples/get-
started/node_modules/source-map-
 loader/index.js!/home/ubuntu/streetscape.gl/node_modules/react-dom/cjs/react-
dom.development.jsℹ ｢wdm｣: wait until bundle finished: /
ℹ ｢wdm｣: Hash: 0044c9a648acc9afe3db
Version: webpack 4.41.2
Time: 60732ms
Built at: 10/25/2019 4:54:08 PM
    Asset      Size  Chunks                   Chunk Names
bundle.js  11.6 MiB     app  [emitted]        app
bundle.js.map  12.4 MiB     app  [emitted] [dev]  app
Entrypoint app = bundle.js bundle.js.map
[0] multi (webpack)-dev-server/client?http://<IP_ADDRESS>:8080 (webpack)/hot/dev-server.js ./src/app.js
52 bytes {app} [built]
[../../modules/main/src/index.js] /home/ubuntu/streetscape.gl/modules/main/src/index.js 1.17 KiB
{app} [built]
[../../modules/monochrome/src/index.js]
/home/ubuntu/streetscape.gl/modules/monochrome/src/index.js 1.64 KiB {app} [built]
[../../node_modules/react-dom/index.js] /home/ubuntu/streetscape.gl/node_modules/react-
dom/index.js 1.33 KiB {app} [built]
[../../node_modules/react/index.js] /home/ubuntu/streetscape.gl/node_modules/react/index.js
190 bytes {app} [built]
<EMAIL_ADDRESS>1.87 KiB {app} [built]
[./node_modules/strip-ansi/index.js] 161 bytes {app} [built]
[./node_modules/webpack-dev-server/client/index.js?http://<IP_ADDRESS>:8080] (webpack)-dev-
server/client?http://<IP_ADDRESS>:8080 4.29 KiB {app} [built]
[./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js
3.51 KiB {app} [built]
[./node_modules/webpack-dev-server/client/socket.js] (webpack)-dev-server/client/socket.js 1.53
KiB {app} [built]
[./node_modules/webpack-dev-server/client/utils/createSocketUrl.js] (webpack)-dev-
server/client/utils/createSocketUrl.js 2.89 KiB {app} [built]
[./node_modules/webpack-dev-server/client/utils/log.js] (webpack)-dev-server/client/utils/log.js
964 bytes {app} [built]
[./node_modules/webpack-dev-server/client/utils/reloadApp.js] (webpack)-dev-
server/client/utils/reloadApp.js 1.59 KiB {app} [built]
[./node_modules/webpack/hot/dev-server.js] (webpack)/hot/dev-server.js 1.59 KiB {app} [built]
[./src/app.js] 8.44 KiB {app} [built]
+ 1727 hidden modules
ℹ ｢wdm｣: Compiled successfully.

I have the same problem，Has your problem been solved?  thanks lot.

No, Not solved yet.

thanks.   This shows an issue arround Float64Array().  I'll give this a try ASAP and see if I can pinpoint the cause.

I am getting the exact same errors when converting the KITTI dataset. Is there any update on this? I know there is a a validation tool supposedly able to validate the generated XVIZ data, however I don't see much documentation on how to use it or what it would provide.
This also seems to be related to https://github.com/uber/xviz/issues/534 and https://github.com/uber/xviz/issues/535. I suspect as was stated in #534 the converted data consists of several null values, which I will hopefully be able to verify later this week.

Taking a closer look at the generated JSON file using the --json flag, it looks like the LIDAR points are also converted with a bunch of null values. I removed the trajectory stream generation from the converter (so only vehicle pose is converted) and also removed all but the gpsConverter and CameraConverter from the initialize() method code in kitti_converter.js:
this.converters = [
      gpsConverter,
      new CameraConverter(this.inputDir, {
        disabledStreams: this.disabledStreams,
        options: this.imageOptions
      })
  ];

The get-started demo now runs without error in the console window, however the image displays and plots of acceleration and velocity are now missing. Presumably this is because the data doesn't exist in the processed xviz frame? I'm not sure. @twojtasz have you had a chance to dig any deeper on this issue?

So I think I found the issue with the trajectory generation code. In the getPoseTrajectory() method in xviz/builder/xviz-trajectory-helper.js, the return statement is incorrect
Change the return statement to use relativeOffset[0] for X, and similarly for Y and Z (the relativeOffset variable is an array and doesn't have .x, .y, or .z available to it):
function getPoseTrajectory(_ref) {
  var poses = _ref.poses,
      startFrame = _ref.startFrame,
      endFrame = _ref.endFrame;
  var positions = [];
  var iterationLimit = Math.min(endFrame, poses.length);  for (var i = startFrame; i < iterationLimit; i++) {
    positions.push(poses[i].pose);
  }  var startPose = poses[startFrame].pose;
  var worldToStartPoseTransformMatrix = new _math._Pose(startPose).getTransformationMatrix().invert();
  return positions.map(function (currPose) {
    var offset = getGeospatialVector(startPose, currPose);
    var relativeOffset = worldToStartPoseTransformMatrix.transformVector(offset);
    return [relativeOffset[0], relativeOffset[1], relativeOffset[2]];
  });
}

With this fix, the trajectory generation works for the vehicle. Unfortunately, the velocity/acceleration metrics are still missing, as are the camera displays. After digging a bit deeper, the XVIZPanel component is switching its display based on the uiConfig property of the data passed in in the render method:
return uiConfig ? (
  <div>{uiConfig.children && uiConfig.children.map(this._renderItem)}</div>
) : null;

Since this property is undefined, nothing is displayed. I'm not sure at the moment where this property is supposed to be set or why its not currently being set. Has anyone else seen this issue? Here is the props object in xviz-panel.js logged to the console for reference:
{name: "Camera", uiConfig: undefined, log: XVIZFileLoader, style: {…}, components: {…}, …}
    componentProps: {}
    components: {}
    log: XVIZFileLoader {onXVIZMessage: ƒ, onError: ƒ, getCurrentTime: ƒ, getLookAhead: ƒ,       getMetadata: ƒ, …}
    name: "Camera"
    style: {}
    uiConfig: undefined
    __proto__: Object

Also found out that in streetscape.gl modules/core/src/utils/transform.js
I have to add default value to links on line 78 like so
 const {origin, links = {}, streams, transforms = {}, vehicleRelativeTransform} = frame;

I clearly need to jump back on this.  I have a Ubuntu setup I will test on tonight. Thanks @speculees @patnolan33 for all your digging.  Sorry this has been broken for you.

@patnolan33 Huge thanks for tracking this down. The problem was rooted in math.gl being updated and no longer returning a class but a plain array.  Previously it had accessors for fields like .x.


🚀 Feature:  Let's Encrypt SSL

🔖 Feature description
Include the ability to create an SSL certificate for the application when running the application for the first time. This would help anyone to run the application securely and be able to enable SMTP without having to through vigorous steps of setting up SSL to be able to send email notifications.
🎤 Pitch
This would help out users who are new to development to run the application securely to test the email notifications using SMTP without going through several steps in creating an SSL manually.

I'm not sure if I want to implement this directly into Pingvin Share because this could easily be done with a reverse proxy. You just could add Nginx to the Docker Compose stack and setup a SSL certificate in it.

@BotVue if you are new on Docker, I recommend you to use Caprover, it uses docker, nginx and allow to generate Let's encrypt certificates easily.
It have something like a "app store", but you can also deploy others apps that are not in that.
https://caprover.com/docs/get-started.html

@BotVue The problem with the self-signed certificate occurred while Pingvin Share tried to connect to the SMTP server. This hasn't something to do with the SSL certificate of your Pingvin Share instance but with the certificate of the SMPT server. I think this error can occur when you've entered the wrong host or port.
Could you try if it works on the SMTP checker website with the exact same SMTP configuration?

@BotVue Which SMTP port do you use?

I checked out the SMTP checker and it seems like it only works if I uncheck "Use Secured Connection", but if it's checked SMTP fails on me. I might have to change the protocol somehow to make it work. All my certificates for SSL are signed and generated using https://zerossl.com.

Maybe you can try with something like smtp2go

Is the issue completed for you?


feat(forge): improve fuzz corpus

This pr provides a small update to the fuzz corpus that should allow higher effectiveness in fuzzing to find bugs, hit assertions, cause failures, etc.
Motivation
The fuzz corpus uses the values for the push, slot, slot_value, and log topics for relevant accounts in the state db.
The fuzz corpus can be minorly improved by also inserting values that are +/- 1 of the value, in order to pass through conditional statements that use < or >.
For example:
Challenge:
pragma solidity ^0.8.13;
contract MagicNumber {
    uint256 public target = 0;

    function check_against_magic(uint256 number) public {

        if (number > 100_098) {
            if (number < 100_100) {
                target = 1;
            }
        }
    }

    function is_solved() public view returns (bool){
        return target == 1;
    }
}

Test:
pragma solidity ^0.8.13;

import "forge-std/Test.sol";
import "../src/MagicNumber.sol";

contract MagicNumberTest is Test {
    MagicNumber public magic_number;

    function setUp() public {
        magic_number = new MagicNumber();
    }

    function testFuzz(uint number) public {
        magic_number.check_against_magic(number);
        assertFalse(magic_number.is_solved());
    }
}

Fuzzing profile of:
[fuzz]
runs = 100_000
dictionary = 90

Current fuzzer:
❯ forge test --fuzz-runs 100000 --mc MagicNumber
[⠢] Compiling...
No files changed, compilation skipped

Running 1 test for test/MagicNumber.t.sol:MagicNumberTest
[PASS] testFuzz(uint256) (runs: 100000, μ: 8346, ~: 8340)
Test result: ok. 1 passed; 0 failed; finished in 2.48s

After PR Changes:
❯ forge test --fuzz-runs 100000 --mc MagicNumber
[⠢] Compiling...
No files changed, compilation skipped

Running 1 test for test/MagicNumber.t.sol:MagicNumberTest
[FAIL. Reason: Assertion failed. Counterexample: calldata=0x32f92a0300000000000000000000000000000000000000000000000000000000000188fb, args=[100603 [1.006e5]]] testFuzz(uint256) (runs: 305, μ: 8345, ~: 8340)
Test result: FAILED. 0 passed; 1 failed; 0 skipped; finished in 384.89ms

Failing tests:
Encountered 1 failing test in test/MagicNumber.t.sol:MagicNumberTest
[FAIL. Reason: Assertion failed. Counterexample: calldata=0x32f92a0300000000000000000000000000000000000000000000000000000000000188fb, args=[100603 [1.006e5]]] testFuzz(uint256) (runs: 305, μ: 8345, ~: 8340)

Encountered a total of 1 failing tests, 0 tests succeeded

Solution
My initial feeling is that only the push and slot_value values should be considered for the +/- 1 insertion. Practically, log topics and slot_keys are never used for logical flow or comparisons, and adding them would increase bloat in the fuzzing corpus which drags down effectiveness.
I don't like how I polluted the collect_push_values() fn with returning more than just the push values. I think that the push and slot_value values should instead be iterated over separately and have the +/- 1 values inserted.
Better Solution
While this +/- 1 business definitely aids the initial skyrocket of finding bugs in a fuzzing marathon, it could also lead to a flatter tail where the excess bloat of the dictionary leads to less useful values being picked over a long period of time.

[Source: Daedaluzz](https://consensys.net/diligence/blog/2023/04/benchmarking-smart-contract-fuzzers/)
A better solution entirely would be to do a static analysis pass over the bytecode and track push values that are concretely modified + consumed by conditional statements. A static pass can be a surgical way to find the real values that are checked against.
Without doing a static pass, there could also be interesting REVM inspectors that track the stack values consumed in lt, gt, eq, etc opcodes, and add these values to the dictionary when the run is finished.
Example where a static pass shines:
pragma solidity ^0.8.13;
contract StaticPassRequired {
    uint256 public target = 0;
    uint256 constant magic_number = 1337;

    function check_against_magic(uint256 number) public {
        if (number == magic_number * 1337) { // value not found in push
            target = 1;
        }
    }

    function is_solved() public view returns (bool){
        return target == 1;
    }
}

My Foundry fuzz time doubled twice, I guess that's because of this PR? https://twitter.com/pcaversaccio/status/1675085794963337216


[hive/app] add query builder for laboratory

https://github.com/kamilkisiela/graphql-hive/assets/7361780/b0feb35b-d8ce-454f-923a-18765fa7f15e

that's one giant dollar sign :D

 that's one giant dollar sign :D

 that's one giant dollar sign :D

lol, yes, it's some bug from this plugin 😂

This element is super weird. It's small, only available when you hover on the field and hard to click as it's tiny and you know what it does only when you leave your mouse cursor on it for 7s.

fixed in plugin

And borders / backgrounds.

fixed in plugin

There should be more visual separation between fields and field arguments

Not a blocker for me though.


Relicense under dual MIT/Apache-2.0

This issue was automatically generated. Feel free to close without ceremony if
you do not agree with re-licensing or if it is not possible for other reasons.
Respond to @cmr with any questions or concerns, or pop over to
#rust-offtopic on IRC to discuss.
You're receiving this because someone (perhaps the project maintainer)
published a crates.io package with the license as "MIT" xor "Apache-2.0" and
the repository field pointing here.
TL;DR the Rust ecosystem is largely Apache-2.0. Being available under that
license is good for interoperation. The MIT license as an add-on can be nice
for GPLv2 projects to use your code.
Why?
The MIT license requires reproducing countless copies of the same copyright
header with different names in the copyright field, for every MIT library in
use. The Apache license does not have this drawback. However, this is not the
primary motivation for me creating these issues. The Apache license also has
protections from patent trolls and an explicit contribution licensing clause.
However, the Apache license is incompatible with GPLv2. This is why Rust is
dual-licensed as MIT/Apache (the "primary" license being Apache, MIT only for
GPLv2 compat), and doing so would be wise for this project. This also makes
this crate suitable for inclusion and unrestricted sharing in the Rust
standard distribution and other projects using dual MIT/Apache, such as my
personal ulterior motive, the Robigalia project.
Some ask, "Does this really apply to binary redistributions? Does MIT really
require reproducing the whole thing?" I'm not a lawyer, and I can't give legal
advice, but some Google Android apps include open source attributions using
this interpretation. Others also agree with
it.
But, again, the copyright notice redistribution is not the primary motivation
for the dual-licensing. It's stronger protections to licensees and better
interoperation with the wider Rust ecosystem.
How?
To do this, get explicit approval from each contributor of copyrightable work
(as not all contributions qualify for copyright, due to not being a "creative
work", e.g. a typo fix) and then add the following to your README:
## License

Licensed under either of

 * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
 * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

at your option.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.

and in your license headers, if you have them, use the following boilerplate
(based on that used in Rust):
// Copyright 2016 bincode developers
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

It's commonly asked whether license headers are required. I'm not comfortable
making an official recommendation either way, but the Apache license
recommends it in their appendix on how to use the license.
Be sure to add the relevant LICENSE-{MIT,APACHE} files. You can copy these
from the Rust repo for a plain-text
version.
And don't forget to update the license metadata in your Cargo.toml to:
license = "MIT/Apache-2.0"

I'll be going through projects which agree to be relicensed and have approval
by the necessary contributors and doing this changes, so feel free to leave
the heavy lifting to me!
Contributor checkoff
To agree to relicensing, comment with :
I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

Or, if you're a contributor, you can check the box in this repo next to your
name. My scripts will pick this exact phrase up and check your checkbox, but
I'll come through and manually review this issue later as well.

[ ] @TyOverby
[ ] @bitonic
[x] @erickt
[ ] @crhino
[ ] @jmesmon
[ ] @mikedilger
[ ] @tedsta
[ ] @nyx
[ ] @csherratt
[ ] @badboy
[x] @jeremyjh
[ ] @reem
[ ] @mohtar
[ ] @SimonSapin

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

r+

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I'm all for it.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

@bitonic @tedsta @SimonSapin
Ping

Fine by me!
On Monday, 29 February 2016, Ty Overby<EMAIL_ADDRESS>wrote:

@bitonic https://github.com/bitonic @tedsta https://github.com/tedsta
@SimonSapin https://github.com/SimonSapin
Ping
—
Reply to this email directly or view it on GitHub
https://github.com/TyOverby/bincode/issues/51#issuecomment-190412389.

I license past and future contributions under the dual MIT/Apache-2.0
license, allowing licensees to chose either at their option.
On Monday, 29 February 2016, Francesco Mazzoli<EMAIL_ADDRESS>wrote:

Fine by me!
On Monday, 29 February 2016, Ty Overby<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

@bitonic https://github.com/bitonic @tedsta https://github.com/tedsta
@SimonSapin https://github.com/SimonSapin
Ping
—
Reply to this email directly or view it on GitHub
https://github.com/TyOverby/bincode/issues/51#issuecomment-190412389.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

Looks like @tedsta isn't around anymore, so I'm just going to close this.

@TyOverby tedsta's contributions are trivial (adding lifetime parameters, minor version bump). reconsider?

I'm not sure what the legal ramifications are.

@tedsta bump?

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

Sorry for the delay!

New contributors since this issue was created:

[ ] @alexbool
[ ] @canndrew
[ ] @dtolnay
[ ] @Seeker14491
[ ] @Cobrand
[ ] @oli-obk
[ ] @nox
[ ] @0nkery
[ ] @Ms2ger
[ ] @jaysonsantos

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I don't quite remember contributing here, but whatever, fine by me !
I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.


Does XWPFComment APIs contain the method of replycomment？

I was used XWPF  to export word which‘s comments that contains a parent-child relationship, but I can't find a way to achieve.

Sorry to mixed, I mean One Comment has any replies. Can I use XWPFComments to add replies to Word or there's any way.

Can you give me a screenshot or sample?


Update Import-CsOnlineAudioFile.md

@kenwith cc: @roykuntz
Updating to example 1 to refer to related AA cmdlet where stored variable is used. Added example 2 for call queue with reference to the set-cscallqueue cmdlet which was also updated to correctly reflect need to provide ID using stored variable.

Docs Build status updates of commit ea465dd:
:clock10: Full build: the average full build time is 17 min(s) 31 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit ea465dd:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/Import-CsOnlineAudioFile.md
:white_check_mark:Succeeded
View (skype-ps)

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

Docs Build status updates of commit d6ab9b1:
:clock10: Full build: the average full build time is 17 min(s) 35 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit d6ab9b1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/Import-CsOnlineAudioFile.md
:white_check_mark:Succeeded
View (skype-ps)

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

Docs Build status updates of commit d0c970a:
:clock10: Full build: the average full build time is 17 min(s) 36 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit d0c970a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/Import-CsOnlineAudioFile.md
:white_check_mark:Succeeded
View (skype-ps)

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


Add sudo rule for shutdown command.

This rule adds the terminal output on running shutdown without sudo.

Thanks!


view.vue tries to reuse stale task

When user requests to view dataset, view.vue will try to reuse previously used tasks to stage the datasets. This works great until the task uses configuration containing stale jwt token to stage the dataset.
I should limit the reuse of previous task to less than the expiration of the jwt token (an hour?)

I've made so that it doesn't try to reuse "removed" task. I think this fixes this issue (I don't need to artificially limit the age of staged task). I will test.


Update the filters and trigger a request when the user clicks on a filter

Purpose
This is the most basic form of the expected functionality for our frontend: let users pick a filter in the left sidebar, add it to the current search and get new, relevant search results.
Proposal
Build handlers for filter adding and removal in SearchFilterGroupContainer as it is the place where all the actionable information is gathered.
We then pass down the handlers through to SearchFilter which just uses them as click handlers and passes its own value back upstream.
Note: removal functionality was not included in the UI as this PR was already complicated enough as it is — and it would required us first to manage to show the active filters so they can be deactivated.
The same goes for facet management, which is separate logic: adding/removing should work the same no matter the actual filters we show.

@jmaupetit I took a quick stab at writing a simpler to understand version. Unfortunately the clearest (to me) did not pass type check due to a compiler weakness.
Tell me if you think it's better this way :)

Looks have not changed much lately


Apigee Control Plane created with IaC with least priveledge. Update in Read me

Per https://www.googlecloudcommunity.com/gc/Apigee/Apigee-Organization-Admin-roles-apigee-admin-IIAM-role-when/m-p/488427#M72897 creating the FR
Looks like for Apigee Hybrid Control Plane creation using cloud-foundation-fabric/modules/apigee-organization at master · GoogleCloudPlatform/cloud-foundation... will require additional roles and don't define required Roles
Please update what type of  CRUD permissions on the following resources is required ? to justify ..  I am not sure, if those details may be also included to cloud-foundation-fabric/README.md at master · GoogleCloudPlatform/cloud-foundation-fabric (github.co... as a best practice ?
Listed link provides predefined roles for Apigee IAM basic and predefined roles reference  |  IAM Documentation  |  Google Cloud
For Such use cases what should be the such role (to be defined) if specifically required by terraform ? If read only is not enough.
apigee.organization
apigee.envgroups
apigee.environments
apigee.envgroupattachments

I'm not sure I understand what's the ask here. Do you want README mention roles required to deploy an Apigee Hybrid instance?

It should indicate required service account roles based on least privilege principle

Great idea. Can you send a PR with those changes?


A minor typo in the code

In the code for step 2 of Use MSAL to get a token for the Microsoft Graph API the close } is missing.
The last } in the code is for closing the private async void CallGraphButton_Click(object sender, RoutedEventArgs e) method. But there should be another } at the end for closing the class public partial class MainWindow : Window

@saf-itpro -
Thanks for brining this to our attention. We will investigate it further and update you shortly.

@saf-itpro -
Thanks again for bringing this to our attention. We have updated the Doc and it will be live once its merged.  We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


German localization

This is a complete German localization of the UI by @Dignifiedquire. Two other localizations are currently under constriction on Transifex, so stay tuned for more.

LGTM

@digital-dreamer is there a better way to keep things synchronized between this repo and Transifex?

thanks!


CORS related deprecation (May 2021)

I noticed I was getting a CORS rejection...
i.e. web origin localhost:3000 rejects usage of machinery origin localhost:8080
..and then I saw a deprecation dated for today's date regarding CORS
Here's the deprecation message:
scheduler.development.js:298 [Deprecation] SharedArrayBuffer will require cross-origin isolation as of M91, around May 2021. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details.

@nargetdev how did you come around this issue?

This is related to the old agent, we currently have a BETA released for this repo (the new Kerberos Agent)


Release 0.8.1

What's your thinking?

I think it could be nice to release the async-bug fixes as quick as possible since we're not sure when a new hiredis is tagged.
Hopefully soon, but there has been release races in hiredis before that died out.
Hopefully we could get something more in hiredis-cluster until then.


React Native / NodeJs TextDecoder

🐛 Bug description
React Native does not have the NodeJs "util" module, thus can't get to the TextDecoder class.
Whenever the main js file is loaded, Metro server stops because it does not have the "util" class. Installing "util" causes a cascading import of other (not-provided-for) NodeJs libs.
Possible workaround
Best is to install the "text-encoding' module. In the main .js file change it to require from "text-encoding" instead of "util" as "text-encoding" provides the TextDecoder class.
🤔 Expected Behavior
To load the TextDecoder class on React Native
👟 Steps to reproduce

Checkout https://github.com/mvniekerk/rust-expo-wasm
Follow build for Rust and build for Expo.io instructions
With the Expo.io app on your mobile, open up the url provided

🌍 Your environment
wasm-pack version: 0.9.1
rustc version: 1.42-beta.2

Still no TextDecoder/ TextEncoder classes inherently included in RN.
Yeah, installing 3rd-party modules is apparently the best solution to overcome these issues

Still the same, why it's so? Addition libraries not working as expected (


Release 2.1.1

Descriptive summary
DMR Version 2.1.1
Release Manager: @VivianChu
Product Owner: @gamontoya
Operations: @jhriv
This release includes the work on making sorting alpha numeric instead of by string.
Related work
#201

@gamontoya - The release has been deployed to staging.  Could you review it?
For example
http://librarytest.ucsd.edu/dmr/courses/104/edit
Thanks

Hi Vivian. Just tested this and it's working as expected. I approve for prod.

Thanks @gamontoya for testing.
@jhriv - The release has been merged into the master branch.  Could you deploy it to production?  Thanks

Deployed.


:root { font: 16px/…; } overrides the user’s preferred font size

Just pointing out that the current code overrides the user’s default font-size (that may be set in most browsers’s preferences, including IE, Firefox and Chrome), as would any font-size value using units other than %, em, or rem (or ex but that’s marginal).
Current Sass code:
$root-font-size: 16px !default;
:root {
	font: #{$root-font-size}/#{$root-line-height} $root-font-family;
}

Compiled CSS:
:root{font:1pc/1.5 sans-serif}

(I guess the conversion of 16px to 1pc is something which minify-css does in order to win just one character. A bit overkill. ^^)
Is this an intentional decision to override user settings?
I understand that not many users will have set up their browser to use a different base text size, and with many websites not respecting this preference they are even less likely to use this preference, but I’d still advise against resetting user settings in boilerplate code.

This is a very fair point. Presently, I’ll set the px unit on the root to give myself a relative base unit for components, as @chriscoyier does in https://css-tricks.com/rems-ems/. However, this can still be accomplished without explicitly overriding the users setting.
Would an appropriate change be:
$root-font-size: 100% !default;

And, as an override recommendation, this 20px substitute:
$root-font-size: 125%;

?

That would work perfectly.

Yep, that would be great.
As an aside, in our projects at work we’re using a 20px rem base. With sanitize.css we might already set things up like this:
$root-font-size: 125%; // So that 1rem=20px with default user settings
@import "path/to/sanitize";

body {
  font-size: .8rem; // 16px equivalent; change for other values
}

Resolved in 2.1x


adding napalm rollback

Moving from the nornir repo to this one as suggested by Kirk.
https://github.com/nornir-automation/nornir/pull/552

You also need to add it here: https://github.com/nornir-automation/nornir_napalm/blob/master/nornir_napalm/plugins/tasks/init.py

Hi! Thanks for the PR, I dropped a few comments.

Thanks, I resolved your comments. I'm struggling with what the tests and what should be returned when a rollback is performed. I think a diff is what should be returned but not 100% sure. Any guidance would be appreciated.

Superseded by:
https://github.com/nornir-automation/nornir_napalm/pull/45


Error: error loading manifests from directory: file argoproj.io_argocds.yaml bigger than total allowed limit

Describe the bug
Cannot install operator 0.6.0 from operatorHub.io
https://operatorhub.io/operator/argocd-operator
The bundle is too large.
time="2023-06-12T21:45:24Z" level=error msg="File with size 398756 exceeded 1048576 limit, aboring" file=/bundle/manifests/argoproj.io_argocds.yaml
Error: error loading manifests from directory: file argoproj.io_argocds.yaml bigger than total allowed limit

To Reproduce
kubectl create -f https://operatorhub.io/install/argocd-operator.yaml

Expected behavior
Operator installs
Additional context
Am I the only one with this problem?

Actually just noticed the file size stated is smaller than the limit?  Not sure what that means

Just realized i am using an outdated olm version


[CARBONDATA-1752] Remove unused import

Remove unused imports, which split from https://github.com/apache/carbondata/pull/1676
and others were find by inspect code of IDEA Analyze
Be sure to do all of the following checklist to help us incorporate
your contribution quickly and easily:

[ ] Any interfaces changed?
No

[ ] Any backward compatibility impacted?
No

[ ] Document update required?
No

[ ] Testing done
No

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.
No

LGTM


Lower ra to llvm

First rough outline.

This is still a WIP (mostly requires rigorous testing of new code), but merging it in since it fixes some issues on main branch.


riscv: Add CONFIG_RISCV_RESERVED_IRQ_ISR_TABLES_OFFSET

This is not the nicest solution ever, so I'm really open to any better way to fix this if you have a better idea.
Some RISCV platforms shipping a CLIC have a peculiar interrupt ID ordering / mapping.
According to the Core-Local Interrupt Controller (CLIC) RISC-V Privileged Architecture Extensions Version 0.9-draft at paragraph 16.1 one of these ordering recommendations is CLIC-mode interrupt-map for systems retaining interrupt ID compatible with CLINT mode that is described how:
  The CLINT-mode interrupts retain their interrupt ID in CLIC mode.
  [...]
  The existing CLINT software interrupt bits are primarily intended for
  inter-hart interrupt signaling, and so are retained for that purpose.
  [...]
  CLIC interrupt inputs are allocated IDs beginning at interrupt ID
  17. Any fast local interrupts that would have been connected at
  interrupt ID 16 and above should now be mapped into corresponding
  inputs of the CLIC.

That is a very convoluted way to say that interrupts 0 to 15 are reserved for internal use and CLIC only controls interrupts reserved for platform use (16 up to n + 16, where n is the maximum number of interrupts supported).
Let's now take now into consideration this situation in the DT:
  clic: interrupt-controller {
    ...
  };

  device0: some-device {
    interrupt-parent = <&clic>;
    interrupts = <0x1>;
    ...
  };

and in the driver for device0:
  IRQ_CONNECT(DT_IRQN(node), ...);

From the hardware prospective:

device0 is using the first IRQ line of the CLIC
the interrupt ID / exception code of the MSTATUS register associated to this IRQ is 17, because the IDs 0 to 15 are reserved

From the software / Zephyr prospective:

Zephyr is installing the IRQ vector into the SW ISR table (and into the IRQ vector table for DIRECT ISRs in case of CLIC vectored mode) at index 0x1.
Zephyr is using the interrupt ID of the MSTATUS register to index into the SW ISR table (or IRQ vector table)

It's now clear how (2) and (4) are in contrast with each other.
To fix this problem we have to take into account the offset introduced by the reserved interrupts. To do so we introduce
CONFIG_RISCV_RESERVED_IRQ_ISR_TABLES_OFFSET as hidden option for the platforms to set.
This Kconfig option is used to shift the interrupt numbers when installing the IRQ vector into the SW ISR table and/or IRQ vector table. So for example in the previous case and using
CONFIG_RISCV_RESERVED_IRQ_ISR_TABLES_OFFSET == 16, the IRQ vector associated to the device0 would be correctly installed at index 17 (16 + 1), matching what is reported by the MSTATUS register.
CONFIG_NUM_IRQS must be increased accordingly.

Why not just have the board assign the example interrupt to "17" in the first place, because this is a device with a CLIC and that's the CPU interrupt ID that will be signaled when the device interrupts?

yeah, but there is something else that I didn't explicitly mentioned. If we choose to offset all the interrupt IDs into the DT to account for the offset we still have to carry the information about the offset somewhere in the code (or DT to be retrieved by the code) to be used by the CLIC driver when setting up the interrupt line.
This is due to the fact that the CLIC driver has no knowledge about the reserved IRQs so, for example, to configure the interrupt with ID 17 we have in the CLIC driver to use the register CLICINTIP[1], for the interrupt id 18 the CLIC register CLICINTIP[2] and so on.
So we still need to carry this information somewhere to be use either by Zephyr when installing the vector in the ISR table as proposed in this PR, or to be used by the CLIC driver to configure the interrupt line.


Pre-defined pools list

Add an option to populate the pool connection derails from a list of popular pools.
Pools:

MoneroOcean
minexmr
supportxmr
Nano
c3pool
/xmrpool.eu
hashvault

/cib


sort bins

The proposed syntax specifies sort in the reduce/outputs object, enabling sorting on a different reducer.
      Plot.dot(data, Plot.bin({
        r: "count",
        sort: "count",
        reverse: true
      }, {
        x: "body_mass_g",
        y: "culmen_length_mm",
        stroke: "species",
        fill: "species"
      }))

closes #297

This is very similar to what I propose for filter! #495

I’m not sure about the comparator issue, but as far as the input channel vs. basic transform ambiguity goes with the sort option, I’m thinking we can resolve that by changing how we interpret the sort option based on the presence of be sort output. If a sort output is specified, then the sort option represents the input channel; but otherwise the sort option is a basic transform that is applied before the bin or group. (And you can always make this explicit using Plot.sort if you like.) This approach could be extended to the filter option in the other PR, too.

I am going to merge this into the filter option PR #495 so we can do both simultaneously.


[Help wanted] Audio transcription with SOME

This PR adds integration with SOME, an audio to musical notes converter. Users can right-click on a wave part and select "Transcribe" to convert it into a voice part.

Before using, please download the SOME model from https://github.com/xunmengshe/OpenUtau/releases/download/<IP_ADDRESS>/some-0.0.1.oudep
Currently the UI stucks when SOME is processing. It would be better if it shows a pop-up dialog with a progress bar, but I don't know how to implement this.

@maiko3tattun May I ask if the loading dialog can be used here.

@maiko3tattun May I ask if the loading dialog can be used here.

Perhaps it could be used.
However, MessageBox.ShowModal() might be better than LoadingNotification(#892). It is used to create FRQs.

@oxygen-dioxide Maybe we should add checks to prevent very long chunks after slicing, for example, if someone clicks "transcribe" on an accompaniment audio that has no silence parts at all. The model contains attention operators and can cause OOM on very long sequences.


Enhance APIApplicator with applying ApplyOption before creating

What problem are you facing?

It's expected to allow ApplyOption works before creating as already mentioned in this comment,
That would make the Applicator operation more flexible.
How could Crossplane help solve your problem?

Is there any plan to make it work? Or any other concerns?

@captainroy-hy Thanks for opening this! I'm not aware of anyone planning to work on this, but the functionality is still desirable. Contributions are definitely welcome. I will warn though that these Apply functions are very widely used across the Crossplane codebase and have historically proven tricky to change without subtly breaking things so whoever takes this on will need to be extra careful.


New Feature: Color Palettes

Prerequisites

[X] I have searched for duplicate or closed feature requests
[X] I have read the contributing guidelines

Proposal
I know you have the bg-opacity and other things but I have a great idea:
Make a couple of more related colors to the current ones, and document how these are greatly combined. Or name them as the palette so that you should only combine them with the same palette, ex warning-joy, secondary-joy & dark-joy
Example:
bs-dark goes very with (brighter)#393e46 and (brightest)#596067
Motivation and context
This would make bootstrap a standard to follow and also be helpful for people just getting into designing and don't yet know anything about palettes and why they're so important
++ A nice page in bootstrap documentation about the different palettes would make it so much easier to decide which palette to use for the new project

#35857 should help with this.


Future of the project

I love the idea of sharing open, machine-readable data about predatory/hijacked/questionable journals and publishers. That being said, such lists are only valuable if they are actively maintained.
The last commit happened on January 10, 2018, issues and pull requests are piling up, and the project's Twitter account hasn't posted in a while. :(
Cabell's blacklist is interesting, but it's not open, and I think there'd be value in having open discussions about updates and appeal requests here on GitHub.
@stoppredatoryjournals, are you still interested in maintaining the project? Or maybe granting write access to other users?
I might be up for the task if others would be interested in helping. We've seen with Beall's list that this cannot be a single person's job. @katrinleinweber and @pascalwhoop, maybe? Anyone else?

GitMask.com and/or git config --local user.name "someone" && git config --local user.email<EMAIL_ADDRESS>would be useful in that endeavor.
However, is it really still necessary, now that ThinkCheckSubmit.org has received quite a boost last summer during the whole "fake science" discussion?

Unless I missed something, ThinkCheckSubmit offers check lists and guidelines, but no database of journals or publishers.
Check lists and advocacy are great to help prevent future submissions to these journals, but I think explicit lists are still necessary for tools that process existing publications, including citations to or from predatory/hijacked journals.


Switch readthedocs to show stable branch by default

Right now https://cython.readthedocs.io shows documentation for the "latest" version of the code, which is apparently an alpha? You can configure the project to show "stable" docs by default, and that way users will see the documentation for latest stable release automatically. It's in the settings somewhere, you can set what branch to identifier to show by default, and "stable" is one of the options.

The stable docs don't seem very up to date, but yeah, I'd like to have it show both. Not necessarily stable by default in the current state, since people should rather use 3.0 than 0.29.x. The reason why 3.0 is marked as alpha is that it's not feature complete yet, not that it's necessarily unstable.

Would be great to show both indeed.

@da-woods  can we close this issue since https://github.com/cython/cython/pull/4583 is merged?


library/cluster_vm: set crm_config_cmd default value to None

The default crm_config_cmd value has to be None and not [].

Fix in #292.


Revert back #43 temporary

Reverts back #43

This implementation was kinda flawed, because it modified how our upstream files are parsed and saved. This technically belongs into generateMojang


Error to install OCPP package from Pypi

Hello.
I want to develop an OCPP between a Central system(my laptop) and a Charge point (Raspberry).
However, when I try to install the ocpp package from Pypi, the error in the image appears:

In my laptop, I made the something and everything went well.
Someone can help me with this problem??
Best regards,
José Pedro Silva

Hey @josesilva1995,

Do you have difficult installing other packages with pip? Or is it only with our library?
Can you try to run the following commands and try again?
sudo apt-get upgrade
sudo pip3 install pip --upgrade

The problem could be some of the following:

https://stackoverflow.com/questions/50960583/pip-install-fail-with-ssl-certificate-verify-failed-ssl-c833
https://stackoverflow.com/questions/49324802/pip-always-fails-ssl-verification?rq=1

Hello @laysauchoa
Thank you for your reply.
I already solved the problem. My date was different from web server. So I just changed the date.

Glad you could solve the issue, so I believe we can close this issue as it has been resolved.


Make creating cycle{num} folders inside backup-dir based on each cycle of PS with --test_mode

Currently the backups are created in the same folder for all PS instances(started with different options).
The thing is, I need to figure out a way to create cycle{num} for each test cycle inside backup_dir.

Here we are using Backup class from master_backup_script module which is creating backup directories prior taking backup:
    def full_backup(self):
        full_backup_dir = self.create_backup_directory(self.full_dir)

    def inc_backup(self):

        # Taking Incremental backup

        recent_bck = self.recent_full_backup_file()
        recent_inc = self.recent_inc_backup_file()

        check_env_obj = CheckEnv(self.conf)

        # Creating time-stamped incremental backup directory
        inc_backup_dir = self.create_backup_directory(self.inc_dir)

    def create_backup_directory(self, directory):
        new_backup_dir = join(
            directory, datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
        try:
            # Creating backup directory
            makedirs(new_backup_dir)
            return new_backup_dir
        except Exception as err:
            logger.error(
                "Something went wrong in create_backup_directory(): {}".format(err))

This method is using for creating timestamped directories.

After some fixes it seems to be worked now
$ ls backup_dir/ps_5_6_x_2_3/
cycle1  cycle2  cycle3  cycle4  cycle5  cycle6  cycle7  cycle8  cycle9

So for this issue it is implemented/fixed.
Can be merged to release_v1.4.9


@safe function error when compiling example

Hi, while trying to compile any of the examples (dom / fetch), I get this error:
source\app.d(9,15): Error: @safe function _start cannot access __gshared data document source\app.d(19,15): Error: @safe function _start cannot access __gshared data document ldc2 failed with exit code 1.
I used the following commands:
dub upgrade dub run spasm:bootstrap-webpack dub build --compiler=ldc2 --build=release
My ldc2 version is the latest (1.19.0)

Thank you for trying this out.
LDC 1.19.0 is not officially supported. see BUILDING.md

Oh alright thank you. I will try again with ldc 1.19 when it is supported. (It seems like that the tricks on the BUILDING.md file don't work)

The dom example compiles on my machine. I will enable ldc 1.19.0 on the CI as well. See what happens there. What platform are you on? Windows?

Yes, I am on Windows 10.

Alright, it seems I was still on version 0.1.13. Now with latest beta version, the error is "Error: unrecognized file extension obj"

Call dub with --combined. See https://github.com/skoppe/spasm/issues/15 for backstory.

Alright, it seems I then have the same issues referred there (with the optional/test time_t / wchar_t. I guess this is something that needs to be resolved elsewhere. I will try to test on Linux / WSL in the meantime.


Edit

👷 Deploy Preview for adoring-leavitt-e31a11 processing.

Name
Link

🔨 Latest commit
df1dddcb55ce5ea71f2d029e967bd88845dd528f

🔍 Latest deploy log
https://app.netlify.com/sites/adoring-leavitt-e31a11/deploys/62939ce23c29f4000ac258d0


[MINOR][DOCS] Update Description of UnknownException in PySpark Documentation

What changes were proposed in this pull request?
This PR proposes to update the description of the UnknownException class in the PySpark documentation. The current description, "None of the above exceptions.", is being changed to "None of the other exceptions."
Why are the changes needed?
The existing description, "None of the above exceptions.", implies that UnknownException does not cover any exceptions listed after it in the documentation. This can be misleading as there may be other exceptions defined below UnknownException as below:

The proposed change to "None of the other exceptions." provides a clearer and more accurate description, ensuring that it encompasses all exceptions not covered by previously listed specific exceptions.
Does this PR introduce any user-facing change?
No, it only involves a minor update to the documentation for clarity.
How was this patch tested?
The existing CI should pass, especially PySpark documentation build.
Was this patch authored or co-authored using generative AI tooling?
No.

Merged to master.


Call to an undefined method Laravel\Sanctum\Contracts\HasAbilities::delete()

Laravel Version: ^7.24
Larastan Version: ^0.6.4
--level used: 7

Description
The reported error:
 ------ ---------------------------------------------------
  Line   app/Http/Controllers/Auth/TokenController.php
 ------ ---------------------------------------------------
  39     Call to an undefined method
         Laravel\Sanctum\Contracts\HasAbilities::delete().
 ------ ---------------------------------------------------

Laravel code where the issue was found
    /**
     * Remove the specified resource from storage.
     *
     * @return void
     */
    public function destroy()
    {
        auth()->user()->currentAccessToken()->delete();
    }

This method comes from the HasApiTokens Trait and returns a HasAbilities Contract.
But as stated in the documentation we can revoke the current token as in the provided code snippet.
Have you any solution? Thanks in advance!

In many OOP projects have a very tiny thing - like an Interface - specified, and a bigger object is returned.
/** @var TellPhpstanTheType $token */
$token = auth()->user()->currentAccessToken();
$token->delete();

Thank you.
Yes I already thought about this solution but wasn't sure if that's the best way.

Hi,
I think this is Laravel's problem. They shouldn't write an interface if they are gonna call not existing method on it.
The code @szepeviktor showed is the best way to go. Also currently we do not support any Laraval package in Larastan. Only the Laravel core. So I don't think we are gonna fix this here.


Improve and clean tests

Coverage remained the same at 100.0% when pulling 5bc0b4882078fa311a6976315cc0a299baed8424 on chore-improve-and-clean-tests into 9a602f6ceed70b1916377a1cec6b08ab82733412 on master.


Record minimum Node version

The decision to drop support for Node 5 was discussed in #902 and #964. Windows Vista is not even supported by Microsoft anymore. Developing for old platforms puts drag on the Node community as a whole. No one likes developing for old platforms, and the good resources for learning JavaScript are in ES6.
There are reasonable arguments for keeping long-term support, like wide use across many projects. They might apply to the gh-pages library, and we could consider supporting Node 6 in the library for as long as it's in LTS. However they do not apply to the Shields server. Even users who are self-hosting should be able to run current Node somehow (in Docker, if nothing else). We should be mindful of our limited sysadmin resources, moving forward as the new platforms reach stability.

I feel useless. Need to find a job.


Rebase onto<EMAIL_ADDRESS>

https://github.com/DataBiosphere/azul/issues/5640
Branch azul-chalice: hotfix/1.29.0/azul-updates is the same as Chalice's release tag for 1.29.0, and is the target branch for this PR which adds Azul's customizations.
This PR adds Azul's customizations on top of Chalice's latest release (v1.29.0) and was modeled after the previous PR https://github.com/DataBiosphere/azul-chalice/pull/13

A GitHub tag 1.29.9+11 has been added on the last commit

I had to move the tag since GitHub didn't do a fast-forward.


Database servers are too slow!

The database access time is very slow and many a times it's not even loading.

Hello Abhishek. Yes this is an issue as this is hosted on Streamlit. We are trying to migrate the whole thing to JSON


Changing variable name for shape and its effects on downstream commands involving attributes

Set a new variable (Var_1) equal to a box
Construct a vector addition statement involving the position (e.g.) of the box
Go back to original declaration of variable name and "Rename variable..." to a new name (e.g., Var_2)
Box's position block is ejected from the addition block. Type of block appears to change from vector to shape.

@hgclose Following these recreation steps I'm not so sure this is a bug? Are you saying that the expected behavior of the block should be that renaming the original declaration of the variable should not reset the other forms of the variable? I think having the user required to go through and examine the effect of renaming a variable might not be a negative result

I don't know what you are seeing, but yes, I think of it as a bug.  I don't have to reassemble all of the statements. However, if the vector is an attribute of a shape, the block is ejected and then I have to put the blocks back together, if I can remember where it went. Sometimes it is hard to see where it popped out from, and even if it did, I don't think I should have to put the statements back together just because the variable has a new name.

I'd second @hgclose on this.
Renaming a variable in a definition block in a blocks-based language seems to indicate that the user is changing the variable name globally.  So renaming within a set block is equivalent to find/replace all.  In this case, replacing all item_1s with the new name, mutator blocks and arguments intact, is the most graceful way to handle what the user means. Otherwise, you could get into a situation where a very developed program falls apart just because a student is going in to title their variables in a more readable way.
All that said, I'm unable to reproduce.  Perhaps this has been fixed via another pull request? Seems like type switching would be the cause and I believe a recent PR affected either the type that was returned or the allowable inputs to the addition or subtraction operators.

Yes, i can confirm that a previous commit fixed this issue and i believe @eah13 is correct that it was @codestar12 PR about type switching. It seems this issue was just aside effect caused from turning off the variable type and onchange functionality temporarily before fixing.


can't find it

I can't search it in CocoaPods.

What do you mean? The CocoaPod is live.
https://cocoapods.org/?q=nsgif


Add graph option to BulkInsert method

please review my code and give me feedback.

Checked and merged.
Also I've added a Test for MySql, for now only for BulkInsert.
Segment for BulkInsertOrUpdate is currently commented since if throws exception:
Table 'efcorebulktest.itemtemp5ebc6d78' doesn't exist.


feat(task/transformer-conformance): skip babel 8 unsupported test cases

Prior to babel8, object merging would use babelHelper.extend, which caused most tests to fail

You can add a github link to the source code next time.


Master dev merge

Just checking whether this is the issue?

This wasn't merged though. I accidently opened this while comparing. Showed
the same before I made this.
On Wed., Aug. 4, 2021, 1:55 p.m. arielmelendez, @.***>
wrote:

Just checking whether this is the issue?
You can view, comment on, or merge this pull request online at:
https://github.com/ardriveapp/ardrive-web/pull/187
Commit Summary

fix: old wallets failing to load
fix: PST transactions not getting mined
fix: uploaded data not getting served by gateway
Merge branch 'dev'
ux: allow shared file viewing on mobile
Set workflow_dispatch
Merge branch 'dev' of https://github.com/ardriveapp/ardrive-web
Merge branch 'dev' of https://github.com/ardriveapp/ardrive-web
Merge branch 'dev'
Merge branch 'dev'
Fixed some typos/grammar
Modify to AGPL3.0
Delete LICENSE.md
Merge branch 'dev'
Merge pull request #113 from ardriveapp/dev
Merge branch 'dev'
Merge branch 'dev' into master
Merge branch 'dev'
Merge branch 'dev'
Merge branch 'dev' of https://github.com/ardriveapp/ardrive-web
Merge branch 'dev' of https://github.com/ardriveapp/ardrive-web
Merge branch 'master' into master_dev_merge

File Changes

M pubspec.lock
https://github.com/ardriveapp/ardrive-web/pull/187/files#diff-e125d55a387d4b24048735f9ca6508c4e860f5ca1f3242edfd9df27e7d8a7af0
(18)

Patch Links:

https://github.com/ardriveapp/ardrive-web/pull/187.patch
https://github.com/ardriveapp/ardrive-web/pull/187.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ardriveapp/ardrive-web/pull/187, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEV6GXELVQCDXDBXODDUAALT3F5KRANCNFSM5BRVSRUQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

Sorry. Was referencing something else. Discard my earlier comment.
On Wed., Aug. 4, 2021, 2:00 p.m. github-actions[bot], <
@.***> wrote:

Visit the preview URL for this PR (updated for commit 897551a
https://github.com/ardriveapp/ardrive-web/commit/897551ac508f14191e84aed75fbb3fed74150b85
):
https://ardrive-web--pr187-master-dev-merge-du1ksyhc.web.app
(expires Wed, 18 Aug 2021 17:59:52 GMT)
🔥 via Firebase Hosting GitHub Action
https://github.com/marketplace/actions/deploy-to-firebase-hosting 🌎
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ardriveapp/ardrive-web/pull/187#issuecomment-892858724,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEV6GXCLCPWGDENKZ4UVMTDT3F52PANCNFSM5BRVSRUQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.


I Send Message To SuperGroup throw Exception Please Help Me

Hi My Friends
I Need send Message To SuperGroup
According this link from api telegram :
https://core.telegram.org/api/channel
SupperGroup Is new
I Use Your PowerFul Liobrary :
Your Library Show megagroup Property Please See This ScreenShot
megagroup is true
nut when call MessagesService.SendMessageAsync :
sendmessage
after send message success exception throw :
exception
please help me thx

Project Is Discontinue ????????

Unfortunately yes. :(

You can not help me friends ?

Message Successfully send and then
After I Send Message Exception is throw :
   at DotNetty.Codecs.ByteToMessageDecoder.CallDecode(IChannelHandlerContext context, IByteBuffer input, List`1 output)
   at DotNetty.Codecs.ByteToMessageDecoder.ChannelRead(IChannelHandlerContext context, Object message)
   at DotNetty.Transport.Channels.AbstractChannelHandlerContext.InvokeChannelRead(Object msg)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at OpenTl.ClientApi.MtProto.Services.RequestSenderService.<SendRequestAsync>d__12`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at OpenTl.ClientApi.Services.MessagesService.<SendMessageAsync>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at DropBoxDownloader.Form6.backgroundWorker1_DoWork(Object sender, DoWorkEventArgs e)

Alternative Library for C# ?

Maybe this:
https://github.com/sochix/TLSharp

Oh No TlSharp Very Very Bad Library .

Aww. This then? But it is probably a little more low level, so it needs more programming. If this doesn't fit, then I can't help. Sad to see there is not an easy and maintained C# lib.
https://github.com/tdlib/td

After a few Hour My Problem Solved ...
Solution Very Very Simple :
Please Wait A Few Hour .
Telegram Block My Account Temporary.
Your Library Is Best Library For Telegram in .NET .
Please Continue Support .
THx .


Add support for retry_on_conflict parameter in bulk update

Hi @ikorchynskyi, we have found your signature in our records, but it seems like you have signed with a different e-mail than the one used in yout Git commit. Can you please add both of these e-mails into your Github profile (they can be hidden), so we can match your e-mails to your Github profile?

Hi @karmi, I signed CLA with the same email address I use for Github profile

Hi @ikorchynskyi
Thanks for the PR.  You signed with your gmail address, but the commits use your port.... address.

Any chance you can add some tests to this to ensure that it is working?

Added tests for 2.0, 5.0, 6.0, removed changes for 0.9, 1.0 APIs, as I actually can't check that versions.

That's great @ikorchynskyi - thanks so much.


Exposed config

This exposes information the openshift apiserver operator needs.  Technically it works, but it errors when merging configuration because a sparse config doesn't technically require an apiversion and kind.  This produces an interesting/awful hot loop.
The bug is preexisting, so this is still strictly an improvement.
/assign @sttts @mfojtik

/lgtm


Support accepts_nested_attributes_for record creation

cc @efatsi

Has there been any progress on this? Currently trying to figure this out now with sprig.

There hasn't been any progress on this.

Thank you.


Panic on RP2040 after CC timeout.

I'm kinda new to rust on embedded, at least with a runtime like RTIC, so I could be completely messed up...  Please be gentle :)
Here is the code:  https://github.com/bentwire/usb-c-fusb302-pi-rs
Here is the panic:
(HOST) INFO  success!
────────────────────────────────────────────────────────────────────────────────
INFO  i2c0
└─ usb_c_fusb302_pi::app::i2c0_task @ src/main.rs:268
INFO  i2c0
└─ usb_c_fusb302_pi::app::i2c0_task @ src/main.rs:268
INFO  i2c0
└─ usb_c_fusb302_pi::app::i2c0_task @ src/main.rs:268
DEBUG Timeout expired, no CC activity
└─ fusb302b::{impl#1}::poll @ /home/mike/.cargo/git/checkouts/usb-pd-rs-5739c7ec80e1878a/175bf39/fusb302b/src/lib.rs:137
DEBUG Reset
└─ fusb302b::{impl#2}::establish_retry_wait @ /home/mike/.cargo/git/checkouts/usb-pd-rs-5739c7ec80e1878a/175bf39/fusb302b/src/lib.rs:332
INFO  i2c0
└─ usb_c_fusb302_pi::app::i2c0_task @ src/main.rs:268
ERROR panicked at /home/mike/.cargo/git/checkouts/usb-pd-rs-5739c7ec80e1878a/175bf39/fusb302b/src/lib.rs:233:13:
explicit panic
└─ panic_probe::print_defmt::print @ /home/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/panic-probe-0.3.1/src/lib.rs:104
────────────────────────────────────────────────────────────────────────────────
(HOST) INFO  program has used at least 1.45/254.47 KiB (0.6%) of stack space
stack backtrace:
   0: HardFaultTrampoline
      <exception entry>
   1: lib::inline::__udf
        at ./asm/inline.rs:181:5
   2: __udf
        at ./asm/lib.rs:51:17
   3: cortex_m::asm::udf
        at /home/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cortex-m-0.7.7/src/asm.rs:43:5
   4: panic_probe::hard_fault
        at /home/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/panic-probe-0.3.1/src/lib.rs:86:5
   5: rust_begin_unwind
        at /home/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/panic-probe-0.3.1/src/lib.rs:54:9
   6: core::panicking::panic_fmt
        at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/panicking.rs:67:14
   7: core::panicking::panic
        at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/panicking.rs:117:5
   8: <fusb302b::Fusb302b<I2C> as usb_pd::sink::Driver>::poll
   9: usb_pd::sink::Sink<DRIVER>::poll
        at /home/mike/.cargo/git/checkouts/usb-pd-rs-5739c7ec80e1878a/175bf39/usb-pd/src/sink.rs:85:13
  10: usb_c_fusb302_pi::app::i2c0_task::{{closure}}
        at src/main.rs:296:13
  11: rtic::export::lock
        at /home/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cortex-m-rtic-1.1.4/src/export.rs:320:9
  12: usb_c_fusb302_pi::app::<impl rtic_core::Mutex for usb_c_fusb302_pi::app::shared_resources::pdev_that_needs_to_be_locked>::lock
        at src/main.rs:14:1
  13: usb_c_fusb302_pi::app::i2c0_task
        at src/main.rs:292:23
  14: usb_c_fusb302_pi::app::I2C0_IRQ::{{closure}}
        at src/main.rs:14:1
  15: rtic::export::run
        at /home/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cortex-m-rtic-1.1.4/src/export.rs:83:5
  16: I2C0_IRQ
        at src/main.rs:14:1
      <exception entry>
  17: usb_c_fusb302_pi::app::rtic_ext::main::__rtic_init_resources
        at src/main.rs:14:85
  18: cortex_m::asm::nop
        at /home/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cortex-m-0.7.7/src/asm.rs:35:5
  19: main
        at src/main.rs:14:1
  20: Reset
(HOST) ERROR the program panicked```

I'm using a USB C-C cable if that makes a difference.

Interesting, that panic from fusb302b/src/lib.rs:233:13 occurs when the driver is in an unexpected state. I have a refactor to a type state based implementation that would prevent this at compile time, in the mean time I'm not really sure how to help as looking over the code everything seems to be implemented correctly.
Is there any difference if you flash the device with the cable detached, then attach it? I've seen odd behaviour like that before.

The board isn't wired to allow that unfortunately.  Next revision I guess!  I did end up adding a "Vendor" command to the list, my laptop advertises DP using a vendor command and it was causing a crash...
I can try out your new impl if you have it somewhere I can get to it.  Is it a branch?  I did fork your repo to make some small mods to work with latest RP PICO  HAL's and RTIC.  So playing with patches won't be any issues.
If I can help in any way to get this library working with other MCUs I would love to help!  Esp on the RP2040 board I designed for playing with USB PD. :)

@bentwire Oh sorry, I meant the USB-PD device, as in flashing with the USB-C cable detached, then re-attaching?
Just some local changes I'm afraid, but in a totally broken state so nothing worth pushing. The first step is moving timeout and events from the Fusb302b struct into the State enum, this should reduce quite a few bugs as there would be no shared data between different driver states, and each one starts with a known value. The next step would be a pretty standard type state implementation for each variant of State.
Absolutely that sounds awesome, would you like to be added as a maintainer on this repo so you can upstream those changes? It'd definitely be great to make sure this library works across different hardware.
My main focus going forward will be to add source support for the FUSB302B, but there are some more sink features that need to be implemented. I'm also not set on the API, if you have any suggestions for changes to the Driver trait or anything let me know.

@fmckeogh
I'm still pretty new to Rust, I get the basics but macros and stuff still evade me.  If you want to add me as a maintainer that is fine, I would be sending you reviews anyway so I think that's ok?
The biggest change I think that would be helpful is to move the callback in to the library so it isn't necessary.  It does not seem very 'rusty' to have a callback like that.  I was thinking I could call in to the driver to see what state its in, and to ask it to request a new PDO and to save the list of available PDO's for later query and selection.
Does that make sense?

@bentwire
Sounds good, just ping me and I'll review any PRs.
At the time my rationale was that the callback means we can always respond quickly to power events, we're not reliant on users doing it fast enough to avoid a timeout. The other issue is being able to lookup the PDO index internally, giving a nicer/safer API for users. However, I think you're right and that making poll return an Option<Event>, and then adding a method for requesting power seems like a reasonable alternative?
I'd like to avoid saving the list of PDOs in the library for space reasons, I'd rather let users choose to save them if they wish, but keeping the minimum size of the library down.

@fmckeogh
That sounds like a perfect compromise to me.  Allow for quick response without a callback, and also allow the user to manage the PDO list (Esp since it won't always just be power it seems...)
I can try and work on that if you wish, should have some time this weekend.
Otherwise I will try and put together a diff with just my changes for adding the vendor message and submit a PR.

@bentwire
I should have some time one evening this week, so I'm happy to work on this if you want to work on that PR:)

Any luck with the panic?

I think so?  I modified the code slightly to make sure it was in the right state before calling start sync.
It does not feel quite right to me though:
fn establish_usb_20(&mut self) {
        self.state = State::Measuring { cc_pin: CcPin::CC1 };
        self.events.enqueue(DriverEvent::StateChanged).ok().unwrap();
        //while self.events.dequeue().is_some() {}

        self.start_sink();
    }

Oh here is some happy news:
warning: `usb-c-fusb302-pi` (bin "usb-c-fusb302-pi") generated 7 warnings (run `cargo fix --bin "usb-c-fusb302-pi"` to apply 6 suggestions)
    Finished release [optimized + debuginfo] target(s) in 0.04s
     Running `probe-run --chip RP2040 target/thumbv6m-none-eabi/release/usb-c-fusb302-pi`
(HOST) INFO  flashing program (6 pages / 24.00 KiB)
(HOST) INFO  success!
────────────────────────────────────────────────────────────────────────────────
INFO  INIT!
└─ usb_c_fusb302_pi::app::init::{closure#0} @ src/main.rs:222
INFO  INIT COMPLETE!
└─ usb_c_fusb302_pi::app::init::{closure#0} @ src/main.rs:253
DEBUG CRC ok
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:291
DEBUG Invalid CRC
└─ fusb302b::{impl#2}::check_for_msg @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:310
DEBUG Invalid CRC
└─ fusb302b::{impl#2}::check_for_msg @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:310
DEBUG Invalid CRC
└─ fusb302b::{impl#2}::check_for_msg @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:310
DEBUG Invalid CRC
└─ fusb302b::{impl#2}::check_for_msg @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:310
DEBUG Invalid CRC
└─ fusb302b::{impl#2}::check_for_msg @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:310
DEBUG Invalid CRC
└─ fusb302b::{impl#2}::check_for_msg @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:310
DEBUG Invalid CRC
└─ fusb302b::{impl#2}::check_for_msg @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:310
DEBUG Good CRC sent
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:295
DEBUG USB PD comm
└─ fusb302b::{impl#2}::establish_usb_pd @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:409
INFO  CALLBACK
└─ usb_c_fusb302_pi::callback @ src/main.rs:312
INFO  protocol changed
└─ usb_c_fusb302_pi::callback::{closure#0} @ src/main.rs:345
DEBUG CRC ok
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:291
INFO  CALLBACK
└─ usb_c_fusb302_pi::callback @ src/main.rs:312
INFO  Capabilities changed: 1
└─ usb_c_fusb302_pi::callback @ src/main.rs:315
DEBUG supply @ 0: 5000mV 3000mA
└─ usb_c_fusb302_pi::callback::{closure#0} @ src/main.rs:323
INFO  requesting supply FixedSupply(637636908)@0
└─ usb_c_fusb302_pi::callback::{closure#0} @ src/main.rs:337
DEBUG Good CRC packet
└─ fusb302b::{impl#2}::check_for_msg @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:314
INFO  CALLBACK
└─ usb_c_fusb302_pi::callback @ src/main.rs:312
INFO  power accepted
└─ usb_c_fusb302_pi::callback::{closure#0} @ src/main.rs:346
DEBUG TX ack
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:280
DEBUG CRC ok
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:291
DEBUG Good CRC sent
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:295
DEBUG CRC ok
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:291
DEBUG Good CRC sent
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:295
INFO  CALLBACK
└─ usb_c_fusb302_pi::callback @ src/main.rs:312
INFO  power ready
└─ usb_c_fusb302_pi::callback::{closure#0} @ src/main.rs:344
DEBUG VENDOR: 64, 1, [1, 128, 0, 255, 214, 196, 43, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
└─ usb_pd::message::{impl#0}::parse @ /home/mike/devel/rust/embedded/usb-pd-rs/usb-pd/src/message.rs:62
DEBUG Vendor Defined Message! [1, 80, 0, ff, d6, c4, 2b, ee]
└─ usb_pd::sink::{impl#0}::handle_msg @ /home/mike/devel/rust/embedded/usb-pd-rs/usb-pd/src/sink.rs:138
DEBUG CRC ok
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:291
DEBUG Good CRC sent
└─ fusb302b::{impl#2}::check_for_interrupts @ /home/mike/devel/rust/embedded/usb-pd-rs/fusb302b/src/lib.rs:295

@fmckeogh Have you been able to find any of the vendor defined message (VDO I think) formats?  I want to fix the vendor  message so the length is more correct but I can't find any format anywhere...
According to the number of object field in the header there should be 1 object, but it can't be 32bits long because there are obviously at least 8 valid bytes in the packet...
Right now that's the only thing preventing me from putting together a PR with my changes.

@fmckeogh Finally found something.  Created a PR for you to review!
Thanks!

@fmckeogh  Is it OK if I close this for now?

@bentwire Sure, I just pushed a commit replacing the callback API, let me know what you think:)

@fmckeogh Looks good!  Will port to it tonight!

@fmckeogh Working great!


FragMolBuildingEnvContext function obj_to_graph unable to generate Graph for certain molecules

The function obj_to_graph takes forever to generate graphs for some molecules even though the are of the same size as the molecules that it can randomly sample. So it takes like 50 minutes to generate the graph and even then it returns Nonetype

Rephrasing the issue properly

Not all molecules can be expressed by the default fragment set used in the code base. Normally the search stops after a while if that's the case, but I don't recall it taking up to 50 minutes.
If you can give more specific examples I may be able to give better insights.

Yes, the _recursive_decompose  function in frag_mol_env.py is meant to stop if it takes more than 1000 recursive iterations, but I removed it in my fork as it was being a bottle neck.
Here's how I was trying to generate graphs:
objs = [rdkit.Chem.MolFromSmiles(x) for x in df["SMILES"]]
//So first generating a bunch of molecules from the Smiles that I have in my dataframe
graphs = [ctx.obj_to_graph(x) for x in objs], where ctx is FragMolBuildingEnvContext object
Now here's how my molecules from the dataset look like:

And here are the corresponding Smiles Values:
"Nc1nnc(-c2ccc(N+[O-])o2)o1"
"O=C(C[C@H]1CC[C@@H]2C@HO1)NCCc1ccncc1"
"CC(C)CC@@HC(=O)N[C@H]1C(=O)NC@@HC(=O)N[C@H]2C(=O)N[C@H]3C(=O)NC@H[C@H]"
"(O)c3ccc(c(Cl)c3)Oc3cc2cc(c3O[C@@H]2OC@HC@@HC@H[C@H]2O[C@H]2CC@(N)C@HC@HO2)Oc2ccc(cc2Cl)[C@H]1O"
"O=C1CN(/N=C/c2ccc(N+[O-])o2)C(=O)N1"
"Cn1cnc(CCNC(=O)C[C@@H]2CC[C@@H]3C@HO2)c1"
"O=C(C[C@@H]1CC[C@H]2C@@HO1)NCCc1ccncc1"
"Cc1nnc(SCC2=C(C(=O)O)N3C(=O)C@@H[C@H]3SC2)s1"
"CCC@HC@HC1=N[C@H](C(=O)N[C@@H]
(CC(C)C)C(=O)N[C@@H]2CCC(=O)O[Zn]OC(=O)C[C@H]3NC(=O)C@HNC(=O)C@@HNC(=O)C@HNC(=O)C@@HNC(=O)C@HNC(=O)C@HNC2=O)CS1"
Now id it because, these are too MacroCycles?
Also, I found that it is possible to build their graphs if using MolBuildingEnvContext class, will the too produce different results? Because I was able to train my model, but the predictions don't seem right.
Also after you are done training a model, to get the prediction, we just do the following right
model.eval()
algo.create_training_data_from_own_samples(model, 8)
Or is there some other method to get the model to generate molecules?

Thanks a lot for the clarification. Will try creating appropriate fragments and putting them to use.

I created fragments specific to my dataset using BRICS from rdkit, but I have a bunch of questions:

Take for instance this molecule:

When BRICS generates there fragments, they look something like:

i.e. They have a number in asterisk attached to the region where the bond was cleaved, now if we number the atoms, they look like:

Now, since for the fragments set, we need to have the SMILES of the molecules along with the atom index where other fragments can be connected, what I have done is to remove the [int*] from the molecules and take it's immediate neighbor as the connecting node, so for instance, for the above fragments, the unchanged smiles look like:
'[14*]c1ccc(N+[O-])o1', '[14*]c1nnc(N)o1'
After removing the [14*] part, the smiles and their respective fragments look like:
'c1ccc(N+[O-])o1'  ,  'c1nnc(N)o1'

Now, we can see that the Carbon atoms that had 14* attached to them have now taken upon their index positions, so is it right if finally I consider the fragments and their respective atom_idx to be:
('c1ccc(N+[O-])o1',[0])  and ('c1nnc(N)o1',[0])

For some molecules in my dataset, BRICS doesn't find any fragments, so the molecule itself ends up being the fragment. So in that case naturally the atom_idx list is empty, will that hinder the learning process in any way.
e.g.  'Cc1ncc[nH]1'

is it right if finally I consider the fragments and their respective atom_idx to be:

Yes, that's more or less how we did it. We then look for fragments that are used more than once, and if in their repetitions they are using different attachment atoms we add those atoms to the list.

so the molecule itself ends up being the fragment

This is a bit trickier, but a reasonable heuristic is to find carbon atoms with free hydrogens/valence and use those as attachment atoms.

@bengioe has something changed in the code base? Because the colab kernel seems to be crashing at the
algo.create_training_data... function. At first I thought, there might be some issues with my fork or the data, but even the getting started colab notebook linked in the implementation notes throws the same issue.
If the error is exclusively on my side, then I had one more issue prior to this. I was able to construct the graphs after feeding the model my own fragments for the molecules that I have, and I have the corresponding reward values as well. Here's the file:
https://drive.google.com/file/d/15VZ3ixBYKoWy_OUnEeuwnmsdPSZiTCdQ/view?usp=sharing
But while training, I get nan losses and the model doesn't learn anything. I tried to trace where it might be shooting off to nan but couldn't. Any chance you could help on this?

Alright, I was able to resolve the kernel crashing error by going to tools->command palette->Use Fallback Runtime as it seems that Colab has gone through some updates, but still can't resolve the null value error

You're right, colab updated their torch version which broke the torch_geometric pip install command. I updated it, should now be !pip install torch_geometric torch_sparse torch_scatter rdkit gitpython omegaconf wandb --find-links https://data.pyg.org/whl/torch-2.3.0+cu121.html.

I can't really help with the specific files you're sharing, but maybe one thing to make sure of is that your reward is always strictly positive so that the log-reward is not NaN. Otherwise, when does it NaN? After a single gradient step, or many? Does the learning rate slow this down?

Thank you for the torch-geometric clarification.
And on the null values, yes, I am making sure that the reward values are all positive, and the training steps all look something like this:

So it outright starts with null values. Initially, I remember getting real values for the first two epochs or so after which it shoots off to inf or Nan, but now it's just null everywhere.
From your suggestion, I tried inc/dec the learning rate, but the null values remained.


NetAddress fixup

Cleans up the NetAddress type. The main change is adding to the IsValid() method, which checks whether a NetAddress is a valid address. Valid is defined as being of the form "host:port" such that "host" is not a loopback address (except in testing) nor an unspecified IP address, and such that neither the host nor port are blank, contain white space, or contain the null character.
Previously some methods allowed loopback addresses in testing while others did not. This change makes loopback addresses always valid in testing only. This allows us to get rid of some kludges in the gateway testing.
Fixes #1040

I would like to see testing to handle all of the cases that get changed in this PR.

Per-discussion, I think this PR should be exchanged for a modules.NewNetAddress() error, and the call to 'New' can do all of the error checking. It should clean things up quite a bit and add a bunch of safety.

So I didn't implement the NewNetAddress func because it in order to encourage its use you would need to make NetAddress a struct with a single, non exported, string field. However, we can't do this because it would break compatibility with RPCs that send NetAddresses and any other places that decode encoded NetAddresses.
So if we keep the type the same it would be up to the developer to remember to use NewNetAddress instead of simple assignment. But the developer could just as easily remember to check the IsValid method instead.
To make conditionally allowing loopback addresses during testing I made IsValid return an error instead of a bool. Now instead of
if !addr.IsValid() {
    if build.Release != "testing" || !addr.IsLoopback() {
        return
    }
}

you can do
if err := addr.IsValid(); err != nil {
    if build.Release != "testing" || err != modules.ErrLoopbackAddr {
        return
    }
}

Really you should never be checking IsLoopback() and should use the return value of IsValid() instead so that you catch other errors. This is especially true since previously IsLoopback() was used to check for the unspecified address, which is now only checked in IsValid.

However, we can't do this because it would break compatibility with RPCs that send NetAddresses and any other places that decode encoded NetAddresses.

Pretty sure that
type NetAddress string
and
type NetAddress struct {     addr string }
will encode to exactly the same bits

oh, unless we are using json

regardless, we could write marshalling/unmarshalling methods to ensure compatibility.

A malicious peer would still be able to send a malformed address so we have to check IsValid anyways.

you can do decode-time validation in the unmarshalling method.
func (na *NetAddress) UnmarshalJSON(b []byte) error {
    var addr string
    err := json.Unmarshal(b, &addr)
    if err != nil {
        return err
    }
    *na, err = NewNetAddress(addr)
    return err
}

Using NewNetAddress would force us to always allow (or disallow) loopback addresses during testing. In some places we currently disallow loopback addresses during testing and in others we allow it.

Consistency would be a good thing

Are we planning on closing this PR and replacing it with the netaddress stuff?

From Wikipedia:

Hostnames are composed of series of labels concatenated with dots, as are all domain names. For example, "en.wikipedia.org" is a hostname. Each label must be between 1 and 63 characters long,[2] and the entire hostname (including the delimiting dots but not a trailing dot) has a maximum of 253 ASCII characters.[3]
The Internet standards (Requests for Comments) for protocols mandate that component hostname labels may contain only the ASCII letters 'a' through 'z' (in a case-insensitive manner), the digits '0' through '9', and the hyphen ('-'). The original specification of hostnames in RFC 952, mandated that labels could not start with a digit or with a hyphen, and must not end with a hyphen. However, a subsequent specification (RFC 1123) permitted hostname labels to start with digits. No other symbols, punctuation characters, or white space are permitted.

I pushed a commit that implements these changes.

Thanks for the addition. Should we even allow unqualified hostnames?

Is there a reason that we need to? Probably no reason to allow them.

I believe localhost is an unqualified hostname.

True, but I think it's the only unqualified hostname that should be allowed. It makes the implementation slightly uglier, but I think it's still reasonably clean.

Requiring qualification broke some other tests, probably because they used hostnames like "foo"

Rebased and fixed up the previous commit to properly check for leading or trailing hyphens in hostname labels.

Added address validation to API calls, fixed up a few bugs in testing, and rebased. Should be good to go.

Removed address validation from API calls, and added validation to host.SetInternalSettings.


Clarification of ErrorCode parameter.

Without that "error string" with type "Exception" for property ErrorCode seems a bit strange.

@kant2002 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

IMPORTANT: When this content is ready to merge, the reviewer must add #sign-off in a comment or the approval may get overlooked.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@stevewhims : Thanks for your contribution! The author(s) have been notified to review your proposed change.