How should I use 'dart run' instead?

Hi team,
I tried to make this package under wsl, and it shows the error of dart below.  How should I use 'dart run' instead? Any code/script change?

Deprecated. Use dart run instead.
Building package executable...
Failed to build build_runner:build_runner:
../../../.pub-cache/hosted/pub.dev/watcher-1.0.2/lib/src/constructable_file_system_event.dart:7:57: Error: The class 'FileSystemEvent' can't be extended, implemented, or mixed in outside of its library because it's a sealed class.
abstract class _ConstructableFileSystemEvent implements FileSystemEvent {
^
make: *** [flutter/flutter.mk:121: flutter/result/json] Error 1
root@yehandy-mobl2:~/mlperf/mobile_app_open# ../../../.pub-cache/hosted/pub.dev/watcher-1.0.2/lib/src/constructable_file_system_event.dart:7:57: Error: The class 'FileSystemEvent' can't be extended, implemented, or mixed in outside of its library because it's a sealed class.
abstract class _ConstructableFileSystemEvent implements FileSystemEvent {^C

full log

mlperf/mobile_app_open# make
WITH_TFLITE=1
[ -z "" ] || rm -rf output/flutter/pub
make
output/flutter/pub/flutter.stamp
output/flutter/pub/flutter_common.stamp
make[1]: Entering directory '/root/mlperf/mobile_app_open'
WITH_TFLITE=1
cd flutter &&  flutter --no-version-check pub get
Woah! You appear to be trying to run flutter as root.
We strongly recommend running the flutter tool without superuser privileges.
/
📎
Resolving dependencies...
collection 1.17.2 (1.18.0 available)
device_info_plus 8.2.2 (9.0.3 available)
file 6.1.4 (7.0.0 available)
file_picker 5.2.10 (5.5.0 available)
http 0.13.6 (1.1.0 available)
material_color_utilities 0.5.0 (0.8.0 available)
package_info_plus 3.1.2 (4.1.0 available)
pedantic 1.11.1 (discontinued replaced by lints)
petitparser 5.4.0 (6.0.1 available)
platform 3.1.0 (3.1.2 available)
process 4.2.4 (5.0.0 available)
share 2.0.4 (discontinued)
share_plus 6.3.4 (7.1.0 available)
stack_trace 1.11.0 (1.11.1 available)
stream_channel 2.1.1 (2.1.2 available)
test_api 0.6.0 (0.6.1 available)
uuid 3.0.7 (4.0.0 available)
vm_service 11.7.1 (11.10.0 available)
win32 3.1.4 (5.0.7 available)
xml 6.3.0 (6.4.2 available)
Got dependencies!
mkdir -p output/flutter/pub
touch output/flutter/pub/flutter.stamp
cd flutter_common &&  flutter --no-version-check pub get
Woah! You appear to be trying to run flutter as root.
 You appear to be trying to run flutter as root.
We strongly recommend running the flutter tool without superuser privileges.
/
📎
Deprecated. Use dart run instead.
Building package executable...
Failed to build build_runner:build_runner:
../../../.pub-cache/hosted/pub.dev/watcher-1.0.2/lib/src/constructable_file_system_event.dart:7:57: Error: The class 'FileSystemEvent' can't be extended, implemented, or mixed in outside of its library because it's a sealed class.
abstract class _ConstructableFileSystemEvent implements FileSystemEvent {
^
make: *** [flutter/flutter.mk:121: flutter/result/json] Error 1
root@yehandy-mobl2:~/mlperf/mobile_app_open# ../../../.pub-cache/hosted/pub.dev/watcher-1.0.2/lib/src/constructable_file_system_event.dart:7:57: Error: The class 'FileSystemEvent' can't be extended, implemented, or mixed in outside of its library because it's a sealed class.
abstract class _ConstructableFileSystemEvent implements FileSystemEvent {^C

I didn't try WSL/WSL2, I guess it should just work if you got right Flutter SDK version (please check https://github.com/mlcommons/mobile_app_open/blob/master/flutter/pubspec.yaml).
@anhappdev might have better answer.

@andyyeh75 Unfortunately, I am not familiar with Windows so I cannot help much in this case.
But as @freedomtan suggested, please ensure you use the correct Flutter version (requires >=3.7.1 <3.8.0, tested with 3.7.6)

Thanks for the response. My flutter is new enough though.
flutter --version
Flutter 3.13.2 • channel stable • https://github.com/flutter/flutter.git
Framework • revision ff5b5b5fa6 (10 days ago) • 2023-08-24 08:12:28 -0500
Engine • revision b20183e040
Tools • Dart 3.1.0 • DevTools 2.25.0

Thanks for the response. My flutter is new enough though.
flutter --version
Flutter 3.13.2 • channel stable • https://github.com/flutter/flutter.git Framework • revision ff5b5b5fa6 (10 days ago) • 2023-08-24 08:12:28 -0500 Engine • revision b20183e040 Tools • Dart 3.1.0 • DevTools 2.25.0

You need to use a compatible Flutter version, not the latest one. Please test with Flutter v3.7.6.

please ensure you use the correct Flutter version (requires >=3.7.1 <3.8.0, tested with 3.7.6)


Support hacker's delight

I tried the following code in flux-playfround, but flux did not proved the postcondition. Z3 SMT solver probably can solve the problem.
I wish flux could handle algorithms that involve bit manipulation like this code.
#![allow(unused)]

#[flux::sig(fn(x0: u64) -> u64{x6: x6 <= 64})]
fn popcount(x0: u64) -> u64 {
    let x1 = (x0 & 0x5555_5555_5555_5555u64) + ((x0 >> 1) & 0x5555_5555_5555_5555u64);
    let x2 = (x1 & 0x3333_3333_3333_3333u64) + ((x1 >> 2) & 0x3333_3333_3333_3333u64);
    let x3 = (x2 & 0x0f0f_0f0f_0f0f_0f0fu64) + ((x2 >> 4) & 0x0f0f_0f0f_0f0f_0f0fu64);
    let x4 = (x3 & 0x00ff_00ff_00ff_00ffu64) + ((x3 >> 8) & 0x00ff_00ff_00ff_00ffu64);
    let x5 = (x4 & 0x0000_ffff_0000_ffffu64) + ((x4 >> 16) & 0x0000_ffff_0000_ffffu64);
    let x6 = (x5 & 0x0000_0000_ffff_ffffu64) + ((x5 >> 32) & 0x0000_0000_ffff_ffffu64);
    x6
}

The reason we don't support this out of the box is that bit vectors are way too slow to make them the default encoding of integers.
We do have some support for bit vectors, but you need a wrapper type see https://github.com/flux-rs/flux/blob/main/tests/tests/lib/rbitvec.rs and https://github.com/flux-rs/flux/blob/main/tests/tests/pos/surface/bitvec01.rs. We haven't implemented all the operators on bit vector so the example in the op is not currently expressible, but I think we could easily add support to write the example as:
#[flux::sig(fn(x0: u64) -> u64{x6: x6 <= 64})]
fn popcount(x0: u64) -> u64 {
    let x0 = Bv64::from_u64(x0);
    let x1 = (x0 & 0x5555_5555_5555_5555u64) + ((x0 >> 1) & 0x5555_5555_5555_5555u64);
    let x2 = (x1 & 0x3333_3333_3333_3333u64) + ((x1 >> 2) & 0x3333_3333_3333_3333u64);
    let x3 = (x2 & 0x0f0f_0f0f_0f0f_0f0fu64) + ((x2 >> 4) & 0x0f0f_0f0f_0f0f_0f0fu64);
    let x4 = (x3 & 0x00ff_00ff_00ff_00ffu64) + ((x3 >> 8) & 0x00ff_00ff_00ff_00ffu64);
    let x5 = (x4 & 0x0000_ffff_0000_ffffu64) + ((x4 >> 16) & 0x0000_ffff_0000_ffffu64);
    let x6 = (x5 & 0x0000_0000_ffff_ffffu64) + ((x5 >> 32) & 0x0000_0000_ffff_ffffu64);
    x6.to_u64()
}

It'd be neat to support bitvectors directly on integers as an opt-in behavior, but I'm not sure what that would look like because we would need some way to change the encoding of integers locally.

@nilehmann -- The verus people have a thing called assert BLAH by (bit_vector) -- to specify this but I think that's too hard for us (and also unclear that's what we want. I was thinking something like a "function-level" thing e.g.
#[flux::bit_blast(u64, Bv64)]
fn popcount(x0: u64) -> u64 {
  ...
}

would tell flux to tell encode all u64 as Bv64 when checking the constraints generated by popcount.
WDYT?

Yes, something like that could work. However, I did some testing, and the queries we are generating for the stuff we do support just hang fixpoint. It makes me think we are doing something wrong. Or are bit vectors really that slow?

Bit vectors are just that slow -- in these cases, the query is mostly going straight to Z3, not much happening in fixpoint.
That said, it could be there are some special flags to pass to the SMT solver / Z3 that make it more effective with bitvectors. When stuff hangs, you can:

Just run fixpoint directly on the generated file,
That will, in the .liquid directory, generate itself another .smt2 file which is the actual query sent to Z3,
You can then just run z3 on the query itself to see if it freezes.

Usually they (z3/cvc/etc.) are very good about getting back if one has queries that choke their solvers...


[Feature Request] key_equal, copy_key, zero_key in dict is slower than direct assignment if key type is primitive

Hi, I noticed an unoptimized situation that key_equal, copy_key, zero_key in dict are slower than direct assignment if key type is primitive. The root cause is if key_type doesn't contain meminfo, then key_equal will rollback to using memcmp, which is pretty slow compared to directly this_key == an_integer. Other two functions will rollback to using memcpy, which is also slow.
https://github.com/numba/numba/blob/a0605597430bb12c434dd116bc5eb84fb30513e0/numba/cext/dictobject.c#L448
https://github.com/numba/numba/blob/a0605597430bb12c434dd116bc5eb84fb30513e0/numba/cext/dictobject.c#L434
I think we can do more things in this intrinsic function, which includes generation of corresponding functions (i.e., key_equal, copy_key, zero_key) for primitive types. I have already tested this in an internal use-case, this optimization can boost performance at least 5%~10% if using numba typed.dict heavily (i.e., lots of dict lookup, insert operations)
https://github.com/numba/numba/blob/a0605597430bb12c434dd116bc5eb84fb30513e0/numba/typed/dictobject.py#L264

Hi @dlee992, do you have a reproducer for one of the functions you mentioned?

Hi, @guilhermeleobas.
Sure, I should provide an example to show it, I will give one after I provide a corresponding PR, then we can compare the performance changes with and without this optimization.
But I can ensure this situation is real for heavy usage of numba typed.Dict.


Can I opt out of object_changes for a particular model or attitribute?

This is somewhat related to #837 in that I have a large data column on my models, however I think I may be better served by the opposite of what's proposed in that issue - that is, to maintain the object column but not the object_changes column.
We had been running with no versions.object_changes column. Now that I've added this column (and gotten the awesome benefits in another table :D thank you folks, this gem is super valuable!), I realized I am writing a lot of data I don't care about for the data column in object_changes - since a tiny change to data causes it to be written out to versions effectively 2x.
I don't think skip or ignore is what I want, because I would indeed like the changes to data to produce a new version.
Should I go down the custom version model route? Or what do you recommend?

what do you recommend?

Per our contributing guide, please ask usage questions on StackOverflow.
Due to limited volunteer time, we can only accept bug reports and feature requests here on GitHub.
Once you create a question on StackOverflow, please feel free to comment here with the URL.
For instructions on how to file a bug report, please see our issue template.

Good idea! https://stackoverflow.com/questions/40749467/using-papertrail-can-i-opt-out-of-object-changes-for-a-particular-model-or-at

@jaredbeck would you take a look at this question please ^^, and perhaps circulate it among the maintainers? I added a bounty, but it will expire shortly.
<3


Add test case for mbb severity and fix error

Also, when using alarm.MINOR_ALARM instead of "MINOR" I got:
Traceback (most recent call last):
  File "/dls/science/users/tmc43/common/python/pythonIoc/tests/sim_records.py", line 29, in <module>
    t_mbbi = mbbIn('MBBI', 'One', 'Two', ('Three', alarm.MINOR_ALARM), initial_value=2)
  File "/dls/science/users/tmc43/common/python/pythonIoc/softioc/builder.py", line 86, in mbbIn
    return _in_record('mbbi', name, **fields)
  File "/dls/science/users/tmc43/common/python/pythonIoc/softioc/builder.py", line 28, in _in_record
    return getattr(PythonDevice, record)(name, **fields)
  File "/dls/science/users/tmc43/common/python/pythonIoc/softioc/pythonSoftIoc.py", line 105, in __call__
    DTYP = self.dtyp, **fields)
  File "/dls/science/users/tmc43/common/python/pythonIoc/softioc/pythonSoftIoc.py", line 33, in __init__
    record = builder(name, **fields)
  File "/scratch/tmc43/pipenv/pythonIoc-y_I5oBLg/lib/python3.7/site-packages/epicsdbbuilder/recordbase.py", line 129, in __init__
    setattr(self, name, value)
  File "/scratch/tmc43/pipenv/pythonIoc-y_I5oBLg/lib/python3.7/site-packages/epicsdbbuilder/recordbase.py", line 195, in __setattr__
    self.__ValidateField(fieldname, value)
  File "/scratch/tmc43/pipenv/pythonIoc-y_I5oBLg/lib/python3.7/site-packages/epicsdbbuilder/recordbase.py", line 206, in __ValidateField
    self._validate.ValidFieldValue(fieldname, str(value))
  File "/scratch/tmc43/pipenv/pythonIoc-y_I5oBLg/lib/python3.7/site-packages/epicsdbbuilder/dbd.py", line 96, in ValidFieldValue
    'Can\'t write "%s" to field %s: %s' % (value, name, message)
AssertionError: Can't write "1" to field TWSV: Not a valid menu choice

Regarding using alarm.MINOR_ALARM, yes, I'm afraid that's how it works.  I think that putting in special hacks to work around this would be a terrible idea!  At least we get a pretty straightforward error message...

Regarding using alarm.MINOR_ALARM, yes, I'm afraid that's how it works. I think that putting in special hacks to work around this would be a terrible idea! At least we get a pretty straightforward error message...

I was wondering if this was new behaviour, as the original docs and your updated docs both mentioned using alarm.MIINOR_ALARM when specifying mbbi/o records...

@Araneidae can I merge this one and make a 3.0 release? I think everything else is sorted now

Go ahead!


Add clean to top-level Makefile. Re-add dependency on vendor/

Merged after simplifying vendor/ thing as dicussed in above comment


Revert "[GOBBLIN-1293] Upgrades to gradle 5"

This reverts commit 9cbbfc1354769f2937824686545a6802a8eb58a9.
Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[ ] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-XXX

Description

[ ] Here are some details about my PR, including screenshots (if applicable):
Reverts the commit due to failed bintray publishing with gradle 5.6, will have to investigate further

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

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

@@             Coverage Diff              @@
##             master    #3137      +/-   ##
============================================
+ Coverage     46.02%   46.03%   +0.01%
- Complexity     9577     9584       +7
============================================
  Files          1986     1986
  Lines         75804    75807       +3
  Branches       8446     8446
============================================
+ Hits          34885    34895      +10
+ Misses        37642    37634       -8
- Partials       3277     3278       +1

Impacted Files
Coverage Δ
Complexity Δ

...a/org/apache/gobblin/cluster/GobblinHelixTask.java
60.21% <0.00%> (-2.16%)
6.00% <0.00%> (ø%)

.../apache/gobblin/runtime/api/JobExecutionState.java
79.43% <0.00%> (-0.94%)
24.00% <0.00%> (ø%)

...c/main/java/org/apache/gobblin/cli/JobCommand.java
0.00% <0.00%> (ø)
0.00% <0.00%> (ø%)

...pache/gobblin/writer/ParquetDataWriterBuilder.java
94.73% <0.00%> (+0.14%)
5.00% <0.00%> (+1.00%)

...pache/gobblin/writer/ParquetDataWriterBuilder.java
94.73% <0.00%> (+0.14%)
5.00% <0.00%> (+1.00%)

...main/java/org/apache/gobblin/util/HadoopUtils.java
30.26% <0.00%> (+0.32%)
24.00% <0.00%> (ø%)

.../modules/scheduler/GobblinServiceJobScheduler.java
59.27% <0.00%> (+2.06%)
27.00% <0.00%> (+2.00%)

...in/java/org/apache/gobblin/cluster/HelixUtils.java
38.01% <0.00%> (+3.30%)
14.00% <0.00%> (+2.00%)

...lin/util/filesystem/FileSystemInstrumentation.java
100.00% <0.00%> (+7.14%)
4.00% <0.00%> (+1.00%)

...a/org/apache/gobblin/util/limiter/NoopLimiter.java
60.00% <0.00%> (+20.00%)
3.00% <0.00%> (+1.00%)

Continue to review full report at Codecov.

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


Example of creating a Linode instance

The README only shows queries. Can you please provide an example of creating a Linode instance?
I'm having some issues. e.g. I tried linode.linode.create(region: '...', label: '...', type: 1, private_ip: true) and got back  Error #6 - DATACENTERID is required but was not passed in.  (Please consult https://www.linode.com/api/linode/linode.create), but the referenced page doesn't mention DATACENTERID.

Hey there,
This gem points you to the v4 documentation when, which is not helpful. Please check out the following:
https://www.linode.com/apiv3/linode
The correct syntax to use this is:
linode.linode.create(:datacenterid => 2, :planid => 1)
You can get a list of available datacenters with:
linode.avail.datacenters
and plans with:
linode.avail.linodeplans


chore(main): release 0.4.1

:robot: I have created a release beep boop
0.4.1 (2023-06-16)
Features

support specifying color mode in get devices endpoint (9397fea)

Miscellaneous Chores

release 0.4.1 (907d8b0)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/FruitieX/homectl-server/releases/tag/v0.4.1 :sunflower:


Script src assignment for Google Sign in Flutter web plugin should be via trusted type

Line of code with the injection sink: packages/google_sign_in/google_sign_in_web/lib/src/utils.dart
When a flutter web app uses the plugin, that line sets HTMLScriptElement.src to the string: 'https://apis.google.com/js/platform.js?o..' . To make it more secure (i.e. avoid DOM XSS risks), we need to make use of Trusted Type APIs rather than simply setting string.

This is tracked by https://github.com/flutter/flutter/issues/103448

We need to make use of Trusted Type APIs...

As of now, Trusted Types are only supported in Chromium browsers. Neither Firefox nor Safari support the Trusted Types API today (July 8th, 2022), so we can't really use them (without splitting the code in two)


generate type alias for the block type

Consider the c/c++ code with the clang Block type.
// bindgen-flags: --block-extern-crate -- -fblocks

typedef unsigned long long size_t;

void atexit_b(void (^)(void));

typedef void *dispatch_data_t;
typedef bool (^dispatch_data_applier_t)(dispatch_data_t region,
                                        size_t offset,
                                        const void *buffer,
                                        size_t size);
bool dispatch_data_apply(dispatch_data_t data,
                         dispatch_data_applier_t applier);

The generated code will use the block crate to wrap function/closure as a block pointer, instead of a *const c_void pointer without arguments/return type.
/* automatically generated by rust-bindgen */

#![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)]

#[macro_use]
extern crate block;
extern "C" {
    #[link_name = "\u{1}_Z8atexit_bU13block_pointerFvvE"]
    pub fn atexit_b(arg1: _bindgen_ty_id_19);
}
pub type dispatch_data_t = *mut ::std::os::raw::c_void;
pub type dispatch_data_applier_t = _bindgen_ty_id_26;
extern "C" {
    #[link_name = "\u{1}_Z19dispatch_data_applyPvU13block_pointerFbS_yPKvyE"]
    pub fn dispatch_data_apply(data: dispatch_data_t, applier: dispatch_data_applier_t) -> bool;
}
pub type _bindgen_ty_id_19 = *const ::block::Block<(), ()>;
pub type _bindgen_ty_id_26 =
    *const ::block::Block<(dispatch_data_t, usize, *const ::std::os::raw::c_void, usize), bool>;

Then, we can use a simple wrapper to call those functions.
pub fn block<A, R, F>(closure: F) -> *const Block<A, R>
where
    A: BlockArguments,
    F: 'static + IntoConcreteBlock<A, Ret = R>,
{
    let block = ConcreteBlock::new(closure);
    let block = block.copy();
    let ptr = (&*block) as *const _;
    let ptr = unsafe { _Block_copy(ptr as *const c_void) };

    ptr as *const Block<A, R>
}

#[derive(Debug)]
pub struct Data {
    ptr: dispatch_data_t,
}

impl Data
    /// Traverses the memory of a dispatch data object and executes custom code on each region.
    pub fn apply<F>(&self, applier: F) -> bool
    where
        F: 'static + Fn(&Self, usize, &[u8]) -> bool,
    {
        let data = self.clone();
        let applier = block(
            move |ptr: dispatch_data_t, offset: usize, buffer: *const c_void, size: usize| {
                assert_eq!(data.ptr, ptr);

                let buf = unsafe { slice::from_raw_parts(buffer as *const u8, size) };

                applier(&data, offset, buf)
            },
        );

        unsafe { dispatch_data_apply(self.ptr, applier) }
    }
}

    #[test]
    fn test_data() {
         //...
        assert!(data.apply(move |_data: &Data, offset: usize, buf: &[u8]| {
            assert_eq!(offset, 0);
            assert_eq!(buf, b"lowor");

            c.set(buf.len());

            true
        }));
    }

I agree the *mut c_void have better compatibility and less dependency, but I believe the block pointer with c_void is not a good practice, it is same to a callback function pointer without signature.
If you prefer to keep the default generated code simple, I suggest to add a new option like --block-signature instead of clang's -fblocks, without the option will generate *mut c_void for the block pointer. But the behavior will be different to the objc options (--objc-extern-crate -- -x objective-c)

@emilio do you mean write a new section like Generating Bindings to Objective C?

Sure, I have submit a new issue #1386 to follow up it.

@bors-servo r+
Thanks!

:hourglass: Testing commit 15c97cb4e2430c516b3482b0541b658263ac690d with merge 770052c4e960daf34a23a5890e3fb41aa3e59dba...

:broken_heart: Test failed - status-travis

@emilio could you restart the test again?

No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received
The build has been terminated

Yeah, looks like a fluke.


python310Packages.wandb: unbreak

Remove stale hard-coded python310Packages.bokeh version.
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 216727 run on x86_64-linux 1

1 package failed to build:

python310Packages.dalle-mini

5 packages built:

python310Packages.spacy
python310Packages.spacy-loggers
python310Packages.spacy-transformers
python310Packages.textacy
python310Packages.wandb

LGTM thanks so much @bcdarwin !


Use Java 8 as JVM-Target to allow usage in older projects

Thanks for your contribution @larsgrefer ! Merging this.

@larsgrefer v2.1.0 is now released.


[LIGHTNODE SALE] Support Subscription Add-on on Sale page

For our node sale, we will be adding an optional Enhanced support subscription. This support model will be structured similarly to the one found on Elastic's pricing page. There will be two tiers of support: a free Standard level and a paid Enhanced level.
https://www.notion.so/volumefi/EPIC-07-30-24-Lightnode-Support-Model-e562006093fd4bb1b538e8714c87bd7d?pvs=4

Delivered.


chore: remove src folder from source

src folder doesn't seem to be used in the repo, so it should be removed.

This is being referenced in our release script and composer.json, so we will need to make sure that those are updated:

in composer.json
in release scripts

Thanks for the tip, @bshaffer .
I also added a BC justification to ignore the missing /src logs in the BC checks. Old logs here


feat: [APPSMTH-29] make step up/down arrows in input Number and Currency widgets optional

Description
This PR makes step up/down arrows optional in

CurrencyInput
Input

NB: This would require updating the Appsmith Documentation
Fixes #18041
Type of change

New feature (non-breaking change which adds functionality)
This change requires a documentation update

How Has This Been Tested?

Cypress Tests

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Apologies for delay in responding, we wanted to QA the code and avoid regression on our end.

Tested and verified this PR for step up/down arrows being optional for input widget (number) and currency input widget:

Migration
JS toggle for the property
Helper text
functionality in edit and deployed version

Thanks @laveena-en i will take a look at it

/ok-to-test sha=3b3f709

/ok-to-test sha=2de3c10


MvN - Adding a multivariate Normal prior

I have finally added the MvN prior that I had been threatening to do.  Turns out it is fast (expected).
I have polished the code a little and the docs should be up to @nielsenmb 's standards (largely in part to ctrl-c ctrl-v).
We should run some tests in different corners of the numax parameter space but I am mildly optimistic.
Note - I have not attempted to account for the observational uncertainty on the prior values (the same is true for kde) as this softens things up a little.
I cannot persuade the tests to pass.  I have a problem that in pbjam_tests the kde type is hard coded in as a type but with no methods.  This causes 2 tests to fail - I'm not really sure how to get round this!  What do there tests actually do if the kde class is just a shell with no methods?
@nielsenmb - could you look at the failing tests and see how they could be fixed?

Regarding the testing, I tried to make a set of generic class instances for
standardizing the class method tests.
Not sure it worked out so well though.
I'll have a look at it.
On Wed, 1 Jul 2020 at 20:55, Guy Davies<EMAIL_ADDRESS>wrote:

I have finally added the MvN prior that I had been threatening to do.
Turns out it is fast (expected).
I have polished the code a little and the docs should be up to @nielsenmb
https://github.com/nielsenmb 's standards (largely in part to ctrl-c
ctrl-v).
We should run some tests in different corners of the numax parameter space
but I am mildly optimistic.
Note - I have not attempted to account for the observational uncertainty
on the prior values (the same is true for kde) as this softens things up a
little.
I cannot persuade the tests to pass. I have a problem that in pbjam_tests
the kde type is hard coded in as a type but with no methods. This causes 2
tests to fail - I'm not really sure how to get round this! What do there
tests actually do if the kde class is just a shell with no methods?
@nielsenmb https://github.com/nielsenmb - could you look at the failing
tests and see how they could be fixed?
You can view, comment on, or merge this pull request online at:
https://github.com/grd349/PBjam/pull/243
Commit Summary

Added MVN to priors
Polishing MvN class

File Changes

M Examples/Example-Star-API-Kepler.ipynb
https://github.com/grd349/PBjam/pull/243/files#diff-50c4dc44118896c6f1a9ba194a636846
(368)
M Inspector/pbjam_check_list.csv
https://github.com/grd349/PBjam/pull/243/files#diff-04d1d62f7f6051b2830251ae66b1cf09
(32918)
M pbjam/asy_peakbag.py
https://github.com/grd349/PBjam/pull/243/files#diff-1ad6c1c9b68bccbc34404c65f131035a
(223)
M pbjam/priors.py
https://github.com/grd349/PBjam/pull/243/files#diff-485921a6c1965db47185290017c23aed
(259)
M pbjam/star.py
https://github.com/grd349/PBjam/pull/243/files#diff-88067ec6395a4e5a28e9924a66ade166
(91)
M pbjam/tests/pbjam_tests.py
https://github.com/grd349/PBjam/pull/243/files#diff-7e7650e2b11fdfeaa98bd9dcb0089e94
(138)
M pbjam/tests/test_priors.py
https://github.com/grd349/PBjam/pull/243/files#diff-1f3feb63c8f5e12a6dcb9e5b854bf52a
(82)

Patch Links:

https://github.com/grd349/PBjam/pull/243.patch
https://github.com/grd349/PBjam/pull/243.diff

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/grd349/PBjam/pull/243, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEJWO35BM3QOVRJYLRUCE6TRZOIETANCNFSM4ON52HGQ
.

Super - Thanks @nielsenmb

Any progress on this? @nielsenmb

Can you copy in the error message you get from pytest?
On Mon, 20 Jul 2020 at 10:37, Guy Davies<EMAIL_ADDRESS>wrote:

Any progress on this? @nielsenmb https://github.com/nielsenmb
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/grd349/PBjam/pull/243#issuecomment-660919434, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEJWO32WEE2NVOQGCBOMJ3DR4QF6PANCNFSM4ON52HGQ
.

It looks like this branch doesn't have the Travis update. The tests are
still run by Pytest.
I'd suggest merging the latest PR #243 into master and then pulling that
into the MvN PR.
We should maybe talk about this tomorrow if there's time after the cico.
On Mon, 20 Jul 2020 at 10:55, Martin Nielsen <
<EMAIL_ADDRESS>wrote:

Can you copy in the error message you get from pytest?
On Mon, 20 Jul 2020 at 10:37, Guy Davies<EMAIL_ADDRESS>wrote:

Any progress on this? @nielsenmb https://github.com/nielsenmb
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/grd349/PBjam/pull/243#issuecomment-660919434, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEJWO32WEE2NVOQGCBOMJ3DR4QF6PANCNFSM4ON52HGQ
.

Managed to get a look at the branch, and the pytest failure doesn't look
directly related to the MvN addition.
All tests are running fine on master, so if you pull that into the MvN PR
then it might fix the issue.
On Mon, 20 Jul 2020 at 11:09, Martin Nielsen <
<EMAIL_ADDRESS>wrote:

It looks like this branch doesn't have the Travis update. The tests are
still run by Pytest.
I'd suggest merging the latest PR #243 into master and then pulling that
into the MvN PR.
We should maybe talk about this tomorrow if there's time after the cico.
On Mon, 20 Jul 2020 at 10:55, Martin Nielsen <
<EMAIL_ADDRESS>wrote:

Can you copy in the error message you get from pytest?
On Mon, 20 Jul 2020 at 10:37, Guy Davies<EMAIL_ADDRESS>wrote:

Any progress on this? @nielsenmb https://github.com/nielsenmb
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/grd349/PBjam/pull/243#issuecomment-660919434, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEJWO32WEE2NVOQGCBOMJ3DR4QF6PANCNFSM4ON52HGQ
.

Thanks - I'll follow you advice when I have a sec ... :)
What is the time line for merging this into master - after publication?

Yeah, that's probably best, although technically what the referee should be
evaluating (if they evaluate the code at all) is what's on Pypi.
On Mon, 20 Jul 2020 at 11:45, Guy Davies<EMAIL_ADDRESS>wrote:

Thanks - I'll follow you advice when I have a sec ... :)
What is the time line for merging this into master - after publication?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/grd349/PBjam/pull/243#issuecomment-660952020, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEJWO3YTC4JJZV5EC6D5OTDR4QN57ANCNFSM4ON52HGQ
.

Don't think this is relevant anymore, can it be closed?


MH-13256 Waveform operation fails

The ffmpeg command to generate the waveform png image fails with some videos (see the Jira ticket for more info). This PR fix this issue.
Jira Ticket: https://opencast.jira.com/browse/MH-13256
Info from: https://trac.ffmpeg.org/wiki/Waveform
The ffmpeg command to generate the waveform outputs this error:

[image2 @ 0x563637106740] Could not get frame filename number 2 from pattern '576-475e48c1-a72c-4bb3-b261-bab8bd92e2a8-waveform.png' (either set updatefirst or use a pattern like %03d within the filename pattern)

The ffmpeg errors guide says:

This usually occurs because the output name is incorrect or some option was omitted.

If outputting a single image you need to include -frames:v 1.
If outputting a series of images you need to use the proper naming pattern as described in the image muxer documentation. For example, output_%03d.png will make a series named output_001.png, output_002.png, output_003.png, etc.
If outputting a single image that is continuously overwritten with new images, add -update 1.

This PR adds the -frames:v 1 to the ffmpeg command to solve the problem.

This seems to be unrelated to the used Opencast version. If this is the case, I would suggest to redirect to 5.x or 4.x.
Does this happen because of a change in a newer version of ffmpeg and does this affect every video file? The issue description only speaks of some.

Correction: could you redirect to r/5.x. 4.x is soon EOL.


Provide a Guide filter on the DevSite so it's easy to find different guide types

Describe the solution you'd like
As we add more guides, it will get harder and harder to find them on the DevSite. Similar to the OSS Site it would be cool to offer a feature filter based on Guide Categories.  If possible leverage the existing component on the OSS site for filtering.

with our nav filtering I don't think we need this now. closing for now

with our nav filtering I don't think we need this now. closing for now


feat: add metaforra.com futuructa game into a project list

Overview
Added Futuructa game of the metaforra.com ecosystem into a project list.
Changes

Added project description to project.list.js
Added logo futuructa.webp file to images/ecosystem directory

Testing
You should run the project, go to /ecosystem path and see that Futuructa project has been successfully added to the project list. It has "gamefi" type so please be sure that GAMEFI category exists. We don't see this category on the current version of the BOBA website so maybe it should has been created before.

@wsdt Please take a look

@souradeep-das do you know something about the gamefi category?

please add gamefi to  const typeOrder = [ 'defi', 'nft', 'bridge', 'wallet', 'tool', 'token' ] on line 406.
Then it should work for my understanding.
I think for now, maybe add it as second or third value in the array, but my assumption is that we might move Gamefi to the first tab since we want to double down on Gamefi.
@sterswift thank you

Ok @wsdt , so I'm gonna add it on the first place

@wsdt added gamefi to the typeOrder

@InoMurko @sk-enya please approve

@sterswift
Can you please add gamefi to PROJECT_CAT
/containers/ecosystem/Ecosystem.js at line 13 so it will be visible for the user to filter refer screenshot below.

PROJECT_CAT

@sk-enya Done

Codecov Report

Merging #299 (bd95eb7) into develop (85b908d) will increase coverage by 30.59%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           develop     #299       +/-   ##
============================================
+ Coverage    47.12%   77.71%   +30.59%
============================================
  Files           99       39       -60
  Lines         3875     1324     -2551
  Branches       765      202      -563
============================================
- Hits          1826     1029      -797
+ Misses        2049      295     -1754

Flag
Coverage Δ

boba-contracts
?

contracts
77.71% <ø> (ø)

core-utils
?

data-transport-layer
?

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

Impacted Files
Coverage Δ

...kages/data-transport-layer/src/utils/validation.ts

...ages/boba/contracts/contracts/BobaFixedSavings.sol

...layer/src/services/l1-ingestion/handlers/errors.ts

.../src/services/l2-ingestion/handlers/transaction.ts

...contracts/contracts/standards/L2StandardERC721.sol

...ices/l1-ingestion/handlers/state-batch-appended.ts

packages/core-utils/src/external/index.ts

...ontracts/contracts/standards/L2GovernanceERC20.sol

...ntracts/contracts/standards/xL2GovernanceERC20.sol

...ackages/boba/contracts/contracts/ERC721Genesis.sol

... and 50 more

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

@InoMurko seems to be stuck


2d plotting with a 3d coordinate set#

I would like to plot only two of a graph's dimensions.  Oftentimes this is desirable because working in 3D can be hard to wrap one's head around.  This would be something like a keyword argument g.plot(dims=[1,2]) or such.
I poked my head in the plotting code and it appears that the bulk of the logic in the _plt* and _qtg* functions are built atop calls to _get_coords(G) and conditionals on G.coords.shape.  This makes it a little bit difficult to just insert a dims parameter.  It could be done, but it'd require a refactor.  One hacky option is to alter _plot_graph and  _plot_signal (and their upstream methods in graphs.py), to have dims=None as a keyword parameter and have
tmp = G.coords
if dims and len(dims)<G.coords.shape[1]:
     G.set_coordinates(tmp[:,dims])
## normal plotting (backend call)
G.set_coordinates(tmp)

Note that this doesn't consume any extra memory due to assignment by reference.

Thanks for your suggestion @stanleyjs. I agree with your point, and in general graphs might even be embedded in more that 3D.
Then, is it better to:

have a keyword argument which selects dimensions (as you propose),
let the user set G.coords as he wants.

(1) assumes that G.coords contains an embedding of the graph in any dimension, and (2) assumes that G.coords is specifically the 1-2-3 D embedding that will be used for plotting.  With (2), a user might set a G.embedding matrix with the full n-dimensional embedding and then call G.set_coordinates(G.embedding[:,dims]).
What's your thoughts?

So as it stands (2) is essentially already in place, we just don't have a G.embedding attribute.
It's not a problem, but I do think that shuffling around the coordinates using calls to G.set_coordinates(foo[:,slice]) is a little cumbersome. As for positives: (2) does solve an issue with keyword arguments for N-dimensional embeddings - setting the default slice. (2) also does not need any new code, and we won't have to change the dimension checking in graphs.Graph.set_coordinates().
So (1) requires new plotting logic, new dimension checking logic in set_coordinates, and some decision on what the default should be (the obvious choice is [0,1,2]). On the other hand, the call to plot a specific set of dimensions is one line rather than 2.  If one wants to plot multiple views on an embedding, this does start to matter.  Finally, it does seem stylistically more organic to me to be able to slice with the plotting function - one can do this inline with plt.scatter after all, it just doesn't have the nice pygsp wrapping.
I will note that adding the keyword arg (1) does not completely abrogate (2).


Update plots for threshold basics and application notebooks

for Threshold basics notebook update PR in cae-examples

label color bars with variable name and unit (if any)
correct variable units in hover tooltips
match plot title language with that elsewhere in the notebooks
split plot titles into 2 lines to not have them cut off
add variable unit to relevant plot titles

You'll notice Eric added a new check to ensure the code passes formatting requirements. Right now it shows these tests are failing. To ensure your code is formatted "correctly" just do the following (in terminal) and push the changes:
pip install black
python -m black climakitae

Then, the "lint" tests should pass!

You'll notice Eric added a new check to ensure the code passes formatting requirements. Right now it shows these tests are failing. To ensure your code is formatted "correctly" just do the following (in terminal) and push the changes:
pip install black
python -m black climakitae

Then, the "lint" tests should pass!


Add missing translation until 2022-06-10

Thank you for the update!  I'll merge and deploy this now


gh-1 - Move the Koryphe library out of Gaffer.

Codecov Report

:exclamation: No coverage uploaded for pull request base (develop@0b482c6). Click here to learn what that means.
The diff coverage is 58.9%.

@@            Coverage Diff            @@
##             develop      #2   +/-   ##
=========================================
  Coverage           ?   58.9%
  Complexity         ?     413
=========================================
  Files              ?      88
  Lines              ?    1229
  Branches           ?      91
=========================================
  Hits               ?     724
  Misses             ?     455
  Partials           ?      50

Impacted Files
Coverage Δ
Complexity Δ

...uk/gov/gchq/koryphe/tuple/ReferenceArrayTuple.java
0% <0%> (ø)
0 <0> (?)

...gov/gchq/koryphe/predicate/PredicateComposite.java
0% <0%> (ø)
0 <0> (?)

...le/bifunction/TupleAdaptedBiFunctionComposite.java
0% <0%> (ø)
0 <0> (?)

.../main/java/uk/gov/gchq/koryphe/tuple/n/Tuple4.java
0% <0%> (ø)
0 <0> (?)

...uple/predicate/TupleAdaptedPredicateComposite.java
0% <0%> (ø)
0 <0> (?)

.../koryphe/binaryoperator/AdaptedBinaryOperator.java
0% <0%> (ø)
0 <0> (?)

src/main/java/uk/gov/gchq/koryphe/tuple/Tuple.java
0% <0%> (ø)
0 <0> (?)

.../tuple/function/TupleAdaptedFunctionComposite.java
0% <0%> (ø)
0 <0> (?)

...gov/gchq/koryphe/bifunction/KorypheBiFunction.java
0% <0%> (ø)
0 <0> (?)

...chq/koryphe/tuple/predicate/KoryphePredicate5.java
0% <0%> (ø)
0 <0> (?)

... and 78 more

Continue to review full report at Codecov.

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


Differential fairness metric

Credit to Rashidul Islam for the reference implementation.
Adds smoothed_empirical_differential_fairness() to BinaryLabelDatasetMetric. This will use all protected attributes included in the dataset to compute the intersectional groups present. To ensure multi-class (non-binary) protected attributes are correctly considered, they should be mapped to integers in custom_preprocessing, e.g.:
def custom_preprocessing(df):
    df.race = df.race.map({'Black': 0, 'White': 1, 'Asian-Pac-Islander': 2,
                           'Amer-Indian-Eskimo': 3, 'Other': 4})
    return df

see examples in docs for more details.

Thanks Sam, this is great!  Based on a quick look, the implementation looks correct to me and Rashid.  Our suggestions are mainly on the generality of the implementation.
-It may be useful to allow the user to set the concentration_parameter (which can be any non-negative number).  The current value can be the default.
-Differential fairness can also be applied in the multi-class setting, as well as the binary label setting.  If AIF360 doesn't usually consider this case, then it's fine to just have binary labels.  If you do want to add this in future, we could send you demo code for that as well.  The only difference is, for line 189 of binary_label_dataset_metric.py, instead of max(pos_ratio(i, j), neg_ratio(i, j)) it's a max over such ratios for all outcomes.
-There is another version of our metric, differential fairness bias amplification, which calculates the difference in epsilon between the classifier and the data.  You may consider adding this to classification_metric.py.  In test_differential_fairness.py, this would correspond to calculating eps_clf - eps_data = 0.1066.

Thanks for the feedback!
I made concentration a parameter for the metric and I added the bias amplification metric. The changes I made should make it easier to implement multi-class down the road too but for now I think we should start with this.

Fantastic!  Thanks a lot, Sam and Prasanna!
On Tue, Nov 26, 2019 at 7:04 PM Samuel Hoffman<EMAIL_ADDRESS>wrote:

Merged #125 https://github.com/IBM/AIF360/pull/125 into master.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/IBM/AIF360/pull/125?email_source=notifications&email_token=ACBR7VW2UWK5KKNJ3GZOAS3QVW2PPA5CNFSM4JM5QB6KYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOVDUUFZY#event-2833859303,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACBR7VS26VGRMCN27GD2ZWLQVW2PPANCNFSM4JM5QB6A
.

That's great. Thanks, Sam and Prasanna.


K8SSAND-580 ⁃ Migrate reaper_controller to k8ssandra-operator

reaper-operator consists of the Reaper CRD, the reaper_controller, and the cassandradatacenter_controller. reaper_controller configures and deploys Reaper. We want migrate that code and the Reaper CRD into this repo. It will probably be easiest to recreate the CRD. We just need to make sure it has the same fields.
cassandradatacenter_controller's main function is registering CassandraDatacenters with Reaper. We can move this functionality into k8ssandracluster_controller.
For this ticket assume that a Reaper instance per CassandraDatacenter is the default.
Integration and e2e tests should be added/updated as necessary.
┆Issue is synchronized with this Jira Task by Unito
┆Epic: Reaper Controller Integration
┆Fix Versions: k8ssandra-operator-1.0.0-beta.1
┆Issue Number: K8SSAND-580
┆Priority: Medium

I created a draft PR here: https://github.com/k8ssandra/k8ssandra-operator/pull/216.
I migrated the API, controllers and pkg content to k8ssandra-operator and modified a few things accordingly (API group for instance).

cassandradatacenter_controller's main function is registering CassandraDatacenters with Reaper. We can move this functionality into k8ssandracluster_controller.

@jsanda I suppose we want to adopt for Reaper the same design principles in place for Stargate? That is, a global template at k8c level, overridable at DC level?
Also, the current way Reaper instances are wired to DCs is through a specific annotation placed in the target cassdc resource: reaper.k8ssandra.io/instance. Do we want to keep honoring this mechanism? Because this is the opposite of what we do to connect stargates to cassdcs: the stargate resource has a reference to the DC name (but the target cassdc resource itself is unaware of the stargate resource).

Agreed that we don't need the cassandaradatacenter_controller and yeah, I think it makes sense to follow the same design with respect to configuring at cluster and DC level. One difference though is I don't think we need to go beyond the DC level with Reaper whereas with Stargate it can be configured at the rack level.

I am making good progress but also facing some challenges. I will try to summarize everything below:
Overall migration
Action items:

[x] reaper-controller moved to new API group + controller
[x] datacenter-controller logic incorporated in k8ssandra-controller
[x] migrate reaper package and subpackages + unit tests. Subpackages merged into one single reaper package.
[ ] migrate controller tests, remove Ginkgo.
[ ] migrate e2e tests, remove Ginkgo.

Introduce a ReaperTemplate type
Action items:

[x] Subset of ReaperSpec that can appear at cluster-level and DC level
[x] Same "coalesce" semantics already in place for K8ssandraCluster and Stargate

Connecting CassandraDatacenter and Reaper instances
Currently, the user puts an annotation on CassandraDatacenter resource. But we usually do the opposite: the Reaper instance should "point" to CassandraDatacenter (cf. Stargate). Although, I must confess the annotation approach has some advantages, e.g. a DC cannot reference more than one associated resource. @jsanda do you have any preference? If not, I'm going to go with a Stargate-like approach.
Action items:

[x] user or k8ssandra-controller assigns reference field to CassandraDatacenter resource on ReaperSpec; field is mandatory (same as Stargate).

This field is DISTINCT from CassandraBackend ref, see next topic.

Confusion between target DC and backend DC
This came as a surprise for me: when creating new deployments reaper-controller looks up the backend DC, not the target DC. See here. I don't explain how this can work when using in-memory storage or different target/backend DCs. @adejanovski do you know? Am I missing something obvious?
Action items:

[x] Change DC-lookup logic to lookup the DC based on the reference field on ReaperSpec. DO NOT use the backend DC ref for that.
[ ] Change validation of backend DC: if storage type is Cassandra and no backend provided, use the target DC instead of returning a validation error.

Schema reconciliation
Currently: done in 2 places:

during reconciliation of a Reaper instance: keyspace creation
inside an init-container in each pod in the Reaper deployment: table upgrades (it seems)

IMO this can only work because Reaper deployments have 1 single replica, and as long as user does not create 2 Reaper resources in the same target DC. Otherwise we'd run into the same issue as for Stargate (concurrent schema updates). @adejanovski do you confirm?
Action items:

[ ] Schema reconcile should be done at K8ssandraCluster level IIF:

the Reaper instance was created by that controller (same as Stargate auth schema);
the Reaper instance is configured with Cassandra backend.

[ ] Otherwise, if the Reaper resource was created manually: do nothing and expect user to have created the schema upfront, if required.

Schema replication
Currently users select the desired replication in a ReplicationConfig object. I wonder if this should be kept? Seems like a nice way for users to shoot themselves in the foot. Indeed if the Reaper instance was created by k8ssandra-controller, then the controller knows the best replication, especially in multi-DC setups (see next topic). If not, then user is expected to have created the keyspace with appropriate replication.
Action items:

[ ] Remove ReplicationConfig;
[ ] K8ssandra controller should compute the desired replication, if necessary.

Multi-DC setups
Reading this page, in a multi-DC setup with Cassandra backend I think we need to adopt the approach named "Multiple Reaper instances with JMX accessible for the local DC only":

The reaper keyspace would be created only once by k8ssandra-controller;
The contents of the keyspace would be created by the init-container in the first Reaper deployment in the first DC. Since reapers are deployed sequentially, this should be OK.

@adejanovski can you please just confirm for me: when using datacenterAvailability: EACH do all Reaper instances share the same reaper keyspace?

This came as a surprise for me: when creating new deployments reaper-controller looks up the backend DC, not the target DC. See here. I don't explain how this can work when using in-memory storage or different target/backend DCs. @adejanovski do you know? Am I missing something obvious?

I think in-memory should never be used unless it's for testing.
While reaper-operator could support repairing multiple clusters, thus distinguishing the backend DC and the target DC, in the context of k8ssandra-operator I would say both should be the same. We're repairing a single Cassandra cluster and are using it as well as backend.

IMO this can only work because Reaper deployments have 1 single replica, and as long as user does not create 2 Reaper resources in the same target DC. Otherwise we'd run into the same issue as for Stargate (concurrent schema updates). @adejanovski do you confirm?

The schema migration library we use performs leader election prior to doing the migrations to ensure we don't have concurrent schema updates.

@adejanovski can you please just confirm for me: when using datacenterAvailability: EACH do all Reaper instances share the same reaper keyspace?

Yes, when using EACH, the reaper keyspace (usually named reaper_db) will be used by all Reaper instances as a way of coordinating work and exchanging metrics.

I think in-memory should never be used unless it's for testing. While reaper-operator could support repairing multiple clusters, thus distinguishing the backend DC and the target DC, in the context of k8ssandra-operator I would say both should be the same. We're repairing a single Cassandra cluster and are using it as well as backend.

Excellent, if you agree then I will remove the in-memory storage type. This will greatly simplify the new CRD.

Please do, it's useless in our context 👍
Also, Postgres and H2 are both gone from Reaper 3.0.0, so it's just Cassandra and Astra now (not sure that matters for this task though).

Catching up on the ticket...
I am in favor of removing the memory backend, even if it means updating some tests.
With respect to target DC and backend, I am in favor of the simplification. The annotation isn't necessary since the K8ssandraCluster controller is managing the orchestration. In k8ssandra 1.x we don't have that orchestration layer.

I took a first pass reviewing #216 and want to provide more feedback on some of the things covered in https://github.com/k8ssandra/k8ssandra-operator/issues/4#issuecomment-962972696. (Note that comments to follow are based on code in #216)
Orchestration
First, I want to discuss the sequence of events for the orchestration performed by K8ssandraClusterReconciler. It first reconciles all CassandraDatacenters. It will continue to requeue until all CassandraDatacenters are ready.
Once all CassandraDatacenters are ready it proceeds to reconcile Stargate for each DC in a similar fashion. Suppose we have three DCs - dc1, dc2, dc3 - with Stargate to be deployed in each DC. K8ssandraClusterReconciler will first deploy Stargate in dc1. It will deploy Stargate in dc2 only after Stargate in dc1 is ready and then deploy in dc3 only after Stargate in dc2 is ready. For the first Stargate instance, K8ssandraClusterReconciler reconciles the Stargate auth schema. After the auth schema is reconciled, the Stargate instances can be deployed all at once. We don't need to wait until Stargate in dc1 is ready before moving on to deploy Stargate in dc2 and dc3. We have a similar situation with Reaper.
Continuing with the previous example, suppose we are deploying Reaper in dc1, dc2, and in dc3. K8ssandraClusterReconciler will deploy Reaper in dc1 only after all Stargates are ready. The Reaper schema is initialized when Reaper is deployed in dc1. Reaper is deployed in dc2 and in dc3 only after Reaper is ready in dc1 and in dc2 respectively. Let's assume for the moment that we can initialize the Reaper schema separately before deploying any Reaper instances. As long as the schema is initialized first, we can and should deploy Reaper across all DCs at the same time (i.e., within the same reconciliation). Furthermore, we can and should deploy Reaper and Stargate at the same time.
I am not suggesting that the changes happen in #216. In fact, I'd say they are outside the scope of this issue; however they absolutely should happen. One of the reasons I wanted to share my thoughts on the orchestration is that it impacts some of the other things mentioned, namely schema reconciliation.
schema reconciliation
Like the Stargate auth keyspace, the Reaper keyspace needs to be initialized by K8ssandraClusterReconciler. This includes configuring replication. Unlike Stargate, Reaper schema initialization is much more involved as it configures/updates all the tables required by Reaper. If we continue to rely on initializing schema with an init container, then we would need to create the first Reaper instance and wait until it is ready before deploying other Reaper instances in other DCs. This however is suboptimal. We should initialize the schema up front and then deploy all Reaper instances at once (this is assuming all CassandraDatacenters are already ready).
I absolutely do not want to implement Reaper schema initialization in the operator :) Reaper already uses a library to handle new installs and upgrades. This should be wrapped in a k8s job. We wouldn't even need to worry about leader election. Again, this would be fall outside the scope of this issue IMO.

Thanks @jsanda !

After the auth schema is reconciled, the Stargate instances can be deployed all at once. We don't need to wait until Stargate in dc1 is ready before moving on to deploy Stargate in dc2 and dc3. We have a similar situation with Reaper.

Agreed, Stargates and Reaper should be deployed all at once, after their schemas are reconciled. I also agree that this should be done outside of this ticket, because I think we need now to introduce a helper component, something similar to ReconciliationContext in cass-operator, to make these changes easier to implement.

We should initialize the schema up front and then deploy all Reaper instances at once (this is assuming all CassandraDatacenters are already ready). I absolutely do not want to implement Reaper schema initialization in the operator :) Reaper already uses a library to handle new installs and upgrades. This should be wrapped in a k8s job.

Agreed again, but one question: what about people using Reaper as standalone instances? Is our stance always the same here? – that is: users manually creating Stargates and Reapers are also responsible for their schemas.
One last thing: you've noticed that my PR is based on #156 unfortunately. There are bits of code there that I needed for Reaper. Once #156 is merged I will cleanup this PR.

what about people using Reaper as standalone instances? Is our stance always the same here? – that is: users manually creating Stargates and Reapers are also responsible for their schemas.

I think that is a fair stance. Whatever (or whoever) is managing the orchestration should configure the schemas.


Trusted computers forgotten when dual booting.

If I boot into Windows and trust the computer, and then boot into Linux and trust the computer Windows on the computer will no longer be trusted. The same thing happens with virtual machines.
Chrome version: 51.0.2704.106

That's not linked to the TOTP code in this repo: that's linked to however whatever app you're authing to handles trust. You'd want to reach out to support for whichever site you're logging in to.

It happens for logging into Google accounts.

Yes, but this repo isn't for the google services you're logging into. The app just provides TOTP codes.

This issue was moved to google/google-authenticator-libpam#2


Unable to open sqlite database when building OSS

I've found a problem when I tried to run app with pre-populated database "oss_stubbed_data.sqlite", this error appears on launch (on device and simulator):
SQLite error code:14, 'unable to open database file'"
Downloading the the app data seems that the db is no longer readable , while the one in the resources it is valid.
Have you encountered the same problem?

Hrm, I don't think so, this issue wouldn't be able to happen if the OSS db wasn't working: https://github.com/artsy/energy/issues/149

Can you open it with the sqlite command shipped with the OS, or with Base.app?

I can open it with sqlite3 command, this is the full error log:
2016-02-01 11:59:01.406 FolioDev[550:434256] Attempt to add read-only file at path file:///var/mobile/Containers/Bundle/Application/7542CE0B-85E0-478E-970A-5AAD67F695FB/FolioDev.app/oss_stubbed_data.sqlite read/write. Adding it read-only instead. This will be a hard error in the future; you must specify the NSReadOnlyPersistentStoreOption.
2016-02-01 11:59:01.414 FolioDev[550:434256] CoreData: error: (14) I/O error for database at /var/mobile/Containers/Bundle/Application/7542CE0B-85E0-478E-970A-5AAD67F695FB/FolioDev.app/oss_stubbed_data.sqlite.  SQLite error code:14, 'unable to open database file'
2016-02-01 11:59:01.419 FolioDev[550:434256] CoreData: error: -addPersistentStoreWithType:SQLite configuration:(null) URL:file:///var/mobile/Containers/Bundle/Application/7542CE0B-85E0-478E-970A-5AAD67F695FB/FolioDev.app/oss_stubbed_data.sqlite options:{
NSInferMappingModelAutomaticallyOption = 1;
NSMigratePersistentStoresAutomaticallyOption = 1;
} ... returned error Error Domain=NSCocoaErrorDomain Code=256 "The file couldn’t be opened." UserInfo={NSSQLiteErrorDomain=14, NSUnderlyingException=I/O error for database at /var/mobile/Containers/Bundle/Application/7542CE0B-85E0-478E-970A-5AAD67F695FB/FolioDev.app/oss_stubbed_data.sqlite.  SQLite error code:14, 'unable to open database file'} with userInfo dictionary {
NSSQLiteErrorDomain = 14;
NSUnderlyingException = "I/O error for database at /var/mobile/Containers/Bundle/Application/7542CE0B-85E0-478E-970A-5AAD67F695FB/FolioDev.app/oss_stubbed_data.sqlite.  SQLite error code:14, 'unable to open database file'";
}
ARLog : Core Data Error: {
NSSQLiteErrorDomain = 14;
NSUnderlyingException = "I/O error for database at /var/mobile/Containers/Bundle/Application/7542CE0B-85E0-478E-970A-5AAD67F695FB/FolioDev.app/oss_stubbed_data.sqlite.  SQLite error code:14, 'unable to open database file'";
}
2016-02-01 11:59:01.459 FolioDev[550:434256] Error deleting Core Data Store: Error Domain=NSCocoaErrorDomain Code=4 "“ArtsyPartner.sqlite” couldn’t be removed." UserInfo={NSFilePath=/var/mobile/Containers/Data/Application/E83C328D-A15C-4F2E-886A-516A24BA3AEB/Documents/ArtsyPartner.sqlite, NSUserStringVariant=(
Remove
), NSUnderlyingError=0x100a1df40 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

..it seems that once copied the db becomes unreadable, this is strange..


Italian translation done

Hello, just done the italian translation :)

signle-handedly translating world to italian one app at the time lol

it's absolutely what i'm doing :)


Invalid documentation for --no-hot-client

Operating System: Windows 10
Node Version: node 8.11
NPM Version: 5
webpack Version: 4.12
webpack-serve Version: 1.0.4

This issue is for a:

[ ] bug
[ ] feature request
[x] modification request

Code
CLI Command
  $ webpack-serve --no-hot --mode=development

webpack.config.js
https://github.com/blikblum/marionette-wires-revisited/blob/master/webpack.config.js

Expected Behavior
The cli documentation should contain the correct options
Actual Behavior
In https://github.com/webpack-contrib/webpack-serve#cli there's a --no-hot option which if set, breaks the server (the page reloads indefinitely with message i ｢hot｣: WebSocket Client Connected ). The correct option seems to be --no-not-client cited here

Thanks for the issue 🍺  We'll have this fixed shortly.


feat: 🎸 Rename SQFormCheckboxGroup and replace it

Renamed SQFormCheckboxGroup(Item) to SQFormInclusionList(Item) and readd
SQFormCheckboxGroup(Item) to creage a checkbox group to be used within
SQForm and other form elements
BREAKING CHANGE: 🧨 Rename SQFormCheckboxGroup(Item) to SQFormInclusionList(Item)
Diff is pretty bad since we reused a file.
✅ Closes: #101
Look at this loom! https://www.loom.com/share/0373e3e4221b4a04a60c5c1568477410

If you have not yet done so, can you warn the Squad PM and tech lead that will be effected by this breaking change so they account for it when the time comes to update their SQForm version?

Taken care of. I let Danish S know who is the tech lead on the one project i found that used the old SQFormCheckboxGroup

Looks great!
issue: The only thing I see that may be missing is error handling on the form components using isFieldError from useForm

I'm not sure that applies to this component. MUI doesn't provide an error field. Not from what I can see at least. And it makes sense intuitively that a checkbox group wouldn't have an error other minimum selected, which can be provided through yup.
If a user isn't allowed to select specific combinations then the consumer of this component should be listening for the changes and dynamically disable options as appropriate.
Did you have a specific case in mind about why we would need to utilize isFieldError in another capacity besides the HelperTextComponent?

:tada: This PR is included in version 4.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Looks great!
issue: The only thing I see that may be missing is error handling on the form components using isFieldError from useForm

I'm not sure that applies to this component. MUI doesn't provide an error field. Not from what I can see at least. And it makes sense intuitively that a checkbox group wouldn't have an error other minimum selected, which can be provided through yup.
If a user isn't allowed to select specific combinations then the consumer of this component should be listening for the changes and dynamically disable options as appropriate.
Did you have a specific case in mind about why we would need to utilize isFieldError in another capacity besides the HelperTextComponent?

Okay, I looked through the MUI docs more and I see what you mean 👍


ioctl! macro does not allow definition of public ioctl wrappers

There doesn't seem to be an easy way to simply make public the generated ioctl wrappers without essentially duplicating all of their work (writing wrapping functions with the appropriate signature)
An easy way to prefix with 'pub' would be nice.

Ah, sure enough.  I was hoping that it would be possible to just put pub in front, but this is clearly not the case.

@jmesmon Any thoughts on having pub be what the ioctl supplies.  This is what I have implemented now in my PR.  I'm thinking a common pattern might be to close over ioctl! definitions with mod ioctl namespace which gives the flexibility to control the visibility.
Other feedback welcome.  If there are warts with the new interface, its probably best to fix them now before too many people have updated their code.

Well, I looked a bit further at what the current ioctl! macro provides while updating a few of my crates, and I ended up needing some wrapping functions anyhow (bare ioctls rarely make sense).
So despite me opening this issue, I'm not sure I really need a way to make the wrappers pub (that was just the first thing I reached for when updating things).


Enhancement: kpm add command displaying optimization

kpm add displaying optimization

The content of the output information is different in different modes.
<debug_info> represents more detailed output information. For more information, see https://github.com/kcl-lang/kpm/issues/124.
1. Download successfully
$ kpm add k8s
kpm: adding dependency k8s
kpm: the latest version 1.27.2 will be pulled from 'oci://ghcr.io/xx/k8s'.
kpm: add dependency successfully.

$ kpm add k8s:1.27.2
kpm: adding dependency k8s with version 1.27.2.
kpm: the 'k8s' will be pulled from 'oci://ghcr.io/xx/k8s'.
kpm: add dependency successfully.

2. Current directory is not a kcl package.
$ kpm add k8s
kpm: could not find `kcl.mod` in '/xxx/xxx'. <debug_info>

3. kcl.mod parsing error
$ kpm add k8s
kpm: failed to load the 'xxx/xxx/kcl.mod'. <debug_info>

4. kcl.mod.lock parsing error
This file should be generated automatically, if parsing error occurs, delete and regenerate it.
5. Failed to load global configuration
The kpm add needs to download, so it needs to load the global configuration for kpm.
Failed to load user login information configuration.
$ kpm add k8s
kpm: failed to load credentials file '/xx/xx/config.json', <debug_info>

Failed to load registry information.
$ kpm add k8s
kpm: failed to load '/xxx/xxx/xxx/config.json', <debug_info>

6. failed to download
$ kpm add k8s
kpm: adding dependency k8s with version 1.27.2.
kpm: the 'k8s' will be pulled from 'oci://ghcr.io/xx/k8s'.
kpm: failed to add dependency, cannot download 'k8s:1.27.2' from 'oci://ghcr.io/xx/k8s'. <debug_info>

7. After downloading, checksum check error.
$ kpm add k8s
kpm: adding dependency k8s with version 1.27.2.
kpm: the 'k8s' will be pulled from 'oci://ghcr.io/xx/k8s'.
kpm: failed to add dependency, checksum for `k8s` changed in lock file. <debug_info>

8. After downloading, failed to update kcl.mod
$ kpm add k8s
kpm: adding dependency k8s with version 1.27.2.
kpm: the 'k8s' will be pulled from 'oci://ghcr.io/xx/k8s'.
kpm: failed to update the package info into 'xxx/xxx/xxx/kcl.mod'. <debug_info>

9. After downloading, failed to update kcl.mod.lock
$ kpm add k8s
kpm: adding dependency k8s with version 1.27.2.
kpm: the 'k8s' will be pulled from 'oci://ghcr.io/xx/k8s'.
kpm: failed to update the package info into 'xxx/xxx/xxx/kcl.mod.lock'." <debug_info>

Provide more perspective message, For example:

kpm: failed to load credentials file '/xx/xx/config.json: -> Incomplete user login configuration. failed to load credentials file '/xx/xx/config.json

When an error occurred, it's better to provide more information about how to fix it. For example:

kpm: could not find kcl.mod in '/xxx/xxx'. <debug_info>: + run kpm init to generate a kcl.mod file
kpm: failed to load credentials file '/xx/xx/config.json: -> failed to load credentials file '/xx/xx/config.json. Please


Install CNV operator first

Type of change
Note: Fill x in []

[ ] bug
[x] enhancement
[ ] documentation
[ ] dependencies

Description

For security reasons, all pull requests need to be approved first before running any automated CI

Right, added !!

@jeniferh, what we need to change in dv yaml ?


CWE-1064 Invokable Control Element with Signature Containing an Excessive Number of Parameters

Usage Name
Excessive parameterization
Reference
https://cwe.mitre.org/data/definitions/1064
Roles

the OperationSignature

Detection Patterns

8.2.124 ASCQM Limit Number of Parameters

Once initialized, functions with an excessive number of parameters can be reported as such:
/static/driver/main.py --report --metric ArgCount --excess


Update release

Can you update the release version to include the latest code? The release code doesn't work.

@eqprog did you manage to run it?

Everything should be working now, almost everything has been rewritten and the release .exe matches the python code

I had not renamed the folders to HR and LR, guess that was the problem. It is working now.

Great, you can also specify any folder without having to rename them or even being in the same directory with the options -l and -g, just run -h for more info.

Does ImgAlign scale option supoort non-integer values? Because my LR images are 854x480, while the HR ones are 1920x1080, so the difference in scale between them is 2.25. If not, what should I do? Resize either the LR or HR images to an integer scale?

It does all the resizing for you, just put in your images as is. You specify the mode to use with -m which in most cases you would want to use -m 0 so that the LRs remain the same and the HRs are adjusted. I assume you're making a 2x dataset, so you would use -s 2 for the scale


Connection issue while URL contains "%"

Describe the bug
While my connection URL contains "%", e.g. postgres://user:2kf%D@<IP_ADDRESS>:5432/db1 -

URL(string:) would return nil
PostgresConfiguration(url:) would failed, DatabaseConfigurationFactory.postgres() too.

If I change the URL, make % as %25
connection could be ok, but password is incorrect since PostgresConfiguration(url:) taks url.password and was not call removingPercentEncoding, actual password sent is 2kf%25D for this example.

My workaround

func makePostgresConnection(url: URL) {
	guard let host = url.host,
		let user = url.user?.removingPercentEncoding,
		let pass = url.password?.removingPercentEncoding else {
		throw Error("informal connect string, no host or user or password")
	}
	let pgcfg = PostgresConfiguration(
		hostname: host,
		port: url.port ?? PostgresConfiguration.ianaPortNumber,
		username: user,
		password: pass,
		// two lines below were copied from PostgresConfiguration(url:)
		database: url.path.split(separator: "/").last.flatMap(String.init),
		tlsConfiguration: url.query?.contains("ssl=true") == true || url.query?.contains("sslmode=require") == true ? .makeClientConfiguration() : nil)
	return DatabaseConfigurationFactory.postgres(configuration: pgcfg, ...).make()
}

Expected behavior

Use removingPercentEncoding while take user and password from the URL.
Find batter way convert url String to URL for password contains "%".

#235

This was solved by #241


[Question] Secure pages based on token

Hello all,
What will be best practice to secure a page that only can be shown if the user is logged in?
I can check the auth store but it won't work on SSR, any example or idea of how I can achieve this?
Thanks! :smile:

This might be helpful - https://github.com/estrada9166/server-authentication-next.js

hey @juan-manuel-alberro, If you check (LinkList/index.js)[https://github.com/Sly777/ran/blob/master/components/LinkList/index.js], You can see how we use auth on RAN. Actually, It's really easy to use because You just need to send it from page file. And also it supports SSR. :)


Test compilers lookup

Ensure that --compilers file lookup behavior works and not just that transpilation works.

Coverage remained the same at 88.973% when pulling e513cb708f4d73357e409f9e895d99af6c9307a7 on test-compilers-lookup into 958fbb4509eb4e28eee6623b297e60fa48ebeffe on master.

Coverage remained the same at 88.973% when pulling 12be8dbfade2283f5878dd13707e8b23561f6aa6 on test-compilers-lookup into 82d879f5f9fcd28953a585683809221ac4f86fab on master.

All tests passed with the rebase; merging.


Facade file has wrong case

The facade file LaravelEasyRec.php should match its class name and be LaravelEasyrec.php, otherwise there can be problems autoloading on case sensitive filesytems.

Thanks for the heads up.  Fixed in Laravel 4 (see #9) and Laravel 5 (see #8).
Happy Easter!


Fix prefix of GAR files in document

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

solve by #56


contributing guidelines

This repo is missing the contributing guidelines.
One can assume PRs with freely formatted git commits.
However I want to propose following EOS Costa Rica's Open Source Contributing Guidelines, entirely or partially would be nice.
I noticed there's some pattern where you link the issue to final commit.
At EOS Costa Rica since we only do squash merge, and a PR/Issue can be contain or be solved by multiple commits, we log PR number at the end of the commit on master. Github does it automatically actually.

@jcalfee by following the Angular's commit convention as stated in the link above it possible to automatically generate changelogs with https://github.com/conventional-changelog/standard-version.  PR #276 follows that standard.
Note: those contrib guidelines encourages to do only squash merges, however rebase is also totally fine is the commit is clean ( no merge commits ).  What I think is not very useful is using simple PR merge without rebasing or squashing.


Cleanup_main

Moves as much of the guts of main into actual functions as possible.
The macros are now easier to reuse and redefine for users who want to customize main.
Existing macro usage should continue to work.

Need to add tests for the customization points I see people using on github

Might pursue later, but this would break existing usecases, eg cudf currently does:

#include <nvbench/main.cuh>

#undef NVBENCH_MAIN_PARSE
#define NVBENCH_MAIN_PARSE(argc, argv)                                                             \
  nvbench::option_parser parser;                                                                   \
  std::vector<std::string> m_args;                                                                 \
  for (int i = 0; i < argc; ++i)                                                                   \
  {                                                                                \
    std::string arg = argv[i];                                                                     \
    if (arg == "foo")                                                                              \
    {                                                                                \
      i += 2;                                                                                \
    }                                                                                \
    else if (arg == "bar")                                                                         \
    {                                                                                \
      i += 2;                                                                                \
    }                                                                                \
    else                                                                                \
    {                                                                                \
      m_args.push_back(arg);                                                                       \
    }                                                                                \
  }                                                                                \
  parser.parse(m_args)

NVBENCH_MAIN

Since NVBENCH_MAIN now just calls a function, the custom PARSE(...) macro is no longer used.


Backport "Fix #21295: Restrict provablyDisjoint with Nothings in invariant type params." to 3.6.2

Backports #21891 to the 3.6.2 branch.
PR submitted by the release tooling.

No regressions detected in the community build up to release-3.6.2-backport-21891.
Reference


Placeholder for supporting manually setting the session_id

The tracker already supports manually setting the domain_userid - in a similar fashion it would be useful to be able to manually set the session_id.
This would make for a smoother process in projects that require both client and server-side tracking.

Interesting idea @colmsnowplow. Integrating client- and server-side sessions feels quite tricky but powerful if we can get it right...

Definitely. We already have the means to pass that information to the server-side via the getDomainUserInfo method, so if it was straightforward to have client-side tracking populate this cell in atomic.events then we'd take the heavy lifting out of data modeling.

Can you ASCII-art out the dataflow you are imagining @colmsnowplow? I am having trouble pinning it down...

I can certainly try - I'm also open to suggestions on how it could be done, but here's what I had in mind.
Let's imagine a use case where someone wants to track an account creation event server-side, as there's information associated with creating an account that isn't available client-side. Lets say they want a form submit event client-side, then an account create event server side.
They would pass the domain_userid and domain_sessionid to the server-side, then pass that to the Java tracker to populate these values for the account create event:
[js-tracker creates cookie] -- [form submit event]
                            -- [getDomainUserInfo + piece of code that sends this info to the client]
                                                                       ||
                                                                       ||
                                                     [Java tracker setDomainUserid/setSessionId method sets the relevant values] -- [account create event]

What I'm imagining is that the account create event shares a domain_sessionid with the form submit event.
If the setSessionId method sets the domain_sessionid for the server-side event, we don't need any SQL voodoo to model the create account event into our session-level analysis.
This might be a naive picture of what's possible though - are there issues I'm not seeing?
Having written it down one I can think of is that there are likeyl to be server-side events for which we don't want this value set - I don't know if it's possible to set this value within the actual track method for one event only, as opposed to within the subject?

I think there are two options:

Generate the session ID server-side and render it out client-side for the JS Tracker to use
Generate the session ID client-side but use cookies to make it available in the back-end (via the HTTP request headers)

I haven't thought these through much further yet...

From where I stand, my opinion would be option 2), for two reasons:

Most implementation start by trying to measure user-behaviour and deliver benefit in the short term, rather than planning an integrated setup up-front. This is likely to begin with client-side tracking, and server-side is likely to be considered after that.

So in terms of pragmatics, it makes sense to send the client-side session ID to the server side.

This one's a little more high-level and potentially up for dispute, but I'm of the opinion that a good measurement is as simple and direct as possible - so if you're measuring a user interaction, you should measure it at the point that the user interacts, where possible. If you subscribe to this stance, it follows that any 'second level' (struggling for the right term here) information you take, like the session ID, should also be as close to the interaction as possible.

I am biased on this, but for me there's a good argument for a 'client-side' first approach, where possible.

Makes sense. I don't think option 1 is particularly feasible anyway - as the session calculation logic isn't easily "shippable" to the server-side.
Option 2 is quite interesting and even exciting. It's inspired by:
https://github.com/simplybusiness/snowplow_ruby_duid/

I think we are against manual overrides, closing.


Credential updates

Incorporate a few recent updates to the PMP sandbox environment:

Get rid of config.json - just use env variables
Allow either client_id or clientid in the configs, to match the examples on the support site
Level 2 debugging prints response body
Support for gzip and minimum response sizes

For some reason, Travis builds kept failing when I used the json: true request.js option.  It looked like double-encoded PUT json, which was getting 500's from the server.  So I switched to manually handling json encoding/decoding.


TFLITE does not compile with CMake in Visual Studio 2019

Issue type
Bug
Have you reproduced the bug with TensorFlow Nightly?
Yes
Source
source
TensorFlow version
tf-master
Custom code
Yes
OS platform and distribution
Windows 7 SP1 x64
Mobile device
No response
Python version
3.11
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
NVIDIA GeForce 1660 SUPER 6 GB
Current behavior?
Cannot find #include <sys/mman.h> in "tensorflow/lite/kernels/internal/optimized/fully_connected_4bit.h"
Expected successful build.
P.S. There's TFLITE_MMAP_DISABLED condition in this file, but I didn't find it in CMakeLists.txt or anywhere else (except Bazel config files that are not used while building with CMake).
Standalone code to reproduce the issue
1. Open latest VS 2019 on 64-bit Windows 7 (maybe newer versions too).
2. Download tensorflow-master as zip, unpack.
3. Open tensoflow/lite as CMake project.
4. Right click on root CMakeLists.txt and choose "Build".

Relevant log output
Cannot find #include <sys/mman.h> in "tensorflow/lite/kernels/internal/optimized/fully_connected_4bit.h"

This issue originally reported by @MVoloshin has been moved to this dedicated repository for LiteRT to enhance issue tracking and prioritization. To ensure continuity, we have created this new issue on your behalf.
We appreciate your understanding and look forward to your continued involvement.


associated_model_config doesn't affect

Hi,
I'm trying to configure the nested model's fields in :has_many association, but nothing's happening. I'm on Rails 4.2.3, mongoid 4.0.2, rails_admin 0.6.8.
Property has many Characteristics, Product has and belongs to many Characteristics:
/app/models/property.rb
class Property
  include Mongoid::Document
  include Mongoid::Timestamps

  field :handle
  field :title, localize: true

  has_many :characteristics, inverse_of: :property
  accepts_nested_attributes_for :characteristics, allow_destroy: true

  validates :handle, presence: true
  validates :title, presence: true
end

/app/models/characteristic.rb
class Characteristic
  include Mongoid::Document
  include Mongoid::Timestamps

  field :handle
  field :title, localize: true

  belongs_to :property, inverse_of: :characteristics

  has_and_belongs_to_many :products

  validates :property, presence: true
  validates :handle, presence: true
  validates :title, presence: true
end

/app/models/product.rb
class Product
  include Mongoid::Document
  include Mongoid::Timestamps

  field :handle
  field :title, localize: true
  field :page_title, localize: true
  field :description, localize: true
  field :short_description, localize: true
  field :meta_description, localize: true
  field :meta_keywords, localize: true

  has_and_belongs_to_many :characteristics

  validates :handle, presence: true
  validates :title, presence: true
end

/config/initializers/rails_admin.rb
require 'i18n'

I18n.available_locales = [:ru, :en]
I18n.default_locale = :ru

RailsAdmin.config do |config|
  config.main_app_name = Proc.new { |controller| [ "Babylon", "BackOffice - #{controller.params[:action].try(:titleize)}" ] }

  config.actions do
    dashboard
    index
    nestable
    new
    export
    bulk_delete
    # show
    edit
    delete
    show_in_app

    ## With an audit adapter, you can add:
    # history_index
    # history_show
  end

  config.model Characteristic do
    visible false
    label I18n.t(:characteristic).capitalize
    label_plural I18n.t(:characteristics).capitalize

    object_label_method do
      :i18n_characteristic
    end

    create do
      field :title do
        label I18n.t(:title)
      end
    end

    update do
      field :title do
        label I18n.t(:title)
      end
    end
  end

  config.model Property do
    visible true
    label I18n.t(:property).capitalize
    label_plural I18n.t(:properties).capitalize

    object_label_method do
      :i18n_property
    end

    list do
      field :title do
        label I18n.t(:title).capitalize

        formatted_value do
          bindings[:view].link_to value[I18n.locale], bindings[:view].rails_admin.edit_path(model_name: 'property', id: bindings[:object]._id.to_s)
        end
      end
      field :handle do
        label I18n.t(:handle).capitalize
      end
    end

    create do
      field :title do
        label I18n.t(:title)
      end

      group I18n.t(:seo).upcase! do
        field :handle do
          label I18n.t(:handle)
        end
      end

      group I18n.t(:characteristics).capitalize do
        field :characteristics do
          label I18n.t(:characteristics)

          associated_model_config do
            field :title do
              label  I18n.t(:title).capitalize
            end
          end
        end
      end
    end

    update do
      field :title do
        label I18n.t(:title)
      end

      group I18n.t(:seo).upcase! do
        field :handle do
          label I18n.t(:handle)
        end
      end

      group I18n.t(:characteristics).capitalize do
        field :characteristics do
          label I18n.t(:characteristics)

          associated_model_config do

            field :title do
              label  I18n.t(:title).capitalize
            end
          end
        end
      end
    end
  end

  ...
end

def i18n_property
  title_translations[I18n.locale]
end
def i18n_characteristic
  title_translations[I18n.locale]
end

So as you see, I tried to configure fields of Characteristic model in 2 places to show only :title field, but it still shows automatically all it can grab from the model, and doesn't even translate:

Please help find a solution to display nested fields right! Thank you.

Well, I solved it by myself. It's all because of the wrong order. To make all work properly, the order should be Property first, and only then Characteristic. I wish it was mentioned in official readme. Closin'


Add FreeBSD get[pw|gr]ent_r, forgotten in #934

Sorry, accidentally forgot this when submitting #934..

r? @alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override)

@bors: r+

:pushpin: Commit 528374e has been approved by alexcrichton

:hourglass: Testing commit 528374ed9af4efa548702a96bce797eae0b63632 with merge ed04152aacf5b4798f78ff13396f3c04c0a77144...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing ed04152aacf5b4798f78ff13396f3c04c0a77144 to master...


US101469: Stop testing Firefox on Sauce, in case automated test flake…

…s are restricted to that browser.

This still seems flaky, although other bits are failing. Although Firefox seems to be especially bad at failing, the other browsers seem to get tripped up from time to time too (in new and exciting ways!)

I think the tests need to be redesigned and the wall of text might actually be a problem with d2l-tabs or the way we use it. Dragon Slayer that isn't taken over by My Courses.

I'm trying a few different things as experiments. Here's the next one: https://github.com/Brightspace/d2l-my-courses-ui/pull/631 (it didn't work).

Closing, the original issue with that Firefox-only flake was solved by moving to Polymer 3


Update build instructions

Build instructions and pre-requisites are out of date

Maybe close the isue? :) It is resolved with #19


Fixing FG stage

all mice currently show FG Closed. Don't know when this last time worked, so might want to wipe fg in db after we get some good data.

i would also maybe argue that the percentage to discard shouldn't be >= 99? not sure how that's helpful, since it's not 100% so it's not transitioning yet, so why discard?


Cannot use UsePathBase() in WebSockets/SignalR site

I've tried 2.1.0-beta.1, found it doesn't support UsePathBase() in the WebSockets/SignalR site.
I use code from 17_SignalROnPath.cs, it shows signalrApp.UseWebSocketProxy(context => new Uri("ws://upstream-host:80"));. First, I suggest to use ws://localhost:80 as sample target, because the next RunProxy uses http://localhost:80.
My target SignalR site uses UsePathBase("/basepath"). The problem happens when using UseWebSocketProxy(context => new Uri("ws://localhost:80/basepath/")). The log shows:
ProxyKit.WebSocketProxyMiddleware	Forwarding websocket connection to ws://localhost:80/path?id=...
ProxyKit.WebSocketProxyMiddleware	Error connecting to server
Void MoveNext() System.Net.WebSockets.WebSocketException Unable to connect to the remote server
System.Net.WebSockets.WebSocketException (0x80004005): Unable to connect to the remote server
   at System.Net.WebSockets.WebSocketHandle.ConnectAsyncCore(Uri uri, CancellationToken cancellationToken, ClientWebSocketOptions options)
   at System.Net.WebSockets.ClientWebSocket.ConnectAsyncCore(Uri uri, CancellationToken cancellationToken)
   at ProxyKit.WebSocketProxyMiddleware.AcceptProxyWebSocketRequest(HttpContext context, Uri upstreamUri) in /home/travis/build/damianh/ProxyKit/src/ProxyKit/WebSocketProxyMiddleware.cs:line 122

The wrong ws://localhost:80/path?id=... should be ws://localhost:80/subpath/path?id=.... According to WebSocketProxyMiddleware.cs line 80, the relativePath value is /path. Line 82-84 var uriWithPath = new Uri(upstreamUri.Uri, relativePath.Length >= 0 ? relativePath : ""); will generate ws://localhost:80/path, that is wrong. The correct one is ws://localhost:80/subpath/path.
I use Try .NET with the following code:
using System;
public class Program
{
  public static void Main()
  {
    Console.WriteLine(GetPath("ws://localhost:80/subpath/", "/path"));
    Console.WriteLine(GetPath("ws://localhost:80/subpath/", "path"));
    Console.WriteLine(GetPath("ws://localhost:80/subpath", "/path"));
    Console.WriteLine(GetPath("ws://localhost:80/subpath", "path"));
   }
  private static Uri GetPath(string upstreamUrl, string relativePath)
  {
    return new Uri(new Uri(upstreamUrl), relativePath.Length >= 0 ? relativePath : "");
  }
}

The output is:
ws://localhost/path
ws://localhost/subpath/path
ws://localhost/path
ws://localhost/path

Only the second one is correct. According to Uri Constructor: Uri(Uri, String), its Remarks says: Additionally, if the relativeUri begins with a slash, then it will replace any relative part of the baseUri.
That means in the constructor of Uri, the baseUri should include the last back slash, and the relativeUri shouldn't includes back slash at the beginning. But for current code of WebSocketProxyMiddleware.cs line 80, the relativePath is always starts with back slash. That means I will never get ws://localhost/subpath/path, and have no way to use /subpath in WebSockets/SignalR site.

Thank you for the detailed bug report.

First, I suggest to use ws://localhost:80 as sample target, because the next RunProxy uses http://localhost:80.

Fixed in https://github.com/damianh/ProxyKit/commit/674c18dc4c76517b5701f80f6e3d9ae4ea854b8e

I've been trying to reproduce your issue and I think you have configuration problem, specifically around this:

The problem happens when using UseWebSocketProxy(context => new Uri("ws://localhost:80/basepath/"))

If I understand your scenario right, you have the outside url being http://host:80/subpath/ that you want to forward to an upstream host http://upstreamhost:80? And the upstream host needs to know about the /subpath/ so it can generate URLs correctly etc.? (Personally I prefer to use X-Fowarded-PathBase so it can be determined at runtime be changeable vs baking it in code/config).
If this is correct, then puthing the path on in the URI to forward to is not correct. Instead you should use .Map() to forward requests from /subpath/ to your upstream host.
Such a configuration will look like:
app.Map("/subpath", appInner =>
{
    app.UseWebSocketProxy(context => new Uri("ws://localhost:5001"));
    app.RunProxy(context => context
        .ForwardTo("http://localhost:5001")
        .AddXForwardedHeaders()
        .Send());
});

I've added a sample runnable SignalR project to the ProxyKit solution where you can try this out:

First, thanks for all your work on ProxyKit and all the time spending on my issue.
I must admit that I don't really understand ProxyKit/WebSocket/SignalR/UsePathBase/X-Forwarded-* well enough. And a good issue report is not easy. Even git/github/PR is not familiar to me.
My outside url is http://host:80/subpath, the upstream host is running under http://upstreamhost:80/subpath. I wish they are using the same subpath, to avoid more url inconsistant problem.
I was thinking UsePathBase() is the key to use subpath in upstream host, but it seems to be wrong. My project is currently using launchSettings.json's iisExpress-applicationUrl to set to http://localhost:80/subpath and using IIS Express. (IIS Express can't use port 80 as I know, here is just an example) I'm still trying to reproduce the same situation in the SignalRSimpleChat project, but changing .UseUrls("http://localhost:5001") to .UseUrls("http://localhost:5001/subpath") generate error:  A path base can only be configured using IApplicationBuilder.UsePathBase(). So I'm still struggling for how to reproduce my issue. I need more time to understand how they all been constructed.
Maybe I need to remove the /subpath from upstream host, to follow the standard way behind reverse proxy. But I still think that current ProxyKit's code can't construct a url like ws://localhost:80/subpath/path just like what had been mentioned in my report.

Fixed via your PR repro and https://github.com/damianh/ProxyKit/commit/732cecdb94645364df5f5aa5492e2f1aedc103d8


OpenGov. Add URL for referendums

OpenGov. Add URL for referendums.
Like for transfer there should be the URL with chain and referenda id so that Nova Spektr will be able to open the link by the URL.

Status verification: ✅
What has been verified:

open with different params, open from scratch
negative testing: wrong ref id, absent network id


PsfDllLibraryFixup

This PR does the following:

Adds a new type of fixup for the PSF called PsfDllLibraryFixup.  This fixup intercepts calls to load a dll module to ensure that if the dll is located within the package it will be found.  This solves issues with repackaging traditional application installers that used a modification to the Path variable or an AppPaths registration in the Windows Registry so that the app would find it's dlls.  But it serves as a quick fix for any situation where testing shows a dll not being found when running in the container.
Completes changes to allow the PSF to be used when the target exe is not in the root folder.
Changes the PsfMonitor build to be bit specific (x86/x64 rather than AnyCPU). While the bitness of the monitor isn't tied to the bitness of the application, AnyCPU required the bitness of the dependency dlls to match the end-user environment, which could change based on Group Policy; thus it is better to just go bitness specific.
PsfMonitor now includes the capture of the standard Windows Application and System logs. This helps when the application is trying to tell you what is wrong in those traditional sources.Small fixes to the FRF detected while testing specific one-off scenarios.
Changes to FRF logging to solve some messages that didn't appear due to wide conversion issues..

Can you change the PR to develop?  I've made the same mistake.  I need to see how to stop master from being the default PR target.

Replacing this with a PR on the Develop branch.