Testing

This is Chandni's job

Can you implement a confusion matrix so we can calculate the accuracy? You can use the classifier file in cpp which will do the calculations for you, problem is you'd have to write a C++ test driver. which is already what you did here.


automatic blackening of code might be broken

release 1.3.0 does not seem to be blackened. e.g. the note_features.py module has very wide lines and horizontal lists.

and also doc string length seems to be unaffected by blacken, so we need to check this manually.

Ah, yes that's a good idea!

The blacken now works on develop and submits a new commit with the blacken code which gains authorship from the person pushing to develop. I will leave this issue open if there are any other remarks about the blacken process, otherwise feel free to close the issue.


Support dependency injection with storyboards

Resolves: #569

This looks great, thanks!
I'd hoped things like this would be easier to build with the R.swift and R.swift.Library projects merged.
Any reason why this PR is marked as Draft? Or can it be merged as-is?

I was waiting for the test on my private project.
It passed now and I unmark draft :tada:

Great, thanks again.


Cannot open MRTK C# projects in Visual Studio 2017

After following steps 1-4 as described in MixedRealityToolkit-Unity/GettingStarted.md, I set Build Settings to the following :

I then build and attempt to open the file using Mixed Reality Toolkit -> Build Window -> Open Project Solution.
VS 2017 then gives me this error message:

Here are the Individual Components I have installed for VS 2017:
Individual_Components.pdf

What version of the editor do you have?

Unity 2017.1.2f1 and I'm using the latest release of the HoloToolkit for Unity 2017.1.2f1 released 9 days ago

You can't build to the 16299 SDK if you don't have the fall creators update and unity 2017.2.

Ah okay thank you


🔭 Authentication headers support for remote cache

Problem statement
Some remote cache providers require authentication via http headers.
e.g. Artifactory expects a "X-JFrog-Art-Api" header containing an API key.
Describe the solution you'd like
When fetching cache, have the possibility to define headers for authentication, ideally via parameters to the command call. e.g.
rugby warmup --headers "X-JFrog-Art-Api:my-api-key"?
Describe alternatives you've considered
Reading headers from environment variables
Additional context
I have validated that this works by adding:
urlRequest.addValue("my-api-key", forHTTPHeaderField: "X-JFrog-Art-Api")
to the CacheDownloader's download(_ url: URL) and ReachabilityChecker's checkIfURLIsReachable(_ url: URL) functions.
If you think this is an interesting feature, I would even be willing to implement it. I would like to get to an agreement on the best way to provide those headers.

Hello @dcacenabes! Yeah, feel free to open a draft pull request 👍


Add "vartime" suffix to Monty::new_params()

The implementation for Uint was already vartime. The BoxedUint one wasn't, changed to vartime.
It would be logical to have new_params() for the constant-time implementation, but implementing it for Uint requires additional bounds with Split/Concat which have to be propagated everywhere. Not sure what the best course of action here is.
One possibility is perhaps splitting out the "convertible to Montgomery" in a separate trait.

implementing it for Uint requires additional bounds with Split/Concat which have to be propagated everywhere. Not sure what the best course of action here is.

Elsewhere instead of a wide Uint, split lo/hi components are used for the wide multiplication output (e.g. Uint::rem_wide_vartime), which avoids the need for the bounds.

I mean, since MontyParams are a part of Integer, if new_params() require this bound, all the Integer stuff will, too, even if it technically doesn't use it.

It wouldn't need the bounds if it used a "split" implementation strategy like Uint::rem_wide_vartime


drop support for 1.8.7 and then remove json dependency

1.8.7 is no longer supported.  Additionally, ruby 1.9.3 comes with json in the core codebase so there is no need to list json as a dependency.
This is causing things like:
[puppet@puppetdev module]$ prepl
WARN: Unresolved specs during Gem::Specification.reset:
      json (>= 0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.

Ruby 1.8.7 is used on RHEL/CentOS/OEL 6 with non-AIO Puppets, so in the respective tests Ruby 1.8.7 is still used. This can be workarounded in the Gemfile, see e.g. the Gemfile currently used in theforeman-puppet, @logicminds could you prepare a PR with such a change?

I understand that centos enjoys using really old rubies.  But who is developing puppet modules on centos 6 with ruby 1.8.7.  Puppet no longer supports it with puppet 3.8.  If your on windows you are using ruby 2.0.  If your on a mac you are running ruby 2.0. If your on some linux desktop than you are running bleeding edge.

Also I assume you wanted to do something like:
if RUBY_VERSION.start_with? '1.8'
  gem 'json'
end

However, I am not sure how that would translate to a gemspec format.

@logicminds as there are a lot of RHEL 6 and SLES 11 boxes out there using the system Ruby for Puppet I guess the actual number is depressingly high. It's not about developing under Ruby 1.8, but testing.

And RHEL5 is not EOL yet...


Track number of active requests

I can happily report that #1760 has caused our Zipkin instance to be much more stable.  But, to help further tune a server and prevent issues like #2023 it would be nice if a Prometheus metric for "number of active requests" could be added.  That way we could identify peak load times and tune the number of max-requests appropriately.
Essentially, log HttpCall.semaphore.availablePermits().  Normally not a good method to call because of unreliable/synchronization issues but should be safe for the sake of metrics.
Note: this solves a different problem than counter_zipkin_collector_messages_http would answer because that semaphore gets used for requests that read from storage in addition to those that write whereas the collector increments only for those that write.
If you want to turn this into a case for separating read from write limits I'd be ok with that also :)

@anuraaga does Armeria expose this metric already ?

Yup - confirmed we have elasticsearch_active_requests in prometheus now


Fixing Cxx Interop Tests

Some of the Cxx interop tests were failing locally due to a missing dependency on the libcxx-modulemap created as part of the sdk-overlay target, and adding generator checks to constructor-copy-irgen and constructor-irgen tests to ensure we have the necessary backends enabled.
rdar://100076403

@swift-ci please test

This also resolves #60885

Thanks! Are the tests that are dependent on the sdk overlay filtered out with a different REQUIRES already?

It doesn't look like it. After running a no-sdk-overlay test run, I've got 36 failing tests. Time to start going over all of them figuring out which are because of the missing overlays and annotating them. That will come in a different PR though.


Rotated squid.log files have hostname coming from request

My etc/trafficserver/logging.yaml is:
formats:
  - name: squid
    format: '%<cqtq> %<ttms> %<chi> %<crc>/%<pssc> %<psql> %<cqhm> %<cquc> %<cluc> %<caun> %<phr>/%<shn> %<psct>'
logs:
  - filename: squid
    format: squid
    mode: ascii
    rolling_enabled: 1
    rolling_interval_sec: 10
    rolling_offset_hr: 0

(the small rolling_interval_sec is to see the issue) and I see that it uses rotated filename like:
squid.log_www.example.com.20210604.10h28m50s-20210604.10h29m30s.old
Where www.example.com is just on of sites being served via Trafficserver.
Instead of usual:
squid.log_HOST.IP.V.4.20210604.10h28m50s-20210604.10h29m30s.old
(it was like with with ATS 8).
I tried to set:
CONFIG proxy.config.log.hostname STRING justit
To have:
squid.log_justit.20210604.10h28m50s-20210604.10h29m30s.old
But it seemed to be ignore during rotation.
The rest of config.log from records.config are:
CONFIG proxy.config.log.logging_enabled INT 3
CONFIG proxy.config.log.max_space_mb_for_logs INT 25000
CONFIG proxy.config.log.max_space_mb_headroom INT 1000
CONFIG proxy.config.log.rolling_enabled INT 1
CONFIG proxy.config.log.rolling_interval_sec INT 86400
CONFIG proxy.config.log.rolling_size_mb INT 10
CONFIG proxy.config.log.auto_delete_rolled_files INT 1
CONFIG proxy.config.log.periodic_tasks_interval INT 5

Which are correctly overridden in etc/trafficserver/logging.yaml
Trafficserver version used is 9.0.1

Thank you for filing the issue. I'll look into this.
In case it's helpful, starting from 9.1.x, ATS supports external log rotation utilities (such as logrotate) via the SIGUSR2 signal:
https://docs.trafficserver.apache.org/en/9.1.x/appendices/command-line/traffic_manager.en.html?highlight=sigusr2#signals
Thus, logrotate can be configured to rotate the logs and send a SIGUSR2 to the traffic_manager process which will then re-open its file descriptors. We (Yahoo!) are using logrotate and SIGUSR2 to handle log rotation.
I mention this in case it's helpful to plan ahead for when you move to 9.1.x. In the meantime I'll look into the issues you reported here.

Hi @lukenowak,
I created a PR to address the issue where proxy.config.log.hostname is not respected when rotating the logs. That is indeed a bug and should be fixed with PR #7943.
In addition to proxy.config.log.hostname not being respected, you also mention that the default hostname used for the rotated logs changed from an IP address to the hostname of the machine between 8.x and 9.x. Is that an issue for you, or were you simply making an observation? That is, if #7943 is merged in and proxy.config.log.hostname is respected for the rotated logs, will that be a sufficient fix for you?

If I'll be able to use proxy.config.log.hostname then the default hostname change is not a problem for me anymore, just having #7943 is good enough, thanks.

I mention this in case it's helpful to plan ahead for when you move to 9.1.x. In the meantime I'll look into the issues you reported here.

That's excellent news, as soon as 9.1.x will be out I'll be happy to use it with logroration.


as start 6.1.6 error

What went wrong:
A problem occurred evaluating root project 'osmdroid-parent'.

Could not get resource 'https://raw.githubusercontent.com/gradle-fury/gradle-fury/v1.1.4/gradle/maven-support.gradle'.
Could not GET 'https://raw.githubusercontent.com/gradle-fury/gradle-fury/v1.1.4/gradle/maven-support.gradle'.
Connection reset

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

CONFIGURE FAILED in 3s
Connection reset
Open File

if you are building osmdroid from source, you'll have to be online. Both of those links load just fine for me. If you really really want to,  you can download the scripts, put them into the gradle folder, then update all the build files to point to that relative location instead of the github link. But this would be silly.
but since you are using the release version, i'm guessing you are one of those people that "import" source code from another repo into your own project. This is silly. Not sure why people do this or who promotes it but it should stop. You can always do a separate checkout if you need the source for whatever reason.
we publish the artifacts and source code jars to central and tools like intellij and android studio do a pretty good job of resolving the source jars and/or decompiling the aar to give you an equivalent source.
So what exactly are you trying to do?

not an issue anymore


Is there is any example usage case in streaming processing?

Is there is any example usage case in streaming processing?
Like the Driver is keep alive, and keep read from one streaming source like kafka,
process each data batch and send to a streaming output like kafka.
Some question:
1. Is any "example usage case" or "best practices" to process streaming data?
2. If Gleam does work, whether need to restart one Gleam each "streaming data slice"?
Like Kafka source, whether need to reconnect to the broker list each time?
3. For the result each batch done, whether Gleam support any method to keep some "dataset" for next batch? Or a mechanism to support "Global Context Dataset" across Different Gleam batch?
4. Whether support one mechanism like one "Never Stop" distributed mapper can produce "streaming data slice" dataset, and trigger the slice dataset batch to run in sequence? To avoid recronnect to kafka.
5. Any orhter Idea is help to processing streaming data?
thanks~

Gleam can work in a streaming way, but the full support is working in progress. Just added timestamp to each message in https://github.com/chrislusf/gleam/pull/44 , and will be working on adding sliding window support, and other missing parts.

not yet.
no.
sliding window will support this.
yes.
...

Thans for the answer~ Expect the new features.

I have some more questions about mechanism design.

Executer process different step at same time，or All data in one step batch is done then next step start？

Can I think that local mode and distributed mode, inter-section communication form of the interface form and the general structure of the same, but the distributed mode using RPC way for data transmission, the local channel can be used directly in the form of transmission? The difference between the two data pipeline and the process of deployment only?

thanks a lot~

Both are possible. Processes start when input sources are available and execution resources are available.
Mostly correct.

thanks ~

Continue some more questions about mechanism design In my learning.
1. I note that the kafka source is seems like keep consuming messages in mappers. Then the dataset is a Infinity data. is this Right?

2. If Q1 is right, in current project progress, the function can use in steps/tasks is under some limit, function like sort, can not support, because there is no boundary for the dataset?

3. If Q1 or Q2 is wrong, how can I run reduce like operation on the kafka source produced dataset In right way?

4. Is "sliding window" you said above is the method to solve my confused in this questions? And  "sliding window" means to split a Infinity dataset to small parts?

yes
correct
currently no.
yes. yes.
to be designed. Not finalized yet.

thanks a lot ~

I come again~
I need to confirm that the use of some of the core data structure of my understanding is correct.
1. About DAG

Dataset: Operable logically "atomic data representation" in one DAG. Use "Step" to transform DatasetA to DatasetB.

Step: "atomic Transform action" between two Dataset.

Dataset Action(like Map, reduce, sort ...):

Some of the more commonly used transformations logic, or some "transformations framework".
One "Dataset Action" may has one or more Steps.

2. About Run time

Dataset Shards: The Dataset physical realization, or say "atomic data" can be processed in physical.

Tasks: During the running of Step, the specific "thread" bound to one "Task".

AND "Dataset, Step" is more relevant to the Plan of DAG;

AND "Dataset Shards, Tasks" is more relevant to execution.

About Step Logical realization

Step contains 4 kinds of substructures associated with the run logic. Function, Instruction, Script, Command.
Function, Command: This two is the basis of the "Executable Unit", a Step can run one of them.
Instruction is more like a framework to generate Function.

Instruction some like "Map / Reduce ..." relative to the step relationship,
But it seems One Instruction generate one Function to run in one step.

Script is more like a framework to generate Command. Just Like Instruction To Function.

Some Idea for Streaming Process:

The Operation LocalSort cant't "eat one, spit one" just like Map Operation.
Beacuse LocalSort wait for all lines in this Shard for this Task, and then sort it.
The Operation Partition Is NOT a block Operation like LocalSort.
If I keep a context in the Task, and then use this "context" to filter each input,
I can do a full real-time processing.
I can use Partition and my own implementation Operation which "has a filter with context",
to achieve a full real-time like Group operation.
I can Use The timestamp and just wait for all lines in this "time window" like LocalSort,
and then sort the lines, then send the results.
In this way, I can Get a "window sort" for small batch processing just like spark streaming.

Good write up. You could turn this into a blog post.
On Sun, 2 Jul 2017 at 8:11 AM qazqwe1596357<EMAIL_ADDRESS>wrote:

Reopened #45 https://github.com/chrislusf/gleam/issues/45.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/chrislusf/gleam/issues/45#event-1147249372, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABeL7zgOkNJA0ZtuZZuu9wAZ6IUJ3AiRks5sJ7MIgaJpZM4ODLJR
.

Is any mistake in my understanding above?

Nothing wrong.

thanks a lot ~

hello, is the slide window being developed ?
I expect that.  Thanks.


Set up a demo page

oh,it can't not work.
if i want to highlighter this code in jsx
`function getKey(k){
return 'a key named ${k}';
}
          //bad
          const obj = {
            id : 5,
            name:"San francisco"
          };
          obj[getKey('enabled')] = true;

          //good
          const obj = {
            id:5,
            name:"san francisco",
            [getKey('enabled')]:true
          };`

the return make it can't not work,,
how can i fix this essius


comments for oneof subfields now pass to generated code

Comments above oneof subfields will pass through to the generated code.

Thanks for the contribution!
This package is obsolete, deprecated, and we are no longer making changes to it. It is not used by the protoc-gen-go program. The current implementation of protoc-gen-go is located here: https://go.googlesource.com/protobuf/+/refs/heads/master/cmd/protoc-gen-go


readable-stream dependency change is a breaking change (use semantic versioning)

Issue

I'm a gentledev i:

[x] fully read the README recently
[x] searched for existing issues
[x] checked i'm up to date with the latest version of the project

Feature request

Feature description
Use semantic versioning, and up a major version when an un-abstracted dependency like readable-stream is bumped a major version.
Use cases
Because readable-stream version was bumped in the latest release, but the version of this package was only patched, it was quite difficult to figure out why gulp scripts for some of our projects using your package stopped working. Readable streams breaking changes constituted major breaking changes to this package as well.

Given this package coverage and the fact tests passed, I never thought it would break anything. What happened?

looks like readable-stream doesn't work with gulp properly, because using gulp 3.9.1, and the latest version of streamqueue the stream events for 'end' and others were not firing.

@moustafab thank you so much, I haven't used gulp in years, but I had to make a change to a project from 2014, and had no freaking idea why it was silently failing. But it stopped at streamqueue, which led me here. Thank You!!!


NO MRG: Test building from master with git-based version using outputs

Checklist

[ ] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

The home item is expected in the about section.
The license item is expected in the about section.
The summary item is expected in the about section.
The recipe must have some tests.
The recipe must have a build/number section.
The outputs section contained an unexpected subsection name. source is not a valid subsection name.


Examine the DICOM standard for useful pieces

See https://en.wikipedia.org/wiki/DICOM
Since it's used with 3D radiological images, there may be pieces that could be borrowed for an AC extension on 3D media.

The DICOM standard has been reviewed by the 3D Task Group and its terms have been under consideration. So this issue does not need to stay open.


⚠ Bofrost.be has degraded performance

In c53c7cb, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1592 ms

Resolved: Bofrost.be performance has improved in db54334 after 14 minutes.


fixed token security issue

this implementation may change in the future, as this depends on a 3rd party package itself
merging this will close issue #9

Codecov Report

Merging #28 into master will decrease coverage by 0.12%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #28      +/-   ##
==========================================
- Coverage   97.56%   97.43%   -0.13%
==========================================
  Files           2        2
  Lines          41       39       -2
==========================================
- Hits           40       38       -2
  Misses          1        1

Impacted Files
Coverage Δ

lib/src/api_manager.dart
97.36% <100.00%> (-0.14%)
:arrow_down:

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 bf4e6d3...194c81d. Read the comment docs.


Dynamically assign VPN IP addresses

Clients need to choose their own IP address that is not already taken, and announce their selection.
This should elicit a response if the IP address is already taken.

Instead, the server, which has more complete knowledge of the available IP addresses, should assign an IP address to the client.


generate cluster-values secret for all providers

I can't see a valid reason why we shouldn't create the cluster-values secret for all clusters.
In a bad case, the secret might be empty but as we merge the secret and the configmap into the values, this shouldn't be a problem.
Checklist

[x] Update changelog in CHANGELOG.md.

The new secret change has broke cluster creation on GCP.  Have you ever checked?

Are you sure that this is going to work for vintage? Have you ever checked?

Few vintage installations doesn't have cluster-apps-operator deployed.
And on some others (e.g. viking) cluster-operator and cluster-apps-operator are running. But cluster-apps-operator is doing nothing and the cluster-specific configmap/secret got created by cluster-operator.

@fiunchinho i'm really interested why the "new change" (whatever the new change was) has broke clusters creation on GCP. And how this PR fixed the issue.


Dac Editor Build error : .NET Core should not be using a file backed model.

When testing the new Dacpac editor extension on a Database Projected created in VS 19, the project opens correctly and can be edited, but when I attempt to build the solution, the build fails with the following error:
Build error : .NET Core should not be using a file backed model.
I have verified that it builds successfully with VS 19, even after being upgraded to Azure Data Studio's version.

@JChristian23 can you share the rest of the call stack? It would also be helpful if you can share the .sqlproj or a sample .sqlproj that repros the error.

@kisantia Here you go
ADS Publish Callstack.txt
Asos.zip

@JChristian23 can you try commenting out line 27( <GenerateCreateScript>True</GenerateCreateScript>)  in the sqlproj? The build error went away when I removed that. I'll have to investigate more why that project property is causing this build error.

Rather than commenting it out, I went into VS 19, then went into Properties > Project Settings. Under Output times, I unchecked Create script and it built correctly. When I reset it back to True, the build failed again, so that is definitely the hangup. For now though setting that property to false functions

Ok thanks for the confirmation and finding this bug! I created another issue to track this bug #12754 and we'll try to get to it in an upcoming release.
To generate a create script in ADS, you can use the publish dialog for now, which has a generate script button. If the target database doesn't already exist, the generated script will be for creating a new database for the project

this bug has prevented us from using this.

Just ran into this bug today ourselves.

closing as this is being tracked upstream in the DacFx repo: https://github.com/microsoft/DacFx/issues/47#issuecomment-1314202507


Meson: skip utils with missing optional dependencies

jpgicc depends on optional libjpeg
tificc depends on optional libtiff-4

Thanks Lovell, meson build scripts are still in experimental state so any help is greatly appreciated


Prepare backends as plugins.

Hi @abergeron @breuleux this is a PR to set backends as plugins, available as entry points under namespace myia.backend. What do you think ?

@abergeron Updated !

@abergeron updated ! I removed putorch GPU/CPU dependencies (cudatoolkit, cudnn, cpuonly) from myia package.


Check deps with stable toolchain only

Not a merge candidate. Just checking if this goes past CI, an idea instead of pinning serde

Doesn't work


Problem with deserializing byte arrays

The following is a simple LINQPad example serializing / deserializing a byte array using version 0.0.6:
var msg = new byte[] { 1, 2, 3, 4 };
var serializer = new Serializer(new SerializerOptions(versionTolerance : true, preserveObjectReferences : true));

byte[] serialized;
using (var ms = new MemoryStream())
{
	serializer.Serialize(msg, ms);
	serialized = ms.ToArray();
}

byte[] deserialized;
using (var ms = new MemoryStream(serialized))
{
	deserialized = serializer.Deserialize<byte[]>(ms);
}

msg.SequenceEqual(deserialized).Dump("SequenceEqual");
(msg == deserialized).Dump("msg == deserialized");
msg.Equals(deserialized).Dump("msg.Equals(deserialized)");

msg.Dump("msg");
deserialized.Dump("deserialized");

Which results in the following:

That is definitely a bug, fixing asap

Fixed, will be included in the next release

I've tested it on the latest nightly build and bug is still reproduced

Wire doesnt have a nightly build...

The above code passes the test
https://github.com/rogeralsing/Wire/blob/master/Wire.Tests/CollectionTests.cs#L156

Sorry, I confused with Akka.Serializer.Wire package.
Maybe it will be a good idea, to release another version (with bytearray and immutable collection fixed) before it will become the part of Akka?


Include port forwarding URIs in "devtunnel show" even when not hosting

With latest version the url is not print anymore after the port in devtunnel show output and with the new human readable id, the url does not seems to match the new id.
I need to know this info before running withtou running devtunnel host the tunnel is active in another terminal and I cannot run the commande or it will kill it.
Is the new id style also bind to a url ? Is it safe to depend on it now ? or could you just display the url again in the devtunnel show

It's not the easiest way to get it but it should works. Thanks.
Since this seems to be the HTTP response from the server, could this changes or can I rely on this info being here in the future ?
Also I'm wondering if there is any plan to have kind of a --json option that would make using the CLI from scripts much easier.

The latest versions of the CLI support devtunnel show --json.
Updated the issue title to reflect the feature request.
We'll take a look into supporting this and including it in the --json output also.

Ho nice.
I just checked and with the --json the url seems to be present in tunnel.ports[].portUri so I think that all I need.

Closing this as resolved.


Envoy Filter with a Lua script doesn't handle an external request.

I've got an Envoy Filter in which I add a header to every HTTP request. The header's value comes from an external API.
Let's assume two configurations of the envoy filter. In the configuration below I added a hardcoded version of my header.
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: lua-filter
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: ANY
      listener:
        portNumber: 7123
        filterChain:
          filter:
            name: "envoy.http_connection_manager"
            subFilter:
              name: "envoy.router"
    patch:
      operation: INSERT_BEFORE
      value:
       name: envoy.lua
       typed_config:
         "@type": "type.googleapis.com/envoy.config.filter.http.lua.v2.Lua"
         inlineCode: |
            function envoy_on_request(request_handle)
                request_handle:headers():add("authorization", "it works!")
            end

Using this setup I am able to add a new header to my HTTP request. But now I want to have the header's value coming from my API. Unfortunately, this setup doesn't work and I have no idea why. I have checked the Lua script on my local machine, and the script itself works.

As soon as I provide the script to the filter, none header is added. Everything seems to be fine so I suspect this might be some kind of bug. Can anyone have insight into this matter?
 typed_config:
     "@type": "type.googleapis.com/envoy.config.filter.http.lua.v2.Lua"
     inlineCode: |
        function envoy_on_request(request_handle)
          local http = require('socket.http')
          local json = require('json')
          local ltn12 = require "ltn12"
          local reqbody="my request body"
          local respbody = {}
          local  body, code, headers, status = http.request {
          method = "POST",
          url = "http://my-address",
          source = ltn12.source.string(reqbody),
          headers =
          {
          ["Accept"] = "*/*",
          ["Accept-Encoding"] = "gzip, deflate",
          ["Accept-Language"] = "en-us",
          ["Content-Type"] = "application/x-www-form-urlencoded",
          ["content-length"] = string.len(reqbody)
          },
          sink = ltn12.sink.table(respbody)
          }
          respbody = table.concat(respbody)
          parsed = json.decode(respbody)
          token = parsed["token-value"]
        request_handle:headers():add("authorization",token)
         end

@dio for any suggestions

@michalrubaj I'm not sure, but I have a simple repo to do similar things (using luasocket from luarocks and json.lua from https://raw.githubusercontent.com/rxi/json.lua/master/json.lua): https://github.com/dio/envoy-lua-test, as you can see https://github.com/dio/envoy-lua-test/blob/4314748f333eb3d37d94ad7867ef589c3d09952b/envoy.yaml#L43 sets the request header "foo".

@dio thanks for your insight. I'll have a look at your examples for sure. I tried to find the reason and I basically I was deleting a line after line of my Lua script to see where it crashes and it seems that the reason is a require keyword because I left my Lua as shown below and it didn't add authorization token to the request. Though I have installed that module to my Kubernetes cluster and I can access it via shell it seems like EnvoyFilter cannot execute it in the filter itself.
 typed_config:
     "@type": "type.googleapis.com/envoy.config.filter.http.lua.v2.Lua"
     inlineCode: |
        function envoy_on_request(request_handle)
          local http = require('socket.http')
          request_handle:headers():add("authorization","super secret token")
         end

@michalrubaj Seems like you need to check with the Istio side? I know the CRD name is EnvoyFilter (people come to Envoy repo because of this very often 🙂), but that actually runs on Istio proxy, and I'm not sure if it is compiled with --define exported_symbols=enabled (as mentioned here: https://github.com/envoyproxy/envoy/blob/51c1fa0dd03547c9253f0ae3ef0180349f6eda50/bazel/README.md#enabling-optional-features).


Draft for fixing disappearing I3DM models

Description
Under certain conditions, parts of models in I3DM could disappear in certain view configurations. This has been reported in several forum threads. Most recently, in https://community.cesium.com/t/disappearing-i3dms-on-map-navigation-again/34035 . It is currently tracked in https://github.com/CesiumGS/cesium/issues/11176.
A short ping @bertt : Maybe you want to try this out. It's not yet tested extensively, but might fix the issue.

For the reviewers:
Some details from investigating the reason for the error are summarized in https://github.com/CesiumGS/cesium/issues/11176#issuecomment-2254227941
The attempt of a tl;dr summary:

The boundingVolume that is associated with a DrawCommand determines whether that command is executed or not (depending on the view configuration)
For a glTF model, the bounding volume of the draw command was computed from the PrimitiveRenderResources.positionMin/positionMax properties. These positionMin/positionMax properties already include the instancing translation
The bounding sphere that was computed from these values was transformed with the node matrix
This means that the contribution of the instancing translation was affected by the node transform

For nodes with different transforms, this had to be inconsistent.
This PR is currently a DRAFT state, also because it contains some debug output. Some of this output - from the example that was posted at the bottom of https://github.com/CesiumGS/cesium/issues/11176#issuecomment-2260871932 - is shown here to convey the idea. It is an I3DM with 4 instances of a GLB that contains 4 primitives with different sizes that are attached to nodes with different scaling factors.
Before the fix, the output is this:
buildDrawCommand
  positionMin Cartesian3 {x: -5, y: -5, z: 0}
  positionMax Cartesian3 {x: 6, y: 6, z: 1}
  instancingTranslationMin  Cartesian3 {x: -5, y: -5, z: 0}
  instancingTranslationMax  Cartesian3 {x: 5, y: 5, z: 0}
  node scale  1
  instances transformInWorldSpace  true
  radius 7.794228634059948
buildDrawCommand
  positionMin Cartesian3 {x: -5, y: -5, z: 0}
  positionMax Cartesian3 {x: 5.1, y: 5.1, z: 0.1}
  instancingTranslationMin  Cartesian3 {x: -5, y: -5, z: 0}
  instancingTranslationMax  Cartesian3 {x: 5, y: 5, z: 0}
  node scale  10
  instances transformInWorldSpace  true
  radius 71.41953514270448
buildDrawCommand
  positionMin Cartesian3 {x: -5, y: -5, z: 0}
  positionMax Cartesian3 {x: 15, y: 15, z: 10}
  instancingTranslationMin  Cartesian3 {x: -5, y: -5, z: 0}
  instancingTranslationMax  Cartesian3 {x: 5, y: 5, z: 0}
  node scale  0.1
  instances transformInWorldSpace  true
  radius 1.5
buildDrawCommand
  positionMin Cartesian3 {x: -5, y: -5, z: 0}
  positionMax Cartesian3 {x: 6, y: 6, z: 1}
  instancingTranslationMin  Cartesian3 {x: -5, y: -5, z: 0}
  instancingTranslationMax  Cartesian3 {x: 5, y: 5, z: 0}
  node scale  1
  instances transformInWorldSpace  true
  radius 7.794228634059948

The instancingTranslationMin/Max are always the same. They are determined directly from the instancing information.
The computed positionMin/Max show differences that depend on the node scale ...
The most obvious (and relevant) effect is on the bounding shere radius:

When the node scale is 1, then the radius is 7.79
When the node scale is 10, then the radius is 71.4
When the node scale is 0.1, then the radius is 1.5 (which is already smaller than the instancing translations...)

Shown in this screenshot:

I considered different approaches for fixing this. One difficulty is...

the positionMin/Max do not say whether they are in world space or object space
some places already assume that they are in world space (and have to be transformed with the node transform to obtain their "true value")
the instancingTranslationMin/Max does not say whether it is in world space. But there is a subtle hint via ModelComponents/Instances.transformInWorldSpace which says that it can be both...

The suggested fix is summarized in this comment.
It's a bit... pragmatic, and having to compute the inverse of the node transform is ... not so nice. But other approaches had a larger potential for messing up other uses of the positionMin/Max (for which I now added a few lines of comments, by the way).
With this fix, the log output is as follows:
buildDrawCommand
  positionMin Cartesian3 {x: -5, y: -5, z: 0}
  positionMax Cartesian3 {x: 6, y: 6, z: 1}
  instancingTranslationMin  Cartesian3 {x: -5, y: -5, z: 0}
  instancingTranslationMax  Cartesian3 {x: 5, y: 5, z: 0}
  node scale  1
  instances transformInWorldSpace  true
  radius 7.794228634059948
buildDrawCommand
  positionMin Cartesian3 {x: -0.7, y: -0.5, z: 0}
  positionMax Cartesian3 {x: 0.4, y: 0.6, z: 0.1}
  instancingTranslationMin  Cartesian3 {x: -5, y: -5, z: 0}
  instancingTranslationMax  Cartesian3 {x: 5, y: 5, z: 0}
  node scale  10
  instances transformInWorldSpace  true
  radius 7.794228634059948
buildDrawCommand
  positionMin Cartesian3 {x: -50, y: -70, z: 0}
  positionMax Cartesian3 {x: 60, y: 40, z: 10}
  instancingTranslationMin  Cartesian3 {x: -5, y: -5, z: 0}
  instancingTranslationMax  Cartesian3 {x: 5, y: 5, z: 0}
  node scale  0.1
  instances transformInWorldSpace  true
  radius 7.794228634059948
buildDrawCommand
  positionMin Cartesian3 {x: -7, y: -7, z: 0}
  positionMax Cartesian3 {x: 4, y: 4, z: 1}
  instancingTranslationMin  Cartesian3 {x: -5, y: -5, z: 0}
  instancingTranslationMax  Cartesian3 {x: 5, y: 5, z: 0}
  node scale  1
  instances transformInWorldSpace  true
  radius 7.794228634059948

One can see that the positionMin/Max now all have to be transformed with the node transform, but then yield the actual, correct result - and it computes the same bounding sphere radius for all cases. The result is shown here:

(Yes, I see that the bounding sphere does not really include the whole model - where the mouse cursor is. Should I fix this? Is this my fault? We can talk about that...)
Issue number and link
Addresses https://github.com/CesiumGS/cesium/issues/11176
Testing plan
What remains to be investigated is the effect of other instancing transforms. Right now, the transforms only contain translations. I would expect unexpected effects when the instancing transforms contain additional rotations ot scaling. (But... maybe not, if the instanceTranslationMin/Max are already computed properly and taking this into account 🤞 )
For testing: Locally load the tileset (+Sandcastle) that are attached at the bottom of https://github.com/CesiumGS/cesium/issues/11176#issuecomment-2260871932 , and check whether there is still a view configuration where parts of the model disappear. Maybe also try out some of the examples that had been posted in https://community.cesium.com/t/disappearing-i3dms-on-map-navigation-again/34035 (that's also still on my TODO list)
Author checklist

[X] I have submitted a Contributor License Agreement
[X] I have added my name to CONTRIBUTORS.md
[ ] I have updated CHANGES.md with a short summary of my change
[ ] I have added or updated unit tests to ensure consistent code coverage
[ ] I have updated the inline documentation, and included code examples where relevant
[ ] I have performed a self-review of my code

(This is a DRAFT state with debug/log output and TODO comments - only for an early review)

Quick n = 1 test with the windmills with rotor animation:
1] Issue windmill disappear on map navigation (without this PR):
Demo: https://bertt.github.io/cesium_issues/i3dm_disappearing2/issue/
2] Testing this PR
Demo: https://bertt.github.io/cesium_issues/i3dm_disappearing2/testing_pr_12105/
Result:

Windmills don't disappear  👍

Animation rotor still works 👍

Anther testcase I see still an instance disappear (the western one)
https://bertt.github.io/cesium_issues/i3dm_disappearing2/testing_pr_12105_kast/

GLB used is quite simple: https://bertt.github.io/cesium_issues/i3dm_disappearing2/testing_pr_12105_kast/kast.glb

Thanks for the quick test and feedback, I really appreciate that 👍
From very quickly skimming/debugstepping over the case with the "blocks" that doesn't work: Yes, in this case, the bounding sphere is still wrong. It doesn't include the second block:

I think that this might be related to some of the points that I already mentioned

The I3DM for my simple test only uses POSITION
The I3DM for the windmills additionally normals and SCALE, but the scales are all (1,1,1) (!)
The I3DM for the blocks also uses normals and SCALE, with the scales being (2,2,2) (!)
The I3DM for the blocks contains an RTC_CENTER

These are just observations for now, and I haven't yet identified the reason.

Admittedly, just transforming the instanceTranslationMin/Max with the inverse node transform was a shot from the hip. I already had some doubts (and these doubts become stronger the more I think this through), and they refer to the idea of computing the bounding sphere from instanceTranslationMin/Max in general.
I'll probably need pen+paper to "mathematically confirm" this, but intuitively:

Imagine an I3DM with two instances, and POSITION and rotation attributes.
The positions are both (0,0,0). So the instanceTranslationMinMax will be (0,0,0) as well. They will not affect the size of the bounding sphere at all
Imagine the rotations being

0° around the x-axis
90° around the x-axis

Imagine the GLB containing a primitive that has a translation of 100 along the y-axis
The rotations will affect the bounding sheres of the primitive instance
When only looking at the instanceTranslationMin/Max, this rotation is never taken into account anywhere...

Well ... I could go through this with pen+paper, or just create a test model - and I'm probably lazy and do the latter.
I know that the formal approach could already be a step towards a solution, but my gut feeling is that the solution will have to involve storing the actual transform matrices of the instances ... somewhere, somehow.
(Just like for a ModelInstanceCollection 🤔 )

Another thing to consider: when the used glTF has larger textures.
For example see https://bertt.github.io/cesium_issues/i3dm_disappearing2/issue_textured_trees/ , the used model https://bertt.github.io/cesium_issues/i3dm_disappearing2/issue_textured_trees/tree_textured.glb has 2 textures to visualize the trees

Btw I'm also wondering what's the purpose of this instancingTranslationMin, instancingTranslationMax compution, as the visibility of the i3dm tile is already defined in tileset.json...

@bertt I don't understand in how far textures come into play here. I'd think that the issue is independent of the material of the objects...?

Btw I'm also wondering what's the purpose of this instancingTranslationMin, instancingTranslationMax compution, as the visibility of the i3dm tile is already defined in tileset.json...

I also only started zooming into this. So this attempt to summarize a few things should be taken with a grain of salt:

The code is examining each mesh primitive that is attached to a node in the glTF

Each node may have instancing information. This instancing information can come...

either from an EXT_mesh_gpu_instancing in that node
or be instancing information that was created from the I3DM data, and basically "attached to all nodes of the glTF"

The idea here apparently is that the same mechanism is used for both the EXT_mesh_gpu_instancing and the I3DM instancing. Which leads to the issue mentioned in the forum thread, namely that EXT_mesh_gpu_instancing cannot work properly in I3DMs. It's not yet clear how this could (or should) be addressed...

The code that uses the instancingTranslationMin/Max seems to be an attempt to optimize the number of draw calls. Imagine one glTF with a primitive that is attached to a node with a translation of (1000, 0, 0), and that uses instancing. When looking at the origin, then the instanced primitive will not have to be rendered.... unless one of the instance translations is (-1000, 0, 0), because then, this instance would have to appear at the origin (roughly like that...)

The computation of the bounding volumes, and how they affect the execution of the draw commands, will have to be revised. In the context of the investigations here, I noticed that the bounding volumes of the models are not computed properly to begin with (regadless of the instancing). This is now tracked in https://github.com/CesiumGS/cesium/issues/12108 . So my "quick shot" in this PR will not be sufficient, but my gut feeling is that when ~"the bounding volume computation" is addressed (properly and holistically), the resulting state could also already include a fix for the I3DM issue...


Child lifetime scopes

Introduces the SCOPED lifetime scope type which works in tandem with the also newly introduced child lifetime scopes. Marking an injectable as SCOPED will make each lifetime scope return a new instance. This is similar to SINGLETON injectables but whereas a SINGLETON injectable has one single instance per lifetime scope tree - which is managed by the root lifetime scope -, a SCOPED injectable has multiple instances - one in each lifetime scope of the lifetime scope tree.
For example:
# Collect all of our injectables and build a catalog
registrations = find_injectables("tests.unit.test_injectables")
catalog = InjectableCatalog(registrations)

# Create a new lifetime scope and create a child lifetime scope for it
parent_scope = LifetimeScope(catalog)
child_scope = parent_scope.create_child_scope()

# Resolve the same SCOPED injectable in the parent scope and the child scope
injectable1 = parent_scope.resolve(Scoped)
injectable2 = child_scope.resolve(Scoped)

# In the above case, injectable1 and injectable2 ARE NOT the same instance

# Now resolve the same injectable again in either of the scopes
injectable3 = parent_scope.resolve(Scoped) # injectable3 == injectable1, same instance
injectable4 = child_scope.resolve(Scoped) # injectable4 == injectable2, same instance

This feature may be used for, among other scenarios, web requests where we may want to have an isolation of instances for each individual request (SCOPED) but also share some instances (SINGLETON) across all of the requests.
Resolution rules:

TRANSIENT injectables will continue to work the same way.
A SCOPED injectable depending on TRANSIENT injectables WILL NOT cause a warning/error ("captive dependency").

A SINGLETON injectable depending on TRANSIENT injectables WILL continue to cause a warning/error ("captive dependency").

A SINGLETON injectable depending on SCOPED injectables WILL cause a warning/error ("captive dependency").

A SCOPED injectable depending on TRANSIENT injectables WILL NOT cause a warning/error ("captive dependency").

This should be changed to the opposite, especially since we're talking about a captive dependency (like with SINGLETON -> TRANSIENT or SINGLETON -> SCOPED).


"[FATAL tini (16)] exec driver-py failed: No such file or directory" with spark-py:v3.0.0 container image

(Re-)opening this issue as it was previously created but closed here I'm more than happy to close this one in favor of reopening the other one if someone suggests so.
Kubernetes version: 1.15.11
Helm version: 3.0.2
Note: These same steps were tested with spark-py-pi.yaml the 2.4.5 version (spark-py:v2.4.5) and there were no issues.
Steps to recreate

Create namespace spark-operator

Install the operator from the incubator/sparkoperator Helm chart. I pulled the chart locally and then ran the below command:

helm upgrade --install spark-operator sparkoperator/ --namespace spark-operator --set sparkJobNamespace=spark-operator --set enableWebhook=true

Run pyspark-pi example:

spark-py-pi.yaml definition (note the update to namespace field and serviceAccount):
apiVersion: "sparkoperator.k8s.io/v1beta2"
kind: SparkApplication
metadata:
  name: pyspark-pi
  namespace: spark-operator
spec:
  type: Python
  pythonVersion: "2"
  mode: cluster
  image: "gcr.io/spark-operator/spark-py:v3.0.0"
  imagePullPolicy: Always
  mainApplicationFile: local:///opt/spark/examples/src/main/python/pi.py
  sparkVersion: "3.0.0"
  restartPolicy:
    type: OnFailure
    onFailureRetries: 3
    onFailureRetryInterval: 10
    onSubmissionFailureRetries: 5
    onSubmissionFailureRetryInterval: 20
  driver:
    cores: 1
    coreLimit: "1200m"
    memory: "512m"
    labels:
      version: 3.0.0
    serviceAccount: spark-operator-spark
  executor:
    cores: 1
    instances: 1
    memory: "512m"
    labels:
      version: 3.0.0

Launch Pyspark Application
kubectl apply -f spark-py-pi.yaml -n spark-operator

Check logs:

[FATAL tini (16)] exec driver-py failed: No such file or directory

Which version of the operator are you running? Particularly, which image are you using?

Installed from https://github.com/helm/charts/tree/master/incubator/sparkoperator helm chart.
Currently deployed spark operator version: v1beta2-1.2.0-3.0.0
What is weird is now I notice the spark-operator image looks to be using spark 2.4.5
Image: gcr.io/spark-operator/spark-operator:v1beta2-1.1.2-2.4.5

So the incubator/sparkoperator chart shows to use operatorVersion: v1beta2-1.2.0-3.0.0 but when you pull the chart it's actually using v1beta2-1.1.2-2.4.5. Is this a bug with the chart?

I am also facing this issue. The spark-pi example worked fine. But the spark-py-pi gives this error:
[FATAL tini (15)] exec driver-py failed: No such file or directory
The docker image is: gcr.io/spark-operator/spark-py:v3.0.0

Similar issue as well, the change in entrypoint.sh that appears to lead to the issue above is here: https://github.com/apache/spark/pull/23655.
This commit and the commit after explain that spark-submit should be able to handle all the pyspark dependencies, but it is unclear how arguments can then passed in K8s command.
If I replace the entrypoint.sh with the version prior to this commit, it appears to work again, but this is a temporary patch at best and I obviously would not recommend as long-term (or even short-term) solution except for debugging.

We are facing the same issue as well. Is there a fix for this?

Any fix, I also get this here error, when I launch python applications.

Has anyone tried manually building and using a 3.0.1 spark-py base image?

This looks like a compatibility issue between Spark 3.0.x and Spark 2.4.x due to changes to the Dockerfile entrypoint. This issue seems to show up if the operator image is based on Spark 2.4.x whereas the app image is based on Spark 3.0.x.
BTW: We have recently migrated the operator chart into this repo because of deprecation of the helm chart repo.

Has anyone tried manually building and using a 3.0.1 spark-py base image?

I have tried manually building a base spark image for 3.0.1 and it worked fine with the operator.

@kaaquist  - so my issue came from retrieving the helm chart from helm pull operator/sparkoperator. Something wasn't right there. You don't have to rebuild the image or anything - it worked better to just pull the git repository and do a helm install. Somehow the git repo and the helm repo were using 2 different charts I believe.

@akuzni2, thanks. I did also use the helm chart from helm pull operator/sparkoperator. So good to know that if I just use the git repo, then it will work. I rewrote the app using Scala, and then I did not have the problem. But I guess that other people on the team might need to be able to use this trick. Thanks!

Apologies but I need some more clarification because I'm a helm newbie.

it worked better to just pull the git repository and do a helm install with what is retrieved

@akuzni2 I assume you are referring to https://github.com/GoogleCloudPlatform/spark-on-k8s-operator when you say 'repository'. If so, can please point me to install docs that discuss installing using this method? All the install docs I see assume you are installing from the helm repo.
Thank you.


Remove unnecessary PropertyKey Template

Removing some PropertyKey.Template that are not used as PropertyKey. These templates are added but only used to format strings, which can be done use String.format.

cc @qian0817

Any updates?


Elementwise multiplication of two ndarrays returns wrong results

Note: Providing complete information in the most concise form is the best way to get help. This issue template serves as the checklist for essential information to most of the technical issues and bug reports. For non-technical issues and feature requests, feel free to present the information in what you believe is the best form.
For Q & A and discussion, please start a discussion thread at https://discuss.mxnet.io
Description
Elementwise multiplication of two ndarrays returns wrong results
Environment info (Required)
python, built from source, USE_CUDA=OFF, USE_CUDNN=OFF
MXNet commit hash:
(Paste the output of git rev-parse HEAD here.)
f60094053e5f2c233bb39b63bdd16503875a4551
Error Message:
AssertionError:
Items are not equal:
Error<PHONE_NUMBER>00 exceeds tolerance rtol=0.000010, atol=0.000000.  Location of maximum error:(0, 2), a=0.098160, b=-375054495907840.000000
 a: array([[ 0.88395894,  0.0185979 ,  0.09815959,  0.24501987]], dtype=float32)
 b: array([[  8.83958936e-01,   1.85978990e-02,  -3.75054496e+14,
          2.45019868e-01]], dtype=float32)

Minimum reproducible example
export MXNET_ENGINE_TYPE=NaiveEngine
import mxnet as mx
from mxnet.test_utils import *

x = mx.nd.array(np.random.uniform(-1, 1, size=(1, 4)))
x = x.tostype('csr')
#x.attach_grad()
print(x.asnumpy())
z2 = x * x
z1 = mx.nd.sparse.square(x)
assert_almost_equal(z1.asnumpy(), z2.asnumpy())

This seems to work on the current nightly pip package which uses the commit 5245ef68191a6d47594bf331ec6e20ba6e93ad4c  from April 2.
Looks like the bug was introduced after that.
Btw @szha The latest pip --pre package used the above commit from April 2. Is the package not built nighly?

@eric-haibin-lin please tag as bug.

@rahul003 can you try nd.elemwise_mul(x, x) instead of x * x?

elemwise_mul has the same behavior crashes on the current master

You have to add fix <PR_NO> in the PR for it to automatically close.


Rollup Array Properties Do Not Return the Right Type

Report bugs here only for the Node JavaScript library.
If you're having problems using Notion's API, or have any other feedback about the API including feature requests for the JavaScript library, please email support at<EMAIL_ADDRESS>Describe the bug

The array property on ArrayRollupValue type does not return the type specified in @notionhq/client/build/src/api-types

To Reproduce
Node version: 16.x.x
Notion JS library version: 0.1.9
Steps to reproduce the behavior:

Make a request to a database and try to access the rollup property on the returned page. The type of the property of the rollup array is different from the value in the api-types file

Expected behavior
After fetching a database from Notion, if I try to access the properties of a page:
  const value: PropertyValue = page.properties["property"];
  if (prop.type === "rollup" && prop.rollup.type === "array") {
        const val = prop.rollup.array[0];
        console.log(val.type)
  }

The type provided here should include text not just rich_text or the API should return rich_text and not text
Screenshots
Types from Notion

Return Value from Notion API:

Additional context
Add any other context about the problem here.

By the look of the response from the Notion API, it looks like you have a mismatch of SDK Client version and API version. A while back we had a versioned change to move from text to rich_text which is why it isn't part of the Typescript types any more. You can find details about the change and the migration to the new property here. If you update your version to the latest, this issue should be resolved 🙏 )


[tutorials] remove cd cmd prior imports

Changes
The cd cmd prior import is historical, when there was no installation
available.
Related Issues
Closes #342
Checks

[ ] updated CHANGELOG.md
[ ] updated tests
[ ] updated doc/
[x] update example/tutorial notebooks

note that this collapsed state thing was removed by nbconvert --clear-output

note that this collapsed state thing was removed by nbconvert --clear-output

do we have to remove it? Not that it's all that important just wondering

note that this collapsed state thing was removed by nbconvert --clear-output

do we have to remove it? Not that it's all that important just wondering

We do not have to remove, but I guess since we agreed to always clear the notebooks output, it will be removed in the future anyways. I also think that the collapsed state is nothing which should be stored.

note that this collapsed state thing was removed by nbconvert --clear-output

do we have to remove it? Not that it's all that important just wondering

We do not have to remove, but I guess since we agreed to always clear the notebooks output, it will be removed in the future anyways. I also think that the collapsed state is nothing which should be stored.

fine by me, can you check since this is in the geometry tutorials @vhirtham ?

I think the collapsed field is just leftover from the time we didn't have dedicated plot functions and wanted to hide those big code blocks in the tutorial. So it should be safe to remove them.


App option for advanced mode (Trac #143)

Add setting in app options to enable advanced menu items, etc. for debugging and prototyping, while not cluttering the main user interface.
For now, the option should be hidden from the main app options dialog, requiring it to be manually set in the configuration text file.
Migrated from http://microfluidics.utoronto.ca/microdrop/ticket/143
{
    "status": "new",
    "changetime": "2014-04-17T19:40:13",
    "description": "Add setting in app options to enable advanced menu items, etc. for debugging and prototyping, while not cluttering the main user interface.\n\nFor now, the option should be hidden from the main app options dialog, requiring it to be manually set in the configuration text file.",
    "reporter": "cfobel",
    "cc": "",
    "resolution": "",
    "_ts": "1397763613851119",
    "component": "microdrop",
    "summary": "App option for `advanced mode`",
    "priority": "major",
    "keywords": "",
    "version": "0.1",
    "time": "2014-01-24T19:30:19",
    "milestone": "Microdrop 1.1",
    "owner": "",
    "type": "enhancement"
}

Trac update at 20140312T20:02:01: ryan changed milestone from "1.0" to "1.1"

Trac update at 20140417T19:40:13: ryan changed component from "" to "microdrop"


get par("usr") before rendering

It would be helpful to find par("usr") without having to render the gsplot object.
@jiwalker-usgs "kinda like lazyeval on certain things"

already captured in #338


Add UniDic implimentation

Pull Request
What does this PR do?

Add UniDic implementation to allow consistent tokenization for searching and indexing.
Please see discussion comment

PR checklist
Please check if your PR fulfills the following requirements:

[ ] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)?
[x] Have you read the contributing guidelines?
[x] Have you made sure that the title is accurate and descriptive of the changes?

Thank you so much for contributing to Meilisearch!

@ManyTheFish
Thank you for your comment.
I'll fix it. 👍

@ManyTheFish
I have modified it as you advised.
Please check it again.


Alternatives articles

Overview
We need a short article covering Open Data Editor alternatives:

Data Curator
Delimiter (see fd.io site)
Datasetter App
Excel
VSCode

@shashigharti
Open Refine of course =) Sorry I missed it


how to use exceljs in angular 7?

Is there a good way rather than doing below:
import * as Excel from "exceljs/dist/exceljs.min.js";
If I don't do the above then i get errors like:
Module not found: Error: Can't resolve 'fs'.....stream, zip etc

In my tsconfig.json, I have this:

{
"compileOnSave": false,
"compilerOptions": {
"paths": {
"exceljs": ["node_modules/exceljs/dist/exceljs.min"],
},

And then in my component, I can do: import { Workbook } from 'exceljs'
However, the whole exceljs library gets pulled in, even if your are only using a single export.  I'd like to know if there is a way to slim it down and if it requires some code changes / cleanup I think I have the time to contribute.


Added back to top button

Title of the Pull Request

[X] Have you renamed the PR Title in a meaningful way?

closes #182

Related Issue

Closes: #
Description

added back to top button for better navigation
How Has This Been Tested? ⚙

Screenshots 📷

Type of change
What sort of changes have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist

[X] My code follows the code style of this project.
[X] I have followed the contribution guidelines
[X] I have performed a self-review of my own code.
[X] I have ensured my changes don't generate any new warnings or errors.
[ ] I have updated the documentation (if necessary).
[X] I have resolved all merge conflicts.

@vishanurag please review the changes and let me know if any further changes are required

I want to restyle the feature of back to top button giving it CSS and JS.  Can you assign me this task under the gssoc-ext and hacktoberfest label.

I want to restyle the feature of back to top button giving it CSS and JS. Can you assign me this task under the gssoc-ext and hacktoberfest label.

@sahilwadaskar07 You can create a saparate issue for the same.


Change doc url to /doc/ ?

You think it's better for SEO? or just because it's shorter?
Can be done by patching:

https://github.com/algolia/instantsearch.js/blob/master/docs/_config.yml#L11
and https://github.com/algolia/instantsearch.js/blob/master/docs/documentation.md#L4

Just because it's simplier ... but I guess that only few geeks type 'documentation' when searching in google =)

Google does the autocomplete for me and I select it :D

React uses "docs"

So, do we rename or not?

No need


Add onfocus callback

I've checked the documentation but I found not reference to callbacks. Just in the Data Set or AJAX sections, but I don't have it very clear what are the ones in Data Set for.
I would expect to see some callbacks such as: onFocus, onOpen, onClose, onChange and so on.

Ok... I found it on the "Examples" page instead. It should be in the documentation rather than in a examples page.
In any case, I didn't see any on-focus.

Duplicate of https://github.com/select2/select2/issues/3152 which was merged into https://github.com/select2/select2/issues/1908.

Just as a note. This is also a request for a better documentation structure.
There should be a callbacks menu or similar.

For what it's worth, I have a giant list of things which people have mentioned are missing from the documentation (or why they couldn't find things), and I tend to add the topic of most tickets to it. Especially duplicates, because usually those are needed by more people.

This is also a request for a better documentation structure.

There are many of them. We're aiming to redesign how the documentation is set up so it's a bit more clear and covers practical use cases in the near future.

There are many of them. We're aiming to redesign how the documentation is set up so it's a bit more clear and covers practical use cases in the near future.

Awesome.


Improved VLAN customization for NNCP/NetAttach

Minor ability to customize VLANs used in NNCPs and NADs.  For example:
NETWORK_VLAN_START=30 NETWORK_VLAN_STEP=10 make openstack

...would use 30, 40, 50, etc for internalapi, storage, tenant, etc.  Which would then be paired with a custom NetConfig CR with those VLANs passed to make openstack_deploy:
NETCONFIG_CR=/path/to/custom/netconfig.yaml make openstack_deploy

Recent forays into baremetal Podified deployments have unveiled the need for such customization.

recheck


Fix download error bug

The tool currently falsely claims that "Missing [package] and downloads are blocked by x-block-origin"
To repro:
.\vcpkg.exe x-download out.txt --skip-sha512 --url=
https://nonexistent.com/

output:
~/dev/vcpkg-tool % out/build/macos-ci/vcpkg x-download out.txt --skip-sha512 --url=
https://nonexistent.com
error: Missing out.txt and downloads are blocked by x-block-origin.
error: : curl failed to download with exit code 2
curl: (2) no URL specified
curl: try 'curl --help' or 'curl --manual' for more information

Expected:
~/dev/vcpkg-tool % out/build/macos-ci/vcpkg x-download out.txt --skip-sha512 --url=
https://nonexistent.com
error: : curl failed to download with exit code 2
curl: (2) no URL specified
curl: try 'curl --help' or 'curl --manual' for more information

This output is still broken; we aren't downloading from the destination file name:

Can you fix this and show that you've smoke tested at least the following and seen reasonable results?

Initial smoke tests
File exists
Expect: Message that file exists and matches the SHA

[!NOTE]
BUG: Currently it prints "Download ". This is bogus

File does not exist
azurl (no), x-block-origin (no),  asset-cache (n/a), download (fail)
Expected:  Download failure message, nothing about asset caching

azurl (no), x-block-origin (no),  asset-cache (n/a), download (sha-mismatch)
Expected:  Download message with "you might need to configure a proxy" and expected/actual sha

[!NOTE]
Missing the "you might need to configure a proxy"

azurl (no), x-block-origin (no),  asset-cache (n/a), download (succeed)
Expected:  Download success message, nothing about asset caching

[!NOTE]
BUG: Currently prints "Downloading " Should be download success message.

azurl (no), x-block-origin (yes),  asset-cache (n/a), download (n/a)
Expected:  Download failure message, nothing about asset caching, x-block-origin complaint

azurl (yes), x-block-origin (no),  asset-cache (miss), download (fail)
Expected:  Download failure message, asset cache named, nothing about x-block-origin

[!NOTE]
The curl messaging is confusing?

azurl (yes), x-block-origin (no),  asset-cache (hit), download (n/a)
Expected:  Download success message, asset cache named,  nothing about x-block-origin

azurl (yes), x-block-origin (no),  asset-cache (miss), download (sha-mismatch)
Expected:   Download message with "you might need to configure a proxy" and expected/actual sha

[!NOTE]
Missing the "you might need to configure a proxy"

azurl (yes), x-block-origin (no),  asset-cache (miss), download (succeed)
Expected:  Download success message, asset cache upload, nothing about x-block-origin

azurl (yes), x-block-origin (yes),  asset-cache (miss), download (n/a)
Expected:  Download failure message, which asset cache was tried, x-block-origin complaint

[!NOTE]
This prints the x-block-origin complaint two separate times

azurl (yes), x-block-origin (yes),  asset-cache (hit), download (n/a)
Expected:  Download success message, asset cache named, nothing about x-block-origin

Closed and reopened to kick CLABot


Required attribute prevents Invalid Format message

https://codepen.io/anon/pen/LNvPVL
If we have required attribute and tried to enter any invalid date then it is always throwing "This is required" error instead of "Invalid Format"
This issue applies for both date and time pickers and this is happening only for "Invalid format" not for min and max errors

+1

@alenaksu Thank You for fixing the bug real quick!


Fix adding multiple layers without await

Small fix that allows adding several layers without await.
I have also joined the "1 layer per type default styles example"  into /examples/layer/several-layers.html that illustrates it is working.
This example can be useful also for checking default styles are working fine, so that's why I ping you too @oleurud  (it looks like we might need some changes, just compare with: https://carto.com/developers/carto-vl/examples/#example-add-multiple-source-layers)

Yes, we need to change some sizes and stroke


I/O error during frz fill

frz fill was fetching a lot of files from .frz/unused-contents/, and after a long while this happened:
  Hashing files... done (0 files, 51280150 bytes)
  Hashing files... done (0 files, 41431911 bytes)
  Hashing files... done (0 files, 36083173 bytes)
Checking that referenced content is present... 139356 linksterminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
  what():  filesystem error: cannot copy file: Input/output error [/backup1/archive/new/.frz/unused-content/camera-dump/202006/2020062012541626.cr2] [/backup1/archive/new/.frz/content/97/1e/j9]
Aborted

We should catch this error closer to the source, and just skip that one file, I think.

It looks like this happened because the filesystem was full; see https://github.com/kwiberg/frz/issues/10. Still, we should handle errors here better.


Patch 1

Sorry for this, clicked by mistake, it's not yet ready and I didn't get any feedback from you.


Create backends for k8s LoadBalancer services

Create Cluster and NodePort backends for Loadbalancer services

(Reported from Brau in Cilium slack.)

When running k8s integrated with openstack and creating a service of the type LoadBalancer k8s talks to the openstack API to create a loadbalancer at the openstack level. This LB is set up to   loadbalance traffic into the NodePort ports associated to the service in k8s. Ie:
I) I have deployed k8s 1.15.3 using ubuntu bionic vms (kernel 5.3.0) , cillium 1.6.3 and deleted the kube-proxy daemonset.
2) Then I created a service of type LoadBalancer for the nginx ingress:
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  name: ingress-nginx-controller
spec:
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: http
  - name: https
    port: 443
    protocol: TCP
    targetPort: https
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  sessionAffinity: None
  type: LoadBalancer

This triggers the process and the service ends up looking like this:
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2019-10-28T14:24:20Z"
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  name: ingress-nginx-controller
  namespace: ingress-nginx
  resourceVersion: "492320"
  selfLink: /api/v1/namespaces/ingress-nginx/services/ingress-nginx-controller
  uid: 0791dfd9-a027-4dda-80db-b30fb47b10d4
spec:
  clusterIP: <IP_ADDRESS>
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    nodePort: 31923
    port: 80
    protocol: TCP
    targetPort: http
  - name: https
    nodePort: 31111
    port: 443
    protocol: TCP
    targetPort: https
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: <IP_ADDRESS>

So the service is populated with the clusterip, assigned Nodeports and the openstack loadbalancer's floating ip as expected.
But unfortunately these particular NodePorts do not seem to be created:
$ curl -w "%{http_code}\n"  -v --header 'Host: kuard.k8s.pipeworks.arm.com' http://<IP_ADDRESS>:31923
* Rebuilt URL to: http://<IP_ADDRESS>:31923/
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* connect to <IP_ADDRESS> port 31923 failed: Connection refused
* Failed to connect to <IP_ADDRESS> port 31923: Connection refused
* Closing connection 0
000
curl: (7) Failed to connect to <IP_ADDRESS> port 31923: Connection refused

Which leads to the openstack loadbalancer tcp checks to fail as there is no port to send traffic to.
Using a NodePort service instead of a loadbalancer works, showing that it is not a particular issue of the setup. However using NodePort losses the nice automation setting up the ingress route all the way up to the floaing ip.

It might not be enough just to provision NodePort BPF services. We might need to create a BPF service for LoadBalancer (external) IP, so this depends on the ExternalIP feature.

Hi brb,
Not sure if I am missing something, but if requesting an svc of the type LoadBalancer creates the NodePort all should fall into place as at the openstack-level the loadbalancer is just trying to send traffic to the Nodes on the nodeport:

Hi @braudel ,
Some loadbalancers (e.g. MetalLB in L2 mode, https://github.com/cilium/cilium/issues/9116) expect a node to handle requests with the destination IP addr = the LoadBalancer SVC external IP addr. So, to fix for all we need to fix https://github.com/cilium/cilium/pull/9092 first.
Anyway, your case should be fixed by https://github.com/cilium/cilium/pull/9510.


fix: catch decoding errors

What does this PR do?
Any errors thrown while looking for decoded keys are handled.  Adds a unit test.
What issues does this PR fix or reference?
@W-14457431@
https://github.com/forcedotcom/cli/issues/2560

QA Notes

✅ commented out the try/catch, and the UT failed


Fix panic of rowToLogicalRouter() when SignalCB is registered.

If SignalCB is registered, the populateCache() function will always
call the rowToXXX() functions of each module. In rowToLogicalRouter()
it will crash at some point in most cases because the implementation
was trying to resolve the rows being referenced by the LR row, e.g.
the LB rows or LRP rows, which may not have been populated to the
cache yet.
In fact, the API was always treating the rows being referenced as
simply uuid strings rather than any specific fields, so there is
no point to resolve the rows. So this patch fixes it by following
the existed pattern, such as rowToLogicalSwitch, simply stores
the uuids of the rows being referenced.
Without this fix, the added signal handler in test_common.go would
cause test failures such as:
=== RUN   TestLRLoadBalancer
[unix nb1.ovsdb]
logical_router_load_balancer_test.go:59: Adding LB to LRouter lr1
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x6ab791]
goroutine 39 [running]:
github.com/ebay/go-ovn.(*ovndb).rowToLogicalRouter(0xc0002c4200, 0xc0001d0990, 0x24, 0x24)
/home/hanzhou/go/src/github.com/ebay/go-ovn/logical_router.go:143 +0x13b1
github.com/ebay/go-ovn.(*ovndb).populateCache(0xc0002c4200, 0xc000158db0)
/home/hanzhou/go/src/github.com/ebay/go-ovn/ovnimp.go:235 +0x19b4
github.com/ebay/go-ovn.ovnNotifier.Update(0xc0002c4200, 0x713e60, 0x9b06e0, 0xc000158db0)
/home/hanzhou/go/src/github.com/ebay/go-ovn/ovnnotify.go:28 +0x35
github.com/ebay/libovsdb.update(0xc00030c770, 0xc00013f780, 0x2, 0x4, 0xc000499430, 0x0, 0x0)
/home/hanzhou/go/pkg/mod/github.com/ebay/libovsdb@v0.0.0-20190718202342-e49b8c4e1142/client.go:216 +0x2e7
reflect.Value.call(0x7214c0, 0x78f4a8, 0x13, 0x773ebd, 0x4, 0xc00015ddd0, 0x3, 0x3, 0xc00015dd38, 0x4c161d, ...)
/usr/local/go/src/reflect/value.go:475 +0x8c7
reflect.Value.Call(0x7214c0, 0x78f4a8, 0x13, 0xc00015ddd0, 0x3, 0x3, 0x1c8, 0xc00015ddc8, 0x634592)
/usr/local/go/src/reflect/value.go:336 +0xb9
github.com/cenkalti/rpc2.(*Client).handleRequest(0xc00030c770, 0x0, 0xc00014b440, 0x6, 0xc00051a640, 0x70fac0, 0xc0002da3c0, 0x197)
/home/hanzhou/go/pkg/mod/github.com/cenkalti/rpc2@v0.0.0-20170726070524-c51a77e5f664/client.go:131 +0x1cf
github.com/cenkalti/rpc2.(*Client).readRequest(0xc00030c770, 0xc0000b3e00, 0xc0000b3e20, 0x0)
/home/hanzhou/go/pkg/mod/github.com/cenkalti/rpc2@v0.0.0-20170726070524-c51a77e5f664/client.go:179 +0x1cb
github.com/cenkalti/rpc2.(*Client).readLoop(0xc00030c770)
/home/hanzhou/go/pkg/mod/github.com/cenkalti/rpc2@v0.0.0-20170726070524-c51a77e5f664/client.go:93 +0x14f
github.com/cenkalti/rpc2.(*Client).Run(0xc00030c770)
/home/hanzhou/go/pkg/mod/github.com/cenkalti/rpc2@v0.0.0-20170726070524-c51a77e5f664/client.go:62 +0x2b
created by github.com/ebay/libovsdb.newRPC2Client
/home/hanzhou/go/pkg/mod/github.com/ebay/libovsdb@v0.0.0-20190718202342-e49b8c4e1142/client.go:104 +0x376
exit status 2
FAIL	github.com/ebay/go-ovn	0.071s
Fixes: 82a71f5067fb1 ("show additional columns for LogicalRouter").
Signed-off-by: Han Zhou<EMAIL_ADDRESS>

LGTM


why not use tx.origin == msg.sender to judge the caller is a contract address or EOA?

https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/AddressUtils.sol

First of all, isContract checks the code size for any address, not just the caller.
With that out of the way, there are multiple reasons why tx.origin is usually a bad idea, at least security-wise: see here an issue where removing it from Solidity was proposed, and here a suggestion from Vitalik to 'not assume that tx.origin will continue to be usable or meaningful'.

thx


[WIP] Add public key to aggsig challenge

Optionally add a public key to the aggsig challenge in both the creation and verification of the signature. Also fixes https://github.com/mimblewimble/secp256k1-zkp/pull/21
Work in progress, please do not merge.

Can't we just rely on the upstream musig code instead?

@ignopeverell could you point me to where to find this code? I couldnt find any references to aggsig or musig in the ElementsProject fork or the original secp256k1 repository

Mmmh looks like you're right. I was assuming the release of the BIP came with code but looks like I was wrong, sorry about that.

Updated the tests to reflect the changes, however 1 is failing (validating combined signature, even though separate signatures work). I don't understand why but will research it more

One more comment:
change the title of this PR to change aggsig to bip-schnorr, something like that. and put this link in this PR:    https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki

You guys have been all over this already and it all looks good to me. (Also very glad to have had more pairs of eyes on this code). Happy to merge when ready (it won't affect Grin builds until it's explicitly tagged)

Final small change on suggestion of @garyyu: write the full 33 bytes of the public key, as in the BIP-schnorr reference code

Great, merging! Thanks for all your work on this


DBZ-4064 Fix NullPointerException with LogMinerEventRow initialization

https://issues.redhat.com/browse/DBZ-4064

Wow, a fair bit of changed code for fixing an NPE :) I suppose there's some refactoring/re-org at play, too? Could you describe the change a bit? Always better to have refactorings and fixes in separate commits in general.

Thanks for clarifying, @Naros! Two follow-up questions then:

Does the NPE fix itself need backporting to 1.6?
Are we sure that the object-per-row allocation poses an actual problem and isn't some kind of pre-mature optimization? This pattern is prone to subtle errors (the row object being kept around in calling code while then being modified "under the hood" by the factory upon the next invocation), so we only should go for this if it's proven to be actually useful.

Looking into the test failure, I believe its related.


RHEL9 DotNet containers tested on OpenShift 4

It would be nice to test DotNet containers on OpenShift 4 as we do it for RHEL8.
WDYT? Does it make sense?
@aslicerh Do you have time to handle it and drive it?

Do you mean RHEL9/UBI9 based .NET containers? If so, we don't ship any of those, so there is nothing to test.
Or do you mean testing the RHEL8/UBI8 based .NET containers on a RHEL9 Openshift host? If so, I would be willing to look into that.

@aslicerh Yeah, I have meant RHEL9/UBI9 based .NET container. Closing this issue.


Any benchmarks?

Hello,
I really like the idea if using QUIC for SSH as my understanding is that QUIC is significantly faster that TCP based protocol in that it uses a reliable UDP protocol.
I was just wondering if you had any initial estimates on how fast QUSH is in comparison to SSH?
Thanks

I actually saw that you have some examples for comparison of qush/qushd and ssh/sshd which I was able to build but did not see any information on how to start any of them up for testing.
Can you please provide some information on this?
Thanks

Hi, I'm glad someone noticed this project. It was actually my undergraduate project and did include some test data in the final paper, but unfortunately that test data was lost. What I can tell you at this point is that SSH using QUSH transfers is 10% to 30% faster than the TCP version under some very aggressive parameters. The testing environment was using two VMware VMs with Linux's tc qdisc command to control latency and packet loss. I think it may be that the system kernel implementation is not optimized for UDP.


One grand "connect these features" solution not offered

This upload is seemingly facing big problems:

OK, let's have a closer look:

If fact one grand "connect these features" solution, if offered, would solve the entire list in one swoop.
This is mainly due to the overlying path noticing the underlying paths, but the underlying paths not noticing the overlying paths!
Smart users will know about this iD quirk, so will first choose to resolve each of the issues that offers "connect these features",
and then the other issues will go away on their own naturally.
But of course the best thing would be for iD to notice there is a "gran slam" available here of "connect all features" that could be offered.

I would hesitate offering this as an option, since it's likely that beginners would apply it as an easy way out instead of inspecting every situation. Multiple issues of this type are often a result of a sheer error (e.g. someone drew or pasted a path over other ones while they were hidden for some reason).
If you really know that you want that, just keep the mouse pointer at the topmost "connect those features", and keep clicking in machine-gun manner until the list is empty. (I do that often with "Set as outer" when drawing multipolygons).

I would hesitate offering this as an option, since it's likely that beginners would apply it as an easy way out instead of inspecting every situation.

I agree. Connecting all isn't always the right solution, since some could be bridges or tunnels or incorrect geometry. I could envision a hidden option to connect them all if someone really knows what they're doing, but we don't have an existing workflow for this type of advanced fix and it doesn't seem like a common problem.


Reg\Register an operation - conditionally show form pages based on Registration purpose(s)

Describe the task
The Operation Registration form is meant to conditionally show form pages such as the New Entrant Operation and Opted-in Operation based on what the user selects for the Registration Purpose question. We have logic for this partially implemented in OperationRegistrationPage.tsx, however even though a user can only select one they can be assigned multiple options in the backend based on this criteria:
For Developers
Dropdown for “The purpose of this registration is to register as a:”
is options includes:

Reporting Operation
OBPS Regulated Operation
Opted-in Operation
New Entrant Operation
Electricity Import Operation
Potential Reporting Operation

The user can only pick 1 option.
all options EXCEPT “potential reporting operation” should automatically mark the user as a “reporting operation” in the back end.
if the user picks new entrant or opt in, mark the user as a Reporting AND regulated operation in the back end.

Acceptance Criteria

[ ] Remove hardcoded purpose
[ ] Investigate what is best to return for Registration purpose in the case that there are multiple purposes. An array with all of the purposes or the one that they selected/is relevant to displaying the extra form pages (New Entrant/Opted-in)? @Sepehr-Sobhani might have some thoughts on this :) (Sep: I think we can have a resolver to send what we are actually looking for by calling all registration purposes on the operation and returns 'Opted-in Operation' if OPTED_IN_OPERATION is one of those purposes and 'New Entrant Operation' if NEW_ENTRANT_OPERATION is one and ...
[ ] Create resolver in OperationOut Django Ninja schema
[ ] Add OperationRegistrationPage.tsx tests
[ ] Also consider this: https://github.com/bcgov/cas-registration/issues/1952#issuecomment-2334928724

Blocking label is added for PO checking other mentioned tickets, not development work

I believe this is blocking #2094 but please correct me if I'm wrong.

I believe this is blocking #2094 but please correct me if I'm wrong.

It doesn't block development, but it does block manual testing of 2094. Everything's a new entrant until 2094 is in

Note that there's a bug (https://github.com/orgs/bcgov/projects/122/views/2?filterQuery=facility&pane=issue&itemId=79778537) that prevents continuing past the facilities page for LFOs.

Thanks! This worked for SFO workflows, but like @BCerki mentions I couldn't complete the steps for an LFO.
I'll close this, noting the bug ticket for that is already created.


nixos/noXlibs breaks gtk2 / gtk3 / gtk4

:EDIT:
I changed the title from noXlibs breaks gtk ... to noXlibs breaks jre since the real problem is that once noXlibs is enabled, it seems one cannot have any form of jre anymore.
Describe the bug
When building a nixos profile with
{
  config.environment.noXlibs = true;
  config.environment.systemPackages = [ pkgs.gtk2 ];
}

You get a failing builder with:
configure: error: Package requirements (cairo-xlib >= 1.6) were not met:

No package 'cairo-xlib' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables CAIRO_BACKEND_CFLAGS
and CAIRO_BACKEND_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
builder for '/nix/store/97p47bwvg0x8wgf7a9ri0blcc5yq9p04-gtk+-2.24.32.drv' failed with exit code 1
error: build of '/nix/store/97p47bwvg0x8wgf7a9ri0blcc5yq9p04-gtk+-2.24.32.drv' on 'ssh://builder' failed: builder for '/nix/store/97p47bwvg0x8wgf7a9ri0blcc5yq9p04-gtk+-2.24.32.drv' failed with exit code 1
builder for '/nix/store/97p47bwvg0x8wgf7a9ri0blcc5yq9p04-gtk+-2.24.32.drv' failed with exit code 1
cannot build derivation '/nix/store/1j2vbnrcxdjz9m5jdr53fssv6jsfcil5-system-path.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/inzihrq5b385g1yj7fw24c99bd8jzxfl-nixos-system-unifi-21.05pre-git.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/3lysliyhi5ffaiwq6qfllmhrajr0ygbm-morph.drv': 1 dependencies couldn't be built
error: build of '/nix/store/3lysliyhi5ffaiwq6qfllmhrajr0ygbm-morph.drv' failed
Error while running `/run/current-system/sw/bin/nix-build /run/user/1000/morph-977101554/morph/eval-machines.nix -A machines --arg networkExpr /home/dminuoso/private/network/network.nix --argstr argsFile /run/user/1000/morph-726395305/morph-args.json --out-link /run/user/1000/morph-726395305/result --option max-jobs 0 ...`: See above.%

Similar errors for gtk3 and gtk4.
This is somewhat annoying since I generally like <nixpkgs/nixos/modules/profiles/minimal.nix> for my servers, but gtk is a dependency of openjdk that I need for some things.
Steps To Reproduce
Steps to reproduce the behavior:
See above.
Notify maintainers
@lopsided98 (introduced the cairo modification in no-x-libs)
@lovek323 @7c6f434c (gtk maintainers)

Metadata
N/A
This happens on 21.05 or on nixos-unstable.
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
  - gtk2
  - gtk3
  - gtk4
# a list of nixos modules affected by the problem
module:

adoptopenjdk-bin uses autoPatchelfHook to link X11 libraries.  We may able to use patchelf --remove-needed to tell autoPatchelfHook not requireing X11, or just ignore errors by autoPatchelfIgnoreMissingDeps.  adoptopenjdk-bin works just fine without X11 libraries unless classes using X11 is used.

We are barking up the wrong tree here. After a good nights sleep I realized that it's just gtk3 that's failing. So all we need to do is remove the GTK dependency from the bootstrap JDK, and use a headless jre, and all seems well.
  jre8_trueHeadless = (pkgs.openjdk8.override
    { openjdk8-bootstrap = pkgs.openjdk8-bootstrap.override { gtkSupport = false; };
      headless = true;
      enableGnome2 = false;
    }).jre;

Seems to do the job. @edwtjo is it sensible to disable gtkSupport on the bootstrap JDK? I don't fully understand what the bootstrap JDK needs to be able to do. Is this just needed for building OpenJDK?

This is currently preventing me from updating my NixOS boxes as well. 4 different machines actually which share similar configs.
gtk4 basically hangs. nix dumps logs griping about meson and ninja ( perhaps a battle tested build system might be more suitable for a project like gtk 😡 ).
I doubt this is a Nix issue. My guess based on the logs is that ninja attempts rm -r $PWD or a similar directory deletion which has open file descriptors.

This is currently preventing me from updating my NixOS boxes as well. 4 different machines actually which share similar configs.
gtk4 basically hangs. nix dumps logs griping about meson and ninja ( perhaps a battle tested build system might be more suitable for a project like gtk 😡 ).
I doubt this is a Nix issue. My guess based on the logs is that ninja attempts rm -r $PWD or a similar directory deletion which has open file descriptors.

Of you really think this is the same issue couldn't you just disable noXLibs? And why does this only occur since a recent update? I think the issue mentioned here exists since forever.

This is currently preventing me from updating my NixOS boxes as well. 4 different machines actually which share similar configs.
gtk4 basically hangs. nix dumps logs griping about meson and ninja ( perhaps a battle tested build system might be more suitable for a project like gtk rage ).
I doubt this is a Nix issue. My guess based on the logs is that ninja attempts rm -r $PWD or a similar directory deletion which has open file descriptors.

Of you really think this is the same issue couldn't you just disable noXLibs? And why does this only occur since a recent update? I think the issue mentioned here exists since forever.

You're right my issue is different. The debug output has a lot of similarities so this popped up in my search results; likely just because it's the most recent NixOS + gtkX issue.

I don't fully understand what the bootstrap JDK needs to be able to do. Is this just needed for building OpenJDK?

Yeah the bootstrap jdk (nowerdays called boot jdk) is needed to build the jdk itself.
see https://github.com/openjdk/jdk17u/blob/master/doc/building.md#boot-jdk-requirements

This is still a problem stale bot

I also don't like this but I think this is more or less "intended" behaviour and probably not easily fixable.

Yes and I personally stumbled over this option a couple of times and rather would remove it to reduce unexpected build failures in containers.

It also breaks nixos-rebuild build-vm, for some reason. I don't see why an option of the guest system would affect the build of the VM on the host, but it does. To reproduce it's enough to do:
imports = [ (modulesPath + "/profiles/minimal.nix") ];

and nixos-rebuild build-vm.

There are mixed different problems into this issue, hence I am closing it to untangle them.
That GTK is not working without x11 or on a headless system, is acceptable in my opinion as it is a pure GUI library and already disabled in multiple places in noXlibs.
That the openjdk bootstrapping breaks with it, is unrelated to the original issue and I would suggest to just booststrap without GUI which would also speed the build process up.
Also the build-vm comment above this one is probably a totally separate issue not belonging into this one.

Also the build-vm comment above this one is probably a totally separate issue not belonging into this one.

Maybe, but the build fails with exactly the same error reported here.

@SuperSandro2000
These two issues are precisely related. It is because the bootstrap JDK induces an (unneeded) gnome dependency that config.environment.noXlibs conflicts with the presence of a JRE.
I've made a proposal that went unnoticed by the maintainer.

We are barking up the wrong tree here. After a good nights sleep I realized that it's just gtk3 that's failing. So all we need to do is remove the GTK dependency from the bootstrap JDK, and use a headless jre, and all seems well.
  jre8_trueHeadless = (pkgs.openjdk8.override
    { openjdk8-bootstrap = pkgs.openjdk8-bootstrap.override { gtkSupport = false; };
      headless = true;
      enableGnome2 = false;
    }).jre;

Seems to do the job. @edwtjo is it sensible to disable gtkSupport on the bootstrap JDK? I don't fully understand what the bootstrap JDK needs to be able to do. Is this just needed for building OpenJDK?

I think I fixed that with #213812


Revert overly broad return type

Problem
A recent commit tried to simplify a return type on a method in the Eloquent Builder. To be fair the return type doc block was fairly long. But it was specific.
This new simplification had the unintended consequence of breaking code completion in a number of IDE's/code editors. eg
User::find(1)-><'unable to continue with easy code completion/chaining from here'>

Proposal
It would be helpful to developers if this simplification could be reverted to allow the previous functionality to be restored and improve workflow.
Disadvantages
Just a longer line in a doc block. Approx an extra 94 characters. There is a possibility that the actual line could be simplified a little, but the current type of mixed is too generic to be useful.
Thank you.

Refs https://github.com/laravel/framework/commit/3be29a0851e44a038a020fea0804dce03f01863b


Add new Style/ReadingEnvVarWithoutDefaultValue cop

Reading environment variables using brackets like ENV['SOME_KEY'] may unexpectedly be evaluated as nil if the variable is unset.
Because ENV behaves like a Hash, I think the style guide for Hash can be applied to ENV as well.
https://rubystyle.guide/#hash-fetch-defaults
This cop detects the code that does not return the default value nor raise errors when reading unset environment variables.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[ ] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Seems this cop does not attract anyone; I’m closing this PR :)

We've got a pretty big backlog, so we're moving relatively slowly through all PRs. Lack of feedback, doesn't mean we're not interested in some proposal. I hope to get to review this over the weekend.

I just reviewed the cop and I like the idea overall. It seems, however, there's no cop for checking the same thing for hashes (likely because it's hard to infer what's a hash or not). I've been wondering if it makes sense to try to make a more generic cop that checks hashes and ENV (maybe with some configuration options to decide what exactly you want to check) or just limit this to what's currently being proposed. The current cop definitely has the advantage of being free from false positives which is nice. @rubocop/rubocop-core Any opinions?

@bbatsov Thank you for reviewing the code. (and sorry for my impatiently closing the PR)
As you said, in a static analysis, it's hard to know whether an object is a hash except in the case it is a hash literal. Plus, developers can implement their [] and []= methods; we could need to care about not having false positives for that case if we want to make a more generic cop.

In my opinion, guarding against ENV[] is much more useful than guarding against Hash#[].

https://rubystyle.guide/#hash-fetch-defaults

You can also add this to the cop metadata as a reference.

How about FetchEnvVar? There are cases where fetch without the default value fits more (e.g., raising an error against an unset environment variable as a circuit breaker.), so we can suggest using fetch while probably should leave the developers to decide to use the default value.
For the same reason, I'm wondering if the error message below was better, while the auto-correction probably should give nil for the default value not to break the software's current behavior.
- Use `ENV.fetch('X', nil)` instead of `ENV['X']`.
+ Use `ENV.fetch('X')` or `ENV.fetch('X', nil)` instead of `ENV['X']`.

What do you think?

I like the proposed changes to the cop name and its message.

while the auto-correction probably should give nil for the default value not to break the software's original behavior.

Yeah, exactly.

Thanks, I updated this PR.

Looks good. Just address the conflict in result_cache.rb and we're good to merge.

I resolved the conflict and fixed a method so that it can cover another case.
https://github.com/rubocop/rubocop/pull/10502/commits/1270cc3cf6db96fd001605686dce63c8d63723dd

Thanks!

The thing about ENV is that its values (and keys) will always be a (frozen) string so the Ruby Style Guide Hash#fetch recommendation isn't applicable because the false value case cannot occur. This means that ENV['foo'] and ENV.fetch('foo', nil) have the same behaviour and don't seem to protect against any meaningful issue (correct me if I'm wrong).

As you pointed out, the Style Guide Hash#fetch is to distinguish nil and false, so it's not applicable to ENV. The description of this PR may have been confusing because the actual purpose of this cop is different from it.
The purpose of this cop is to alert the developers that the code to read an environment variable is possibly nil on runtime. If the developer assumes that the environment variable is absolutely set, using ENV.fetch would be a better choice than ENV[] because fetch raises an error when the variable is not set and stops the execution immediately not expanding the incident. If they want to intentionally allow the case that the variable is nil, specifying the default value nil can help others know the developer's intention.
(This idea is based on my experience, but I know it depends on the situation or how the developers think.)

Hey there, wanted to point out something I noticed when running this cop's autocorrection.
Code like
value = ENV['EXAMPLE_KEY'] || 'default_value'

gets autocorrected to
value = ENV.fetch('EXAMPLE_KEY', nil) || 'default_value'

I ended up manually changing that to
value = ENV.fetch('EXAMPLE_KEY', 'default_value')

in my codebase. It'd be neat if the autocorrection could handle that pattern.

@rmacklin I agree with you, I've replaced a lot of a = ENV['a'] || 'default' in my code base and I really like a = ENV.fetch('a', 'default') - it's look nicer and tider

That's true. I opened an issue for this enhancement.
https://github.com/rubocop/rubocop/issues/10578