[ITensors] [BUG] Automatic differentiation

Description of bug
Weird behavior of automatic differentiation: error is thrown for a function, but not for a slightly rewritten (though analogous) function or for a bit more complicated one.
Minimal code demonstrating the bug or unexpected behavior
Minimal runnable code
using ChainRulesCore
using Zygote
using ITensors
@non_differentiable onehot(::Any...)

indices = [Index(2) for _ in 1:10]
mps = randomMPS(indices; linkdims=10)
state = [randomITensor(index) for index in indices]

The function below leads to an error.
function f(mps, state)
    N = length(mps)
    L = 0.
    tens = 1.
    for i in 1:N
        tens *= mps[i]
        if i < N
            idx = commonind(mps[i], mps[i+1])
            partial_mps = tens * onehot(idx => 1)
        else
            partial_mps = tens
        end
        L += (partial_mps * state[i])[]
        tens *= state[i]
    end
    return L
end

f(x) = f(x, state)
f'(mps)
# DimensionMismatch("cannot add ITensors with different numbers of indices")

However, if I just add two extra lines to that function, differentiation works well.
function f(mps, state)
    N = length(mps)
    L = 0.
    tens = 1.
    for i in 1:N
        tens *= mps[i]
        if i < N
            idx = commonind(mps[i], mps[i+1])
            partial_mps = tens * onehot(idx => 1)
        else
            partial_mps = tens
        end
        phys_idx = commonind(mps[i], state[i])
        L -= sum([(partial_mps * onehot(phys_idx => j))[] for j in 1:1])
        L += (partial_mps * state[i])[]
        tens *= state[i]
    end
    return L
end

f(x) = f(x, state)
f'(mps)
# works well

Finally, if I change just one line of that function, which does not affect its output, differentiation results in another error.
function f(mps, state)
    N = length(mps)
    L = 0.
    tens = 1.
    for i in 1:N
        tens *= mps[i]
        if i < N
            idx = commonind(mps[i], mps[i+1])
            partial_mps = tens * onehot(idx => 1)
        else
            partial_mps = tens
        end
        phys_idx = commonind(mps[i], state[i])
        L -= (partial_mps * onehot(phys_idx => 1))[]
        L += (partial_mps * state[i])[]
        tens *= state[i]
    end
    return L
end

f(x) = f(x, state)
f'(mps)
# DimensionMismatch("cannot add ITensors with different numbers of indices")

Expected output or behavior
I would expect to get no errors when setting up automatic differentiation with the functions above.
Version information

Output from versioninfo():

julia> versioninfo()
Julia Version 1.7.0
Commit 3bf9d17731* (2021-11-30 12:12 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: AMD EPYC 7742 64-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, znver2)
Environment:
  JULIA_NUM_THREADS = 128

Output from using Pkg; Pkg.status("ITensors"):

julia> using Pkg; Pkg.status("ITensors")
Status `~/.julia/environments/v1.7/Project.toml`
  [9136182c] ITensors v0.2.16

Very strange bug, thanks @ArtemStrashko. By the way, I would recommend updating to the latest version of ITensors (0.3.14), though I see this bug in the latest version as well so that won't fix this issue.

This seems to fix the initial error:
using Zygote
using ITensors

indices = [Index(2) for _ in 1:10]
mps = randomMPS(indices; linkdims=10)
state = [randomITensor(index) for index in indices]

function f(mps, state)
  N = length(mps)
  L = 0.
  tens = 1.
  for i in 1:N
    tens *= mps[i]
    proj = if i < N
      idx = commonind(mps[i], mps[i+1])
      onehot(idx => 1)
    else
      ITensor(1.0)
    end
    partial_mps = tens * proj
    L += (partial_mps * state[i])[]
    tens *= state[i]
  end
  return L
end

f(x) = f(x, state)
f'(mps)

It seems like the issue stems from putting something differentiable (like tens) inside of the if-statement. I'm not sure why that's the case, perhaps there's an issue with one of our ChainRules definitions, or it is a Zygote issue.

Actually, there's a more minimal fix. These both run without errors for me:
using Zygote
using ITensors

indices = [Index(2) for _ in 1:10]
mps = randomMPS(indices; linkdims=10)
state = [randomITensor(index) for index in indices]

function f(mps, state)
  N = length(mps)
  L = 0.
  tens = 1.
  for i in 1:N
    tens *= mps[i]
    if i < N
      idx = commonind(mps[i], mps[i+1])
      partial_mps = tens * onehot(idx => 1)
    else
      partial_mps = tens * ITensor(1.0)
    end
    L += (partial_mps * state[i])[]
    tens *= state[i]
  end
  return L
end

f(x) = f(x, state)
f'(mps)

and
using Zygote
using ITensors

indices = [Index(2) for _ in 1:10]
mps = randomMPS(indices; linkdims=10)
state = [randomITensor(index) for index in indices]

function f(mps, state)
  N = length(mps)
  L = 0.
  tens = 1.
  for i in 1:N
    tens *= mps[i]
    if i < N
      idx = commonind(mps[i], mps[i+1])
      partial_mps = tens * onehot(idx => 1)
    else
      partial_mps = tens * ITensor(1.0)
    end
    phys_idx = commonind(mps[i], state[i])
    L -= (partial_mps * onehot(phys_idx => 1))[]
    L += (partial_mps * state[i])[]
    tens *= state[i]
  end
  return L
end

f(x) = f(x, state)
f'(mps)

The only change I made is rewriting:
      partial_mps = tens

to:
      partial_mps = tens * ITensor(1.0)

I can't say I understand why this is happening. It would be helpful to concoct a more minimal example to investigate this better.

So oddly enough this seems to be a Zygote bug:
using FiniteDifferences
using Zygote

function f(x)
  y = [[x; x]', [x; x]]
  r = 0.0
  o = 1.0
  for n in 1:2
    o *= y[n]
    if n < 2
      proj_o = o * [1.0; 0.0]
    else
      # Error
      proj_o = o
      # Fix
      # proj_o = o * 1.0
    end
    r += proj_o
  end
  return r
end

x = 1.2
@show f(x)
@show central_fdm(5, 1)(f, x)
@show f'(x)


fix: Bump index-version & Fix large index size (With libraries)

Description
Bump index-version & Fix large index size
Related PRs
List related PRs against other branches / repositories:

branch
PR

SymphonyElectron
#739

QA Checklist

[x] Unit-Tests

Published<EMAIL_ADDRESS>


Hotfix/1.1.7

Changes proposed in this pull request:

Updated liquidity mining json

Voting is still in progress but the proposal has already passed with 4 votes. This can be merged now.


feature request: tag placeholder

Hi! I want to use placeholder like below, but this plugin does not support placeholder yet, right?
<match *.**>
@type copy
  <store>
    type cloudwatch_logs
     log_group_name log-group-${tag[1]}
     log_stream_name log-stream-${tag[2]}
...

cf. https://github.com/fluent/fluentd/blob/1b9cddd03c271f06abbc32d9f8fe93c1d496f654/lib/fluent/plugin/output.rb#L687

We can support this feature after merged https://github.com/ryotarai/fluent-plugin-cloudwatch-logs/pull/71

Hi. I'm glad to upgrade fluentd to v0.14 :tada:
fluent-plugin-cloudwatch-logs did not seem to care tag placeholders. 😢
2018-04-27 02:18:29 +0000 [warn]: #0 failed to flush the buffer. retry_time=0 next_retry_seconds=2018-04-27 02:18:30 +0000 chunk="56acb1b1c285caf0f9a635814dd15292" error_class=Aws::CloudWatchLogs::Errors::InvalidParameterException error="1 validation error detected: Value 'log-group-${tag[1]}' at 'logGroupName' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\.\\-_/#A-Za-z0-9]+"
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/aws-sdk-core-3.20.2/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/aws-sdk-core-3.20.2/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:20:in `call'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/aws-sdk-core-3.20.2/lib/aws-sdk-core/plugins/idempotency_token.rb:17:in `call'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/aws-sdk-core-3.20.2/lib/aws-sdk-core/plugins/param_converter.rb:24:in `call'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/aws-sdk-core-3.20.2/lib/aws-sdk-core/plugins/response_paging.rb:10:in `call'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/aws-sdk-core-3.20.2/lib/seahorse/client/plugins/response_target.rb:23:in `call'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/aws-sdk-core-3.20.2/lib/seahorse/client/request.rb:70:in `send_request'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/aws-sdk-cloudwatchlogs-1.3.0/lib/aws-sdk-cloudwatchlogs/client.rb:359:in `create_log_group'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/fluent-plugin-cloudwatch-logs-0.5.0/lib/fluent/plugin/out_cloudwatch_logs.rb:385:in `create_log_group'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/fluent-plugin-cloudwatch-logs-0.5.0/lib/fluent/plugin/out_cloudwatch_logs.rb:193:in `block in write'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/fluent-plugin-cloudwatch-logs-0.5.0/lib/fluent/plugin/out_cloudwatch_logs.rb:160:in `each'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/fluent-plugin-cloudwatch-logs-0.5.0/lib/fluent/plugin/out_cloudwatch_logs.rb:160:in `write'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/fluentd-1.1.3/lib/fluent/plugin/output.rb:1096:in `try_flush'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/fluentd-1.1.3/lib/fluent/plugin/output.rb:1329:in `flush_thread_run'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/fluentd-1.1.3/lib/fluent/plugin/output.rb:439:in `block (2 levels) in start'
  2018-04-27 02:18:29 +0000 [warn]: #0 /usr/lib/ruby/gems/2.4.0/gems/fluentd-1.1.3/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'


Update Lunr.js

The Lunr.js currently packaged is pre-v1.0.0, and v2.1.4 is now available (changelog).

Closed by #2.


observeSteps doesn't trigger callback

I'm trying to count steps and show them on screen
 GoogleFit.startRecording(response1 => {
    if (response1.type != "steps") return;
    GoogleFit.observeSteps(response2=> {
      console.log(response2);
      setSteps(response2);
    });
  });

But steps doesn't change and  also  here
GoogleFit.getDailyStepCountSamples(options).then(res => {
    console.log("Daily steps >>> ", res);
  });

Steps arrays are  empty
What I need to do to start counting steps?

get daily is ok but observer steps don't work!
if you want to test daily steps you can add steps in google fits app in your phone or simulator, it works.
but I can not use GoogleFit.observeSteps !!

@milad1367 @Karpengold  @StasDoskalenko see the answer in : https://github.com/StasDoskalenko/react-native-google-fit/issues/119#issuecomment-565010555
In the file StepCounter.java, line 116 the StepChangedEvent is sent when the DataType.TYPE_STEP_COUNT_CUMULATIVE is triggerd. However I haven't seen this event triggerd in logcat. If you change the type to TYPE_STEP_COUNT_DELTA, the observeSteps will work. the changed function will look like:
// StepCounter.java line:116 if(type.equals(DataType.TYPE_STEP_COUNT_DELTA)) { WritableMap map = Arguments.createMap(); map.putDouble("steps", value.asInt()); sendEvent(this.mReactContext, "StepChangedEvent", map); }

@Karpengold @nojas01 @milad1367 thanks! Fixed


It has mistake in compiled CSS

In SCSS look's like good, but in compiled CSS has some mistakes. http://joxi.ru/L21JRJyURxoZAX
line 260 /src/flipclock/css/flipclock.scss: background: linear-gradient(top, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, 1) 100%);
line 335 /src/flipclock/css/flipclock.css: background: linear, top, rgba(0, 0, 0, 0.1) 0%, black 100%;
Compilatir losing word "-gradient"

SCSS is getting rewritten. See the thread here.
https://github.com/objectivehtml/FlipClock/issues/161


Infer Component Name from  .vue filename

I can't find it in the <script setup> docs at the moment, but I followed the script setup spec pretty closely, and I could have sworn that the name field of the component options is inferred from the name of the .vue file when script setup is used in Vue3. Can that functionality be added here? I've actually used patch-package to patch the transform to enable that functionality in my own dev environment, but I'd love to get it merged into the package proper, so that I don't have to maintain a patch file as I upgrade to different versions of this plugin.
I'd be happy to do the PR myself, if that would be helpful and if this was functionality you'd be ok with adding to the core plugin functionality.

@Aaron-Pool Thank for your suggestion. But I think it would be better if this feature could be added in https://github.com/vuejs/vue-loader and https://github.com/underfin/vite-plugin-vue2/tree/master/

Also , I found that vue 3 also does not have SFC automatic name field generation.  Maybe it's better for us to raise this question on https://github.com/vuejs/vue-next first.

You're right. I went through the script setup spec, and I couldn't find it anywhere. So I guess I'm just thinking of a conversation that happened in the RFC and it never made it to the official spec.

@xiaoxiangmoe
Re-opening this request, as it is now the behavior of Vue 3 script setup: https://github.com/vuejs/core/pull/4997


Add support for LDAP login

There is no support for LDAP login like the userpassLogin() works.  It could be another entry in commands.js, I think.

Fixed by #69


Add CONTRIBUTING file

Base content on https://opensource.guide/starting-a-project/#writing-your-contributing-guidelines

Added


Q: Limit file size and resolution as options

Hello me again 😄 I hope you are well!
I have a use case in which I would like to allow certain users to have a higher limit of file size (IMGPROXY_MAX_SRC_FILE_SIZE) and others a lower limit, as well as for the resolution (IMGPROXY_MAX_SRC_RESOLUTION).
At the moment is a global configuration.
In my system, I have the file size information, and I can easily prevent the request depending on the file size.
However, I don't have the resolution since I'm not parsing the image.
What will it be the best approach for this with imgproxy?
Regards

Hey Fabrizio!
These parameters are global by design. If we allow redefining them with processing options, an attacker can use it to bypass the restrictions unless you sign the URLs. Thus, security restrictions should be defined somewhere where an attacker can't change them, and I see the only place like this – the global config.
If just need strong restrictions to be applied to one group of users and not be applied to another, I guess, the easiest solution is to have two different imgproxy installations with different restrictions.
You could also utilize imgproxy Pro's feature of getting the image info, but using a paid version is not an option for you as far as I remember.

Thanks, @DarthSim
Since we proxy the request to an internal imgproxy instance having it as a processing option is doable on our side, as well as for users that sign URLs.
Maybe we could implement these limits as processing options but turn them off by default?
The image info approach seems also reasonable but it would mean higher latency since we'd need to check the values before allowing to transform the image, not too keen on that.
Yhea, currently we would like to give feature parity to our customers that self-host imgproxy, they can, however, upgrade themself to the Pro version (which we would encourage)
Although never say never 👍 we really embrace the power imgproxy

Maybe we could implement these limits as processing options but turn them off by default?

This may work 🤔

Okay, I added this to the latest build :)
The IMGPROXY_ALLOW_SECURITY_OPTIONS config enables the following options:

max_src_resolution (msr)
max_src_file_size (msfs)
max_animation_frames (maf)
max_animation_frame_resolution (mafr)


Not possible to register instance of consumer definition, only type.

Hi, I am using Autofac for registering consumer definition, I am registering consumer definition with parameter in constructor for ConsumerDefinition(string endpoint).
When I registering "AddMassTransit", and call ConfigureEndpoints(busContext) is see the exception that I didn't have default constructor for consumer.
When I am tring to reproduce the code, I found that  when I am adding AddMassTransit it override registration for consumer definition.
For example:

Why simple _lifeTimeScope work as expected, but _localScope(with registered MassTransit) not able to inject ConsumerDefinition with registered parameter in ctor.

If your definition needs configuration, it is expected that the configuration is pulled from another object/interface in the container. MassTransit does not support adding instances of consumer definitions that are already created.

The bug is basically that, I did not need to instantiate ConsumerDeffenition, I need to register ConsumerDefinition with parameter.
like:
containerBuilder.RegisterType()
.Keyed(definitionName)
.As<IConsumerDefinition>()
.WithParameter(new ResolvedParameter(
(pi, ) => pi.ParameterType == typeof(string) && pi.Name == "endpointName",
(, ctx) =>
{
... //Code to get endpoint for consumer definition
}))
.AutoActivate()
.SingleInstance();
But in
builder.AddMassTransit(x =>
{
x.UsingRabbitMq((busContext, cfg) =>
{
cfg.ConfigureEndpoints(busContext); -- throw exception that ConsumerDefinition  ctor(string endpoint) is not registered.
}

Again, not supported by MassTransit if you're registering the definition through MassTransit. I don't recommend every registering things in a container with strings like that, versus have a Settings type in the container used by the definition. No idea if you can override that with container configuration.

Cool thanks, will try to use IConsumerRegistrationConfigurator instead, register them in Autofac.Module and than configure consumer in MassTransit registration.


add rplidar_ros to documentation index for indigo/jade/kinetic

I'd like rplidar_ros to be indexed and documented on ros.org.  Because the github addres of rplidar_ros package in the version of indigo have been change by a mistake .

You can't just copy-n-paste the Hydro content to Indigo and Jade. You need to run bloom-release for each distribution to generate the branches for the platforms supported by each distribution.

when i  bloom-release .   meetting:
Failed to open pull request: AssertionError - Duplicate package name 'rplidar_ros' exists in repository 'rplidar_ros' as well as in repository 'cob_substitute'
How to change the package git  of rplidar_ros in the  version of indigo .

There's a package released with that name already: https://github.com/ros/rosdistro/blob/master/indigo/distribution.yaml#L1428 You should coordinate with the maintainers of cob_substitution about the package naming. Probably through a ticket here: https://github.com/ipa320/cob_substitute/issues
@ipa-fxm @ipa-fmw FYI


Remove unused replacement from Visibility.maintain

While reviewing https://github.com/flutter/flutter/pull/122585 I noticed that the replacement parameter on Visibility.maintain doesn't make any sense. It is always ignored because the constructor forces maintainState to true:
https://github.com/flutter/flutter/blob/e0ea39fee5d675e677c66974b68432c484f8a77d/packages/flutter/lib/src/widgets/visibility.dart#L139-L140
Therefore, this PR removed the replacement parameter from Visibility.maintain.

LGTM, but dartdocs for Visibility.maintain() need to be updated too.

Ah, right. Updated by removing that line altogether. Since we don't support non-nullsafe mode anymore, the note about child not being null is also redundant.


[Bug] .wav files in sample pad

Hello,
Quickly to preface, I know nothing when it comes to coding or how this whole open source project works. I have though encountered an issue when moving over all my presets for the samples I had, all the .wav files that were recorded cannot be selected when trying to add them to the sample pad. I did notice that the .mp3 files did work though. Hopefully the .wav files can be used soon.
Thank you for dedicating your time to assure a product such as this one continues to work just as well or better than the original software.

Looks like this has been tracked down, the problem occurs if you have the samples tab selected in the top right can you switch off and try again please (I have a fix prepped for the next release).

Hey, apologies for not catching the emails in time. I did what was said, switching from the samples tab to the profiles tab and I was able to start adding the .wav files into my sample pad. Its a good thing you were able to get to the bottom of it.
Thank you for your work.


Can't add TMItransient due to unsatisfiable requirements with TMI

I can't add TMItransient to a project, may have started after changes made in #27 . Here is a MWE of activiating a new environment, and attempting to add TMItransient via GitHub
(@v1.10) pkg> activate .
  Activating new project at `~`

(brynn) pkg> add https://github.com/ggebbie/TMItransient.jl.git
    Updating git-repo `https://github.com/ggebbie/TMItransient.jl.git`
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package TMI [582500f6]:
 TMI [582500f6] log:
 ├─TMI [582500f6] has no known versions!
 └─restricted to versions * by TMItransient [ab8155c7] — no versions left
   └─TMItransient [ab8155c7] log:
     ├─possible versions are: 0.1.8 or uninstalled

I'm a little confused on the issue here - it seems like TMItransient wants TMI to be any version, but TMI doesn't have a version. Not sure what's up here!

This may also be related to #26 . Trying to remove pin on ODE and updating now.

I found some insight by making a minimum working example:
] generate .
add https://github.com/ggebbie/TMI.jl
add https://github.com/ggebbie/TMItransient.jl

This environment pre-compiles fine and does not reproduce the error, pointing to some other problem in the cross-dependencies.

TMItransient had a few unneeded dependencies. Branch minimal-env removes these dependencies and passes tests. Perhaps one of these "extra" packages was causing a dependency conflict. Test by adding this branch to an environment rather than the main branch.

I think this still doesn't work, unless I'm doing this wrong. I can try cloning that branch locally and adding the local branch to my project
(T1Lags) pkg> add https://github.com/ggebbie/TMItransient.jl#minimal-env
    Updating git-repo `https://github.com/ggebbie/TMItransient.jl`
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package TMI [582500f6]:
 TMI [582500f6] log:
 ├─TMI [582500f6] has no known versions!
 └─restricted to versions * by TMItransient [ab8155c7] — no versions left
   └─TMItransient [ab8155c7] log:
     ├─possible versions are: 0.1.8 or uninstalled
     └─TMItransient [ab8155c7] is fixed to version 0.1.8

Tried cloning TMItransient#minimial-env, and then adding local package, same error
(T1Lags) pkg> add /home/brynn/Code/TMItransient.jl/
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package TMI [582500f6]:
 TMI [582500f6] log:
 ├─TMI [582500f6] has no known versions!
 └─restricted to versions * by TMItransient [ab8155c7] — no versions left
   └─TMItransient [ab8155c7] log:
     ├─possible versions are: 0.1.8 or uninstalled
     └─TMItransient [ab8155c7] is fixed to version 0.1.8

The first method of adding was correct.
Do you reproduce my MWE?
Can you provide the project environment that fails?

Yes, if I start up a clean environment, and add TMI, and then add TMItransient it works.
If I start up a clean environment, and then just add TMItransient, I get this error.
So I think the error is related to adding TMItransient into a package that does not already have TMI installed.

very helpful clue - I reproduce your result in 2 above.d

Here's my understanding of the issue. Because TMI is not registered in the Julia general registry, you must add it before you add TMItransient.
https://discourse.julialang.org/t/package-manager-resolve-complaining-of-unsatisfiable-requirements-due-to-no-known-versions/23778

I'm happy with that - glad to have this thread though for when I inevitably forget about this and reproduce this in the future. Thanks Jake!


Generate multi-architecture docker containers

It would be good to generate docker containers which support multiple architectures. As things seem to already be using buildx / buildkit style builds, it might be as simple as following the instructions under "With QEMU".

@carlosdp

With the current hardware availability, I think at first we could have ARM64 and PPC64le images in addition to AMD64. All with manifests so they are seamlessly pulled.
In the future we can add RISC-V too but this depends on having the upstream distro images available (for example debian already has riscv64 image but only on sid tag).

Short answer: yes, it is in the scope but we don't have human resources to implement it. As explained below, I have a good background about what needs to be done; however, implementing and testing everything would take more time than I can devote. Other people need to take care of subsets of the collections if we are to keep increasing the list of tools, collections and architectures. I'm off the limit of a single-man project, which is not my income.
Longer answer:

It would be good to generate docker containers which support multiple architectures.

This is in fact not achieved by having an image/container which supports multiple architectures. It is done by creating one different image for each target architecture; then, creating a "manifest" which behaves as an index of "a group of images which are supposed to be the same". AFAIAA nothing prevents from having "distinct" images presented to the user under the same manifest.
That is relevant because the idea of having a single dockerfile which can be built on multiple platforms is a utopy. As it happens with any "multi-platform packaging" approach, it does work most of the time, but there are some corner cases that do require specific steps/stages/commands on some platforms only. This is just a trivial example: https://github.com/dbhi/containers/blob/main/ubuntu-bionic/cosim.dockerfile#L76-L97.
The examples I've seen which use buildx/buildkit are of the "simple" type, where a single Golang/Python/JavaScript service/tool can be containerised easily. I did not yet see how are the challenging cases expected to be managed. As it happens with containers in general, attention and hypes are very focused on web (micro)services. Therefore, we need to pick announcements and features with a grain of salt when targeting EDA and on-desktop usage. I am anyway willing to learn about it, because manually keeping track of the sets of images that compose each manifest is rather painful and error prone.
Since images are independent in fact, there is no need to build all of them on the same host. Should there be users/developers/companies with PPC, S390X or RISCV hosts willing to contribute in this project/repo, we might setup those as self-hosted runners, so that we can build those images natively. Alternatively, they might fork this repo, maintain a variant for those other platforms and build/push images on their own. We can mirror them and create the manifests here regardless.

it might be as simple as following the instructions under "With QEMU".

As a disclaimer, I am the maintainer of dbhi/qus, which is unwantedly the most starred repository of all the ones I created/authored.
I wish those capabilities were provided by some third-party so I could reduce my cognitive load.
I did try communicating with docker maintainers/developers, with little success. See (https://dbhi.github.io/qus/#linuxkitbinfmt-dockerbinfmt):

Although not well documented, since version 1.13.0 (2017-01-19), QEMU is installed by default with Docker Desktop and a tool written in golang (named binfmt) is used to register interpreters in the kernel. The upstream project is linuxkit/linuxkit.
For further details about similarities/differences, see:

The project from docker (docker/binfmt) was deprecated in favour of github.com/linuxkit/linuxkit/tree/master/pkg/binfmt.
docker/binfmt#17
linuxkit/linuxkit#3401
moby/qemu

At DockerCon San Francisco 2019, a partnership with Arm was announced: Building Multi-Arch Images for Arm and x86 with Docker Desktop.

Note the feature differences explained in docker/binfmt#17:

In dbhi/qus:

Images for multiple host architectures are provided.
Additional target architectures are provided.
It is possible to optionally limit/select the list of QEMU binaries to be registered on the host.
It is possible to remove/reset all the registered interpreters.

In docker/binfmt:

The logic is embedded in a static binary written in golang.

NOTE: dbhi/qus is based on an enhanced qemu-binfmt-conf.sh and a companion register.sh script. As a result, a shell is required and images are based on busybox instead of scratch.

Docker's interest in QEMU seems to be focused on allowing Windows and Mac OS users to execute ARM containers transparently. It's coming from a partnership between the companies involved and I believe it is strongly driven by smartphones and IoT. I feel there is little to no interest in IBM's platforms or RISCV. Maybe IBM and/or the OpenPower/RISCV lobbies should step in (if they did not already).
That is very relevant because qemu-user is the little/ugly brother/sister of qemu-system and KVM. The most profitable usage of QEMU in big companies is virtual machine creation without involving foreign platforms. Probably the most obvious example is katacontainers.io, with architecture committee members from Apple, Intel, Red Hat, etc. (see https://github.com/kata-containers/community#architecture-committee). As a result, despite qemu-user (the one based on Dynamic Binary Modification) being the initial implementation of QEMU, it does not receive as much love as the KVM variant. In full honestly, it was improved a lot during these last years. When I first used it "seriously" in 2018 there were some decade old bugs on ARM targets, and that is no longer the case.
On the other hand, I also spent long time trying to have some minor enhancements (https://github.com/umarcor/qemu/commits/series-qemu-binfmt-conf) upstreamed to QEMU, with no success.
I believe the original research/tests for using Docker and QEMU came from Balena and multiarch/qemu-user-static. That repo does have a wider scope than Docker/linuxkit, as it supports many foreign platforms as targets, but it's for x64 hosts only. As said above, I wish linuxkit's/docker's binfmt, the multiarch repo, or any other project could replace dbhi/qus. As you might guess, I built some frustration around this topic during the last years. I'm waiting for the world to catch up, since that's not a fight I can take longer.

Don't take me wrong: I am an strong advocate of using Dynamic Binary Modification (DBM) (say qemu-user) as an alternative to cross-compilation. So, in my research work, I use arm32v7 containers on my x64 workstation for testing and building the go/python tools which I then deploy to Zynq devices. By the same token, I use arm64v8 containers to work with the apps that are to be tested on SBCs or ARM servers. That's why dbhi/qus and dbhi/containers exist.
DBM is so useful and an exciting area of computer science, as proven by Apple's Rosetta. That is in fact one of the interests of the Advanced Processor Technologies research group at the University of Manchester. They have a very strong background on DBM and FPGAs, which is the motivation for one of the outcomes of my PhD to be named Dynamic Binary Hardware Injection (DBHI). See the publication references in https://github.com/umarcor/umarcor/blob/main/references/apt.bib.
Incidentally:

I met @mithro at FPGA 2020, where I attended to present https://dbhi.github.io/pdf/FPGA2020_poster.pdf.
There is a reference to EFCAD at the bottom of my poster, which is part of FPGA-Research-Manchester. The group of Dirk Koch is the room next to the group of Mikel Luján (my advisor there).
DBHI does have a conceptual and functional overlap with the CFU Playground which Tim Callahan (@tcal-x) is working on.

To put it simply, we (shall I say they at Manchester) support custom opcodes on an existing CPU by hooking them in the DBM "engine". Most of the practical implementations are done with MAMBO (/ccing @GuillermoCallaghan here, who has good knowledge about ARM ISAs and interest in RISCV). They implement "accelerators" on FPGA and use MAMBO for hooking opcodes, either existing or custom. I quoted accelerators because the kind of HDL accelerators they use are mostly for architectural simulation (performance counters).
Nevertheless, during my stay at the University of Manchester in 2018, I did evaluate DynamoRIO and Pin as well. One of the outcomes of DBHI is that a MAMBO plugin or a DynamoRIO tool (different terms, same concept) would allow to use CFUs on CPUs without native support. We tested half a dozen devices (workstation, server, laptop, SBC...). My main research interest is abstracting the layer(s) between software and hardware during the development, implementation and verification of custom accelerators. I use VHDL, but at Manchester they use Verilog and BlueSpec SV as well, so there is synergy with the Verilator and Renode stuff that Antmicro is integrating into the CFU playground. I hope I can meet @tcal-x face-to-face in the not distant future and we can have some drink while sharing ideas.

Back from the detour, it does not really matter how we install/setup QEMU. We are creating Linux containers only. GitHub Actions supports containers on Ubuntu jobs only. Therefore, apt install qemu-user-static works. The interpreters are statically built, so it is irrelevant where you get them from. The difference between linuxkit/docker binfmt, multiarch/qemu-user-static, dbhi/qus, Actions, etc. is just how to load one interpreter (or many) in "permanent" mode (in-memory). The challenge is using qemu-user itself:

Performance is 5 to 10 times slower. MAMBO and DynamoRIO do have a much smaller penalisation (5-20%), because they are DBM tools which do not translate (they handle branching/jumps). QEMU user needs to translate instructions. There is litttle we can do about it except support the development of QEMU. We would need to setup some machine in the Google Cloud for this project, to avoid timeouts in GitHub Actions. We might almost guarantee that such machine would be active 100% of the time.
qemu-user is not isolating/emulating the system (unlike qemu-system). Therefore, some signals and lower level features do crash.

As a result, we can try it for curiosity and to find the limits in the technology/tools, but I don't think that's something we can rely on for providing the whole collections. As commented above, we want people with powerful and/or spare ARM, PPC, S390X or RISCV hardware to contribute.
Using copr might be an option for having ARM, PPC and maybe RISCV machines. However, I wouldn't feel comfortable "abusing" Fedora's infrastructure as much as I am with GitHub (say Microsoft) because scales are very different and we know that Google is willing to provide processing power, should it be needed (i.e. should GitHub/Microsoft complain). If we were to go the copr way, I believe there should be some better communication with Fedora as a project or, at least, with copr administrators.
Nonetheless, I will try prototyping the structure and CI plumbing for handling multiple architectures and manifests here by using QEMU. As commented in twitter, it should be relatively easy for the non-challenging cases. That will let us see the performance and complexity.

I added support for multiple architectures. The new image name format is REGISTRY/[ARCHITECTURE/][COLLECTION/]IMAGE. Both ARCHITECTURE and COLLECTION are optional.
Note that we are not publishing manifests yet. Therefore, users on non-amd64 hosts need to use the image name including the architecture explicitly.
Tools openFPGALoader, gtkwave, verilator, magic, netgen, icestorm and arachne-pnr in collection Debian Bullseye are available for the following architectures already: arm64v8, ppc64le and s390x. See execution times:

https://github.com/hdl/containers/actions/runs/1148161829
https://github.com/hdl/containers/actions/runs/1148161841
https://github.com/hdl/containers/actions/runs/1148161846
https://github.com/hdl/containers/actions/runs/1148161818
https://github.com/hdl/containers/actions/runs/1148161830
https://github.com/hdl/containers/actions/runs/1148161836
https://github.com/hdl/containers/actions/runs/1148186159

It would be helpful if users of those architectures could test these new images and confirm that they work.
https://hub.docker.com/r/riscv64/debian exists, but buster-slim and bullseye-slim are not available; only sid-slim is available for now. Hence, users of riscv64 need to use QEMU at runtime, or wait until bullseye is supported.
With regard to CentOS, neither https://hub.docker.com/r/s390x/centos nor https://hub.docker.com/r/riscv64/centos do exist. I tried enabling arm64v8 and ppc64le, but it fails: https://github.com/hdl/containers/actions/runs/1148193717

@carlosedp do you know whether/when might riscv64/centos and riscv64/debian:bullseye-slim be supported? Similarly, do you expect riscv32 to be available in https://github.com/docker-library/official-images#architectures-other-than-amd64 in the "near" future?


Map polyfill fails (in certain use cases?) on IE11 using default-3.4 or newer

Using IE11 (11.1884.14393.0) and polyfill service 3.24, the polyfill string default-3.6,Map will fail (telling me Object doesn't support property or method 'entries', polyfill.js 434:3). However, default-3.3,Map works just fine; as does default-3.6 without added bonuses, but this seems fully dependent on the use case. Adding Map to any default-version from 3.4 and above will fail. The failing block in question looks like this:
	Map.prototype['forEach'] = function(callbackFn, thisArg) {
		thisArg = thisArg || global;
		var iterator = this.entries(); // <- Right here!
		var result = iterator.next();
		while (result.done === false) {
			callbackFn.call(thisArg, result.value[1], result.value[0], this);
			result = iterator.next();
		}
	};

Polyfill header:
/* Polyfill service v3.24.0
 * For detailed credits and licence information see https://github.com/financial-times/polyfill-service.
 *
 * UA detected: ie/11.0.0
 * Features requested: Map,default-3.6

Now, I know that Map is already included in default-3.6, but in certain cases that fails as well, without clear indication of what's gone wrong. default-3.6,fetch fails for one of our sites inside the Map-polyfill on IE11 with the message Unable to get property 'get' of undefined or null reference (polyfill.js 1303,3), here:
	var isMap;
	if (hasMap) {
		var mapSize = Object.getOwnPropertyDescriptor(Map.prototype, 'size').get; // Here!
		isMap = function (m) {
			try {
				mapSize.call(m);
				return true;
			} catch (e) {
				return false;
			}
		};
	}

Polyfill header for that one:
/* Polyfill service v3.24.0
 * For detailed credits and licence information see https://github.com/financial-times/polyfill-service.
 *
 * UA detected: ie/11.0.0
 * Features requested: default-3.6,fetch

That's about all the detail I can give you presently. Any idea of how to fix this?

It seems the offending code from the first example comes from here:
https://github.com/Financial-Times/polyfill-service/blame/master/polyfills/Map/polyfill.js#L244
And the second from here (not at all what I expected):
https://github.com/Financial-Times/polyfill-service/blame/master/polyfills/Array/from/polyfill.js#L172

@DonGissel Can you post a small reproducible example on jsbin.com for this please?

Issue 1, for starters:
http://output.jsbin.com/noresanisi/4/
... still trying to reproduce issue 2.

Same here, if I'm importing the default set:

I get this in IE11:
Unable to get property 'get' of undefined or null reference
at this line:
var mapSize = Object.getOwnPropertyDescriptor(Map.prototype, 'size').get;

Polyfill header for that one:
/* Polyfill service v3.23.0
 * For detailed credits and licence information see https://github.com/financial-times/polyfill-service.
 *
 * UA detected: ie/11.0.0
 * Features requested: default
 *

Same problem here @lechneal ,
error with IE11 + google maps.

We are seeing the same exception on IE10 Windows 7 using polyfill v2. i.e. The Object.getOwnPropertyDescriptor(Map.prototype, 'size').get fails with Unable to get property 'get' of undefined or null reference.
If you type the above expression into the console, you can provoke the error.

Update: I'm getting this on the standard default.
Also this seems to be happening because Object.getOwnPropertyDescriptor(Map.prototype, 'size').get before Map is polyfilled, thus Map.prototype.size has not yet been added.

When using https://cdn.polyfill.io/v2/polyfill.js?features=default-3.6 I get the following error in Internet Explorer 11 for Windows 10:
Object doesn't support property or method 'entries'

This happens when something else in the stack attempts to run forEach on a new Set.

I was also seeing cannot get property "get" of undefined or null reference in IE11 in a Next.js app that uses Apollo Client (only on those pages where I invoke client-side GraphQL queries).
Manually adding Map to the list of polyfills helped!
  <script
-   src="https://cdn.polyfill.io/v2/polyfill.js?features=Map,fetch,Intl.~locale.ru,Intl.~locale.en"
+   src="https://cdn.polyfill.io/v2/polyfill.js?features=fetch,Intl.~locale.ru,Intl.~locale.en"
    async={false}
  />

This fills a bit odd because Map is marked as included by default in the list of features. Anyway, I'm glad to see my problem resolved and I'd like to thank the authors of polyfill.io for such an awesome library!

@kachkaev Thank you for the kind words! You are correct, Map is in the default set however, the script src you posted is using a custom set of features and has not included the default set. If you want a custom set alongside the default set, you can achieve that like so:
  <script
-   src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Map,fetch,Intl.~locale.ru,Intl.~locale.en"
+   src="https://cdn.polyfill.io/v2/polyfill.min.js?features=default,fetch,Intl.~locale.ru,Intl.~locale.en"
    async={false}
  />

Still happening on IE11. Using: https://cdn.polyfill.io/v2/polyfill.min.js?features=default,EventSource,Math.cbrt,Array.prototype.findIndex


Use a more compatible scope-name for grammar

Packages like Paredit target grammars whose scopeName attributes contain lisp as an identifier. Basically, scope-names are broken down like this:
source.lisp → ["source", "lisp"]
source.common-lisp → ["source", "common-lisp"]

This PR fixes the scope so it'll be more compatible with Lisp-related tools:
source.lisp → ["source", "lisp"]
source.common.lisp → ["source", "common", "lisp"]

Most notably, this fixes the issue of not doubling ' for users with Paredit installed.

Thanks for this, I'm still very new to the making of grammars, especially since there is no documentation on how to do this for Atom atm (the best I can find is the automagic method of converting TextMate bundles).

This might help you.
Feel free to ask if you have any further queries about writing grammars, I've written several.

Damn! Okay cool I will definitely ask when I have some free time to polish up the highlighting.  I figure this is like 90% done, with the other 10% being cool features like quasi-quoting & unquoting so you can more easily figure out how deep your unquotes have to be for a particular macro!!! :stuck_out_tongue_closed_eyes: ....yeah.... all the really difficult stuff is ahead of me!  Or maybe I should make that another package? Hmmm....


Delayed scheduled task not executing after the specified delay

When scheduling a task with SynchronousScheduler#runTaskAfter(Object plugin, Runnable task, long delay), the task is executed immediately, rather than after the specified delay.
I found this while developing a warps plugin, and so when I printed out the amount of ticks since the server started using Server#getRunningTimeTicks(), both when the command was sent and when the Runnable was run, the same value was outputted, indicating that there was indeed no delay.

@sibomots

Last I tested this, it worked...I'll give it a whirl again.


fix bun tests hanging in CI.

Hey 👋
Bun tests are hanging in GitHub Actions. Durations going 3h and beyond for the bun related steps.
I have disabled bun steps until fixed @ test.yml.

I wonder if it's an IPv6 issue. Bun doesn't implement "happy eyeballs" yet.

If it's of any use, this is where it started happening. https://github.com/kysely-org/kysely/actions/runs/7764564469/job/21178156254#step:13:1

bun 1.1.2+c8d072c2a still hanging. https://github.com/kysely-org/kysely/actions/runs/8582688442/job/23521068831?pr=942


zetaclient improvements

### Tasks
- [ ] https://github.com/zeta-chain/node/issues/965
- [ ] https://github.com/zeta-chain/node/issues/1015
- [x] https://github.com/zeta-chain/node/issues/1020
- [ ] https://github.com/zeta-chain/node/issues/1021
- [ ] https://github.com/zeta-chain/node/issues/1054

Closing, adding the remaining issues in https://github.com/zeta-chain/node/issues/1611


Still the error

19:54:55 [Server] ERROR Could not pass event PlayerAnimationEvent to AdvancedEnchantments v4.15.20
03.08 19:54:55 [Server] INFO java.lang.NoClassDefFoundError: org/apache/commons/lang3/Validate
03.08 19:54:55 [Server] INFO at com.comphenix.protocol.injector.netty.ChannelInjector.invokeSendPacket(ChannelInjector.java:651) ~[?:?]
03.08 19:54:55 [Server] INFO at com.comphenix.protocol.injector.netty.ChannelInjector.sendServerPacket(ChannelInjector.java:640) ~[?:?]
03.08 19:54:55 [Server] INFO at com.comphenix.protocol.injector.netty.ProtocolInjector$4.sendServerPacket(ProtocolInjector.java:403) ~[?:?]
03.08 19:54:55 [Server] INFO at com.comphenix.protocol.injector.PacketFilterManager.sendServerPacket(PacketFilterManager.java:786) ~[?:?]
03.08 19:54:55 [Server] INFO at com.comphenix.protocol.injector.PacketFilterManager.sendServerPacket(PacketFilterManager.java:740) ~[?:?]
03.08 19:54:55 [Server] INFO at me.egg82.ae.hooks.ProtocolLibHook.sendMulti(ProtocolLibHook.java:190) ~[?:?]
03.08 19:54:55 [Server] INFO at me.egg82.ae.hooks.ProtocolLibHook.sendFake(ProtocolLibHook.java:126) ~[?:?]
03.08 19:54:55 [Server] INFO at me.egg82.ae.events.enchants.MirageEvents.raise(MirageEvents.java:121) ~[?:?]
03.08 19:54:55 [Server] INFO at me.egg82.ae.events.enchants.MirageEvents.swing(MirageEvents.java:77) ~[?:?]
03.08 19:54:55 [Server] INFO at ninja.egg82.events.SingleEventSubscriber.call(SingleEventSubscriber.java:100) ~[?:?]
03.08 19:54:55 [Server] INFO at ninja.egg82.events.BukkitEventSubscriber.call(BukkitEventSubscriber.java:50) ~[?:?]
03.08 19:54:55 [Server] INFO at ninja.egg82.events.BukkitEventSubscriber.lambda$new$0(BukkitEventSubscriber.java:31) ~[?:?]
03.08 19:54:55 [Server] INFO at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:545) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1843) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.PacketPlayInArmAnimation.a(SourceFile:32) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.PacketPlayInArmAnimation.a(SourceFile:9) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.aX(MinecraftServer.java:1012) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:1005) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:989) ~[patched_1.14.4.jar:git-Paper-156]
03.08 19:54:55 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:922) ~[patched_1.14.4.jar:git-Paper-156]

Definitely an issue with ProtocolLib, here, and not AE. AE just hooks ProtocolLib, which is where the issue actually is. The only reason you're seeing AE in the error at all is because it's simply the plugin that called that particular method. Any plugin could have been the cause; it just happened to be AE in this instance.

Verify that you are running the correct version of ProtocolLib for your server version. For 1.14.4, it should be downloaded from the official Jenkins here
Ensure you aren't using a plugin manager such as PlugMan, which has a reputation for exactly this issue
Make sure you aren't running /reload on the server, as that will definitely cause issues with many plugins, not just ProtocolLib (AE, coincidentally, will handle this fine. The server will not.)

Here's another post with your same issue if all of the above somehow don't solve it.


Use the middleware without initialising the class?

Is there a way to do this? I'm using PHP DI and need to inject one of my classes into the middleware's construct.
I know it's not specifically related to this project, but thought you may know something?

Setup the middleware class:
$container
    ->add(Middleware::class)
    ->withArgument(SomeService::class)
;

Pass middleware to router:
$router->get(..)->middleware($container->get(Middleware::class))

Don't know how this would transfer over to PHP DI, but it shouldn't be too difficult to figure out.

Yes, as @jamesdb says it's just a case of pulling the class from the container you are using.


Docs updates and visual improvements

This PR groups a number of minor changes to the Docs and Tutorial

Fixes inline styles on markdown tables caused by using alignment in markdown
Fixes colors to conform to WCAG 2.0 AA standard for contrast
Removes styles that are no longer used, and improves commonality across Docs and Tutorial, improves consistency of formatting across classes and between light and dark modes
Upgrades styling of Documentation so that each function looks visually more like a "card"
Adds support for the *, _, @ tokens in highlighting.

Light mode example

Dark mode example

Closes #5110


Why I zoom the map, my all markers zoom  at the same time。

When I zoom the map, my markers is scaled,
map zoom in and markers zoom in ,map zoom out and markers zoom out.
Help me please. I didn‘’t find the solution to resolve it

sounds perfectly normal, it's part of the animation that happens when pinch zooming

Thank you for your answer, But I think it's not normal.
As shown in the figure below.

When I zoom in the map,My marker also be amplified. I hope the marker will not change when I zoom.
I found that when using other map to zoom marker will not change,So I want to solve it. Thank you!

looks like you're using a custom marker and have implemented your own onDraw method. You may want to look at the draw method implementations on the existing implementations (ItemizedItemOverlay and Marker) to see how it's done with those classes.

not much i can do for you on this besides referring to the build in examples. Your overlay does look nice though!

I have the same question, when I zoom the map ,the overlay will zoom also... :< @ding209 请问您解决了没？

I'm assuming this is for some sort of custom overlay, because none of the provided overlays do this. No one provided code to reproduce the problem so I can't do much to help with this.

   `Marker mMarker = new Marker(mapView);
    mMarker.setPosition(geoPoint);
    mMarker.setIcon(drawable);
    mMarker.setOnMarkerClickListener(listener);
    mMarker.setAnchor(0.5f, 0.5f);
    OverlayManager controller = mapView.getOverlayManager();
    controller.add(mMarker);

`
:)

@niray 不好意思， 这个我依旧没解决，所以我换了显示方式，不再创建Marker，而是使用ItemizedOverlayWithFocus这个OverlayItem集合来显示，OverlayItem就相当于Marker，但是只能在创建OverlayItem的时候设置一个坐标值，然后就不能更改，想要更改的话需要重新创建OverlayItem并添加到ItemizedOverlayWithFocus中。。

@ding209  感谢你的方案，我使用了，也成功了，但是现在我遇到另外一个问题，就是我想把        Polyline 也通过ItemizedOverlayWithFocus<OverlayItem>画在地图上，但是好像没有找到ItemizedOverlayWithFocus<Polyline>
How can I draw a Polyline by ItemizedOverlayWithFocus, I don't find a way to solve it.

    Polyline pathOverlay = Polyline()
    pathOverlay.color = Color.parseColor("#99ffff00")
    pathOverlay.width = 5.0f
    pathOverlay.points = points
    mMapView.overlays.add(0, pathOverlay)

I use this way to add Polyline on the map , but when I zoom out and zoom in the map , the polyline will also zoom out or zoom in during the zoom animation..

@niray  这个没办法。我也没有解决。很多方法都试过了

@ding209  感谢，不过我发现在《行者》这个APP里使用的OSMDROID 中 ，他就实现了可以保持原大小的Polyline，不知道他是如何实现的，我也尝试了各种各样的方法，最终放弃了……

@niray  这个APP我也看了，确实实现的很棒，反编译后也没发现其他什么设置，当时自己也尝试了很多，反正还是没解决。。

@ding209 哈，没想到你跟我做了同样的事，我看了他的MapUtil里的代码，发现他可能自己封装了一个Polyline,里面竟然有一个Z坐标系的属性值，但是这个OSMDROID里没有这个Z属性，可能是他自己写的，但是我无法找到这个关键的代码。。
    private static g m14275a(Context context, List<LatLng> list, int i, int i2) {         g gVar = new g(context);         gVar.a((float) Density.m13628a(context, ((float) i) * 0.35f));         gVar.a(i2);         gVar.a(OsmMapUtil.m14276a((List) list));         return gVar;     } 这是老板的代码
   private static Polyline buildLine(Context context, List<IGeoPoint> points, int width, int color, int zindex) {         if (context == null || points == null) {             return null;         }         Polyline polyline = new Polyline(context);         polyline.setWidth((float) Density.dp2px(context, ((float) width) * 0.35f));         polyline.setColor(color);         polyline.setPoints(convertPoint(points));         polyline.setzIndex(zindex);         return polyline;     }
这个是最新的代码……
但是他的Polyline我找不到import

private static Polyline buildLine(Context context, List points, int width, int color, int zindex) {
if (context == null || points == null) {
return null;
}
Polyline polyline = new Polyline(context);
polyline.setWidth((float) Density.dp2px(context, ((float) width) * 0.35f));
polyline.setColor(color);
polyline.setPoints(convertPoint(points));
polyline.setzIndex(zindex);
return polyline;
}

private static g m14275a(Context context, List list, int i, int i2) { g gVar = new g(context); gVar.a((float) Density.m13628a(context, ((float) i) * 0.35f)); gVar.a(i2); gVar.a(OsmMapUtil.m14276a((List) list)); return gVar; }

I hava the same problem but I didn't use these methods above. I'm using the mMapView.addView() method every time I want add a marker. When I'm zooming, all markers are zooming too. Is there another way to do it ? Please note that my marker is a View and I change a timer every second on each marker.

When I was choosing the best method to use 2 years ago, I've asked on StackOverflow and KurtzMarc told me to use this. SO post. What do you advise me to use ? I want to add my own layout and not something like "OverlayItem"

Use the Marker, not the OverlayItem.
Tutorial here  on how to customize the bubble.

Thank you but I don't want to add a bubble when I click on a point. I want the bubble directly on the map. This bubble is a layout not a Drawable. What is the best practice in this case ?

I would recommend to create a Marker, with for instance a 1x1px transparent icon, and set a Marker infowindow customized to your need.
This Marker infowindow will be an actual Android View, not a Drawable.
But of course, you can also follow @kurtzmarc solution. In fact, Marker infowindow is based on it.

Thank you @MKergall but I've the same problem now with InfoWindow. When I unzoom, the info window is detaching from the marker. But the marker is stick to the map when I zoom and unzoom.

osmdroid graphical effect during zoom operation is not perfect, as it's not based on repeated mapview redraws, but on a technical hint: Android zooming effect applied on the latest draw of the mapview.
So there is nothing we can do at overlay level.
@spyhunter99 now we have fast CPU on devices, maybe this zoom mechanism could be revisited.

I didn't understand the difference between the marker and InfoWindow. The marker is a picture draw on the map and the infoWindow is just a view above the map ? How to modify the zoom mechanism ? It's part of the OSMdroid API ? Maybe I can help to resolve this problem ? @spyhunter99 @MKergall

Marker is a single point on the map with an icon. The info window is shown when the icon is tapped.
The zoom mechanism is an android animation that scales the currently viewable images (tiles and whatnot) while the zoom is in progress (fingers on screen) or during an api call to setZoom, zoomIn, zoomOut or zoomToBounds. The animation is contained within the MapView class. You should be able to extend map view and override the animation. Once the animation is complete, the closest zoom level to whatever the final image scale was is selected, then the map is redrawn with the new map tile set, which also causes all children overlays to redraw.
@MKergall not sure what we would replace it with.

My idea is to completely remove the android zoom animation, and trigger mapview ondraw as much as needed:

when zooming by fingers, at each ACTION_MOVE event.
when zooming by API, ... regularly (there is certainly a nice Android way to do that)
So the drawing should be perfect all the time.

I imagine this is more or less the way it's done inside Google Maps, Waze, or MapBox android sdk.

I've override onTouchEvent in my MapView extend. How can we fire onDraw() with all the views ? With the invalidate() method ? @MKergall You mean that everytime the ACTION_MOVE event is fire, we will re-draw everything ?
How to "disable" the zoom animation of Android? I think this is the problem. Because when I move the map, my views are correctly positioned, but the problem is only when I zoom or unzoom?

Can you tell me how you did it? I just need this zoom with map zoom Icon


[opentitantool] Work around lack of bidirectional SPI

Strictly speaking, the TPM SPI protocol requires the host to receive while it sends the four-byte request, as the TPM device could send the "ready byte" at the same time as the final byte of the request.
However, the HyperDebug Quad-SPI port does not support simultaneous sending and receiving.
This CL adds ability for Spi trait implementations to advertise whether they support bidirectional transfers, and add workaround code in the TPM logic, which assumes that the TPM device will send the "ready byte" immediately following the fourth and final request byte.

Since we have another workaround (using SPI1 instead of QSPI) that allows the Ti50 development to proceed, it would be good to let that finish, before we decide what kind of long-term workaround we want.

Even as we have decided to use SPI1 for TPM communication at least initially.  My changing of HyperDebug firmware to advertise that the QSPI port does not support bidirectional communication causes the existing hyperdebug backend to bail out during initialization, as its code demands that the uServo/HyperDebug device it connects to support bidirectional.
Merging this PR will allow using QSPI, and will also let the hyperdebug backend driver catch attempted uses of bidirectional SPI on the QSPI instance, before even asking HyperDebug for it.


Textured sonaphem pyramids

Before

After

Nice texture, which one did you use? Or is it a new one?

Nice texture, which one did you use? Or is it a new one?

2 new textures

Before
After

Hey you need to put where you got it in the liscene file so we can make sure it's copyright free

Nice texture, which one did you use? Or is it a new one?

New one. This site has plenty we can use for free https://3dtextures.me/

Hey you need to put where you got it in the liscene file so we can make sure it's copyright free

Updated.

Looks fanatic wonder how this would look on the necro pyramid

Looks fanatic wonder how this would look on the necro pyramid

Unfortunately I don't have 62 agility.
@SirFancyBacon Can you access this area?

Looks fanatic wonder how this would look on the necro pyramid

Unfortunately I don't have 62 agility. @SirFancyBacon Can you access this area?

@j-meds
I've been sick for the past week but feeling better now; I have 72 agility so i'll check it out!
Do you know where it is by chance? lol

@j-meds I've been sick for the past week but feeling better now; I have 72 agility so i'll check it out! Do you know where it is by chance? lol

The spot is where the TOA raids are at, it's called necropolis I believe. I tried it on some blue pyramid blocks, but it didn't look good because sand is embedded in the model. I think me and @aHooder or 117 talked about a option to apply the texture based on a color hue, I think if that option were to be added it could make a lot of stuff look great. For example it would apply a brick texture only on color ranges that have a blue hue. The rest would prob be untextured.

@j-meds I've been sick for the past week but feeling better now; I have 72 agility so i'll check it out! Do you know where it is by chance? lol

The spot is where the TOA raids are at, it's called necropolis I believe. I tried it on some blue pyramid blocks, but it didn't look good because sand is embedded in the model. I think me and @aHooder or 117 talked about a option to apply the texture based on a color hue, I think if that option were to be added it could make a lot of stuff look great. For example it would apply a brick texture only on color ranges that have a blue hue. The rest would prob be untextured.

That would fix those planks i am working on as well

Textures of this resolution will have to wait I think, simply because of the file size. If you could shrink it to 256x256 this should be ready to merge :+1:

While I think this does look decent, especially from further away, I don't think it really fits that these large stone slabs are made up of smaller tiles, so I think we should vote on it.
Here's how it looks from far away:

And here's a close-up:

Agreed, they should be solid slabs:
https://www.istockphoto.com/photos/pyramid-giza-pyramids-close-up-egypt

Agreed, they should be solid slabs:
https://www.istockphoto.com/photos/pyramid-giza-pyramids-close-up-egypt

It looks better with the texture l, this pyramid i. That pic is not built like the in game pyramid. @aHooder I think it looks better zoomed in actually, please do a vote personally i think it looks better than no texture. Before, Bacon and mark thought it looked great.

Agreed, they should be solid slabs:
https://www.istockphoto.com/photos/pyramid-giza-pyramids-close-up-egypt

It looks better with the texture, this pyramid in the pic is not built like the in game pyramid. @aHooder I think it looks better zoomed in actually, please do a vote personally i think it looks better than no texture. Before, Bacon and mark thought it looked great.

I agree, it does look better than current HD for sure. Just figured I would still point it out, though I think we are leaning towards merging this.

Here is a texture i made:

Scaled out version:

I think @j-meds's texture fits better, even though it doesn't totally make sense. I'll merge this as that seemed to be the consensus on Discord, then we can keep iterating on this in later PRs.


coqPackages.InteractionTrees: init at 1.0.0

This package required a bit of refactoring, I would love for someone to double-check and comment on that.
InteractionTrees has only one release, version 1.0.0. It dates from a while back, so I wanted to package both it, and a more recent version pointing at the current master branch.
Sadly, those have pretty different requirements on paco and coq-ext-lib. In particular, while I recently made coq-ext-lib be at version 0.10.3 for recent Coq versions, they supposedly have made a breaking change as far as InteractionTrees is concerned between 0.10.2 and 0.10.3.
So InteractionTrees_20191104 wants coq-ext-lib=0.10.2, which meant I had to make that available. In order to get that flexibility, I have parameterized InteractionTrees over builders for paco and coq-ext-lib (see in coq-packages.nix). I'm not sure that this is the way to go, so feedback on this would be appreciated.

If you package too many versions of a library, the configuration space may blow up. Most configurations are thus untested and quality of the package set decreases.
It is hard to fix InteractionTrees to make it compatible with latest coq-ext-lib? According to the changelog (https://github.com/coq-community/coq-ext-lib/releases/tag/v0.10.3), there are no breaking changes in that version…

Yeah, I noticed it builds against coq-ext-lib 0.10.3, but the author of InteractionTrees warned against it, because they define some notation at level 60:
https://github.com/DeepSpec/InteractionTrees/blob/d408b9151f7f77d1ab0b8a0f2d57f210e16206ae/theories/Core/ITreeDefinition.v#L243-L249
whereas coq-ext-lib changed said notation to level 61:
https://github.com/coq-community/coq-ext-lib/blob/672e63a575c110cf5c76b42172037b0e1a111f39/theories/Structures/Monad.v#L73-L79
The following script:
From ExtLib Require Import Monad.
From ITree  Require Import Simple.
Import ITreeNotations.
Import MonadNotation.

fails with:
Error:
Notation "_ >=> _" is already defined at level 60 with arguments constr at next level, constr at level 60
while it is now required to be at level 61 with arguments constr at next level, constr at level 61.

which is why InteractionTrees has an upper bound to coq-ext-lib at 0.10.2 in its opam configuration.
I agree about removing the excess versions of all packages, but I think w.r.t. this issue we can either:

package InteractionTrees as it is in this PR,
only package InteractionTrees-1.0.0 and not the up-to-date,
until they solve their forward compatibility.

Thanks for clarifying the issue.
Do we need to package two versions of InteractionTrees or one is enough? In which case, which version?

I think we can just package 1.0.0, and I'll possibly add a more recent version when they have a less complex dependency story. I'll change this PR to reflect this.

@vbgl do you have any input on when to phase out support for older Coq versions?

When maintaining them becomes a pain…

Still important to me, I'll update the PR hopefully in the near future!

Closed by #118134.


[WIP] OpenMMToolsMCEngine

This provides an engine that wraps the tools in openmmtools.mcmc. This will allow users to perform path sampling simulations of Monte Carlo "trajectories."

[x] Basic dynamics
[x] Serialization
[x] Support for MDTraj
[x] Allow same input options as MCSampler (don't required WeightedMove)
[x] Docstrings
[ ] Example
[x] Tests

At this point, this seems to work. However, sampling single-atom Cartesian displacements, even for alanine dipeptide in vacuum, is SLOW. I think I need to improve the premise of the example before it is useful pedagogically without the context of this PR and #1040.
Performance is also not great. I haven't profiled it yet, but I wonder if we're going to and from the GPU with each MC trial. It looks to me like the OpenMMTools MCMC stuff was designed with hybrid Monte Carlo in mind, where one proposal creation would involve a significant chunk of work on the GPU.
Right now, I can't get an equilibrated trajectory because (1) trajectories are very long because single atom displacements require many frames for a transition; and (2) each frame seems to be quite slow compared to MD. (And of course (3) I need my computer for other things!)


Check if config directory exists

Hi, I just installed tuijam for the first time, and it crashed with the following traceback:
Traceback (most recent call last):
  File "/home/<username>/.local/bin/tuijam", line 4, in <module>
    __import__('pkg_resources').run_script('tuijam==0.1.0', 'tuijam')
  File "/home/<username>/anaconda3/envs/gmusic/lib/python3.6/site-packages/pkg_resources/__init__.py", line 750, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/home/<username>/anaconda3/envs/gmusic/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1534, in run_script
    exec(script_code, namespace, namespace)
  File "/home/<username>/.local/lib/python3.6/site-packages/tuijam-0.1.0-py3.6.egg/EGG-INFO/scripts/tuijam", line 875, in <module>
  File "/home/<username>/.local/lib/python3.6/site-packages/tuijam-0.1.0-py3.6.egg/EGG-INFO/scripts/tuijam", line 852, in main
  File "/home/<username>/anaconda3/envs/gmusic/lib/python3.6/logging/__init__.py", line 1806, in basicConfig
    h = FileHandler(filename, mode)
  File "/home/<username>/anaconda3/envs/gmusic/lib/python3.6/logging/__init__.py", line 1030, in __init__
    StreamHandler.__init__(self, self._open())
  File "/home/<username>/anaconda3/envs/gmusic/lib/python3.6/logging/__init__.py", line 1059, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
FileNotFoundError: [Errno 2] No such file or directory: '/home/<username>/.config/tuijam/log.txt'

I created the ~/.config/tuijam directory which fixed the problem.

Thanks for reporting this. It should be fixed now.


elm-make: TODO:occurs (This expression is leading me to infer an infinite type)

I have a case where I get this error
## ERRORS in Example.elm #######################################################

-- INFINITE TYPE --------------------------------------------------- Example.elm

This expression is leading me to infer an infinite type.

elm-make: TODO:occurs

Here is as much as I've been able to simplify the example:
-- Some stubs for things that can't be imported in try-elm
type alias Test = ()
type alias Investigator a = ()
suite : String -> List Test -> Test
suite _ _ = ()
test : String -> Test -> Test
test _ _ = ()
assertEqual : a -> a -> Test
assertEqual _ _ = ()
check : String -> (a -> b) -> (a -> b) -> Investigator a -> Test
check _ _ _ _ = ()

item what = { description = what, last = Nothing }

model = { active = item "initial" }

active m = m |> .active

foo what m =
    let next = item what
    in
        { m | active <- { next | last <- Just m.active } }
bar what m = m -- { m | active <- item what }

forAll s list a b i = suite s <| List.map (\x -> check s (a x) (b x) i) list

all = suite "Main"
    [ model
        |> foo "foo"
        |> active
        |> .last
        |> Maybe.map .description
        |> assertEqual (Just "initial")
        |> test "foo remembers last"
    , forAll "changing active"
        [foo, bar]
        (\f s -> model |> f s |> active |> .description)
        (\f s -> s)
        ()
    ]

There are many seemingly-trivial changes I can make to the code that will cause it to successfully compile.

I just synced some changes that should fix this. What message do you get with the latest versions of things?

The situation is much improved, though I don't understand if it's entirely correct.  I now get at least an informative message for the case given above, but changing the bar = ... line slightly gives results that I don't understand, and one case leads the compiler to never finish:
With bar what m = { m | active <- m.active } or bar what m = m (the original example):
## ERRORS in Error.elm #########################################################

-- INFINITE TYPE ----------------------------------------------------- Error.elm

I am inferring weird self-referential type for 'foo'

19| foo what m =
    ^^^
The bit of the type that is self-referential looks like this:

    a = { last : Maybe { a |   description : String } }

The cause is often that the usage of 'foo' is flipped around.

Maybe you are inserting a data structure into an element? Maybe you are giving
a function to an argument? Either way, something is probably backwards!

Try breaking the code related to 'foo' into smaller pieces.
Give each piece a name and try to write down its type.

Detected errors in 1 module.

With bar what m = { m | active <- item what}:  It compiles successfully.  (And I don't understand how this resolves when the former example doesn't, but maybe this is actually correct?)
With bar what m = { m | somethingElse <- m.active }: It maxes out all CPUs and never completes.

The example of bar what m = { m | somethingElse <- m.active } seems like it might be the same as #832 and #885.
The original case now has an informative error message, so I'm going to close this.

Yeah, I think it's another case of those two issues. Essentially, the occurs check is not happening aggressively enough. I tried to put it in a certain place to save some CPU cycles. cc @JoeyEremondi in case this is something that can be figured out this summer!

Yeah, I was running into some interesting issues with this before. I'll
definitely take a look at it as I'm playing with the typechecker.
On Mon, Jun 1, 2015 at 9:41 AM, Evan Czaplicki<EMAIL_ADDRESS>wrote:

Yeah, I think it's another case of those two issues. Essentially, the
occurs check is not happening aggressively enough. I tried to put it in a
certain place to save some CPU cycles. cc @JoeyEremondi
https://github.com/JoeyEremondi in case this is something that can be
figured out this summer!
—
Reply to this email directly or view it on GitHub
https://github.com/elm-lang/elm-compiler/issues/947#issuecomment-107593812
.

I'm taking my cues from The Essence of ML Type Inference which says on page 439 that:

As suggested above, it is almost the same for finite and regular tree models; only one rule, which implements the occurs check, must be removed in the latter case. In other words, the algorithm works with possibly cyclic data structures and does not rely in an essential way on the occurs check.

Which does not match our observations :) It seems that I am misinterpreting how the S-Check rule should be used. There appear to be some real performance concerns about running it too much (i.e. on every unification) but this paper specifies how you can use the occurs check less frequently and I must be misunderstanding it.


CORE-2322 Add ability to update to a tag

CORE-2322 Add ability to update to a tag
At this point, this pull request is a work in progress. I would appreciate any feedback. Thanks!

See (PR#399)[https://github.com/liquibase/liquibase/pull/399].


s2u-46 5.3.1: Added to sakai pom

This is failing @frasese, could you check the Java build please?

This is just nice @frasese ! Let's work on populate demo data tomorrow for testing.


fix docker credential mount location

Docker load credentials at default location $HOME/.docker/config.json

/test all


Do research on s3 storage and add asset schema/model

Amazon S3 could return sort of metadata we need to manage for resource allocation.

We need code to handle upload, if people are going to upload anything system need to upload them to S3 and save asset's information to asset collection.


Proposal for enhanced features

Thank you for the good work creating this integration.
Looking at this integration after installation and Vacuum card I couldn't make the following to work, might just be stupid me but if these are not implemented please do consider the following:

Cleaning area
Cleaning time
Maps/zones

Looking at the Android Wellbeing app and this issue, the data probably is available via the API.

It's always appreciating when people are using your own software 🙇
That card looks awesome! I'll try and fiddle a little bit with it as well. However, the integration currently does not report any attributes, which that card is using to display various stats. As soon as I'm confident that the current code is stable, I'll start looking at adding some attributes.
Also, I'd like to look at adding map functionality. According to the Home Assistant documentation, a vacuum is able to report SUPPORT_MAP as a feature, but I haven't been able to find any documentation on how. Help finding the proper documentation or reference implementation is much appreciated.

There is at least this having links for map fetch for Xiaomi, Rockrobo and https://github.com/PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor

https://community.purei9.com/discussion/747/tips-for-saving-a-floor-map

Hi! Great work! Can you add the option to do a spot cleaning too? Seems to be implemented in Home Assistant!

Thank you @drgreenbaum . I'll see what I can do but it'll be a while before I get there.

Thank you @GitPetri for the links. I think I've managed to figure out how maps works in Home Assistant now. Now I just need to try it out and fiddle with it.

I've created separate issues for each request.


multiple optgroups without closing tags are incorrectly formatted as html

Given a select element like:
<select>
  <optgroup label="a">
  <option>one
  <option>two
  <option>three
  <optgroup label="b">
  <option>one
  <option>two
  <option>three
</select>

The jsoup parser does not close the 'a' optgroup when it encounters the 'b' optgroup element like is done in web browsers. This results in the 'b' optgroup element being contained within the 'a' optgroup element instead of the select element.
The https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inselect stage should first pop the option node from the stack (as it is current node), then pop the optgroup element (as that then becomes the current node).

Thanks, fixed!


Error: Object {file: "not found"} in Pro repo

atom v0.176, up to date version of ci-status.
Offending line is build-status-view.coffee:117.

Are you using Travis Pro account?

Yes. Token with repo/public_repo/gist scope is in my settings.
It loads the status of my nonpro repos, so I know it's not the entire
package failing.
On Jan 27, 2015 5:50 PM, "José Magalhães"<EMAIL_ADDRESS>wrote:

Are you using Travis Pro account?
—
Reply to this email directly or view it on GitHub
https://github.com/tombell/travis-ci-status/issues/38#issuecomment-71767105
.

Atm I don't have a pro account which makes it a lot harder to debug this issues. I think I'll contact Travis to check if they can get me a Pro account for development purposes.


go: 1.14 -> 1.14.2; 1.13.8 -> 1.13.10

Things done
https://golang.org/doc/devel/release.html#go1.14.minor

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

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

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

Merge conflict and needs to target staging.


Ordering issues when updating a stack w/ rabbitmq in a container

Because docker compose has no way to enforce ordering contstraints, see:
https://github.com/moby/moby/issues/31333 and https://github.com/docker/compose/issues/10859
with RabbitMQ running in a container, if a deploy restarts the rabbitmq container AFTER the configure-pipeline container (that ensures rabbitmq queue config is up-to-date, and sets the ephemeral semaphore), rabbitmq-based producers/workers will wait forever in qconnect.
Various thoughts (in no particular order):

Not an issue for production if we run rabbitmq outside docker; for dev/staging could have deploy always stop everything (just delete the stack) before (re)deploy
Kubernetes (which, by all accounts is more complex than stacks) has ordering constraints?
For rabbitmq in containers, could have indexer.pipeline write out queue configuration to be provided to rabbitmq container?

The manual work-around is to use docker enter to  run /app/bin/run-configure-pipeline.sh configure in a container that's looping on startup (ie; parser or importer)

I think this issue was resolved by https://github.com/mediacloud/story-indexer/pull/125


app.pyHow to switch models

You may change the config in configs/opensora-v1-2/inference/sample.py.

您可以在 中更改配置configs/opensora-v1-2/inference/sample.py。

What should I change if I want to use app.py to use opensora1.1 instead of opensora1.2?


toggle comment line, switch current line state

When using the toggle line comment command I would like to be able to switch the current line status instead of simply commenting the line.
Take this example:
line 1
line 2

Ctrl + /
// line 1
// line 2

everything looks good but:
line 1
// line 2

Ctrl + /
// line 1
// // line 2

I would like it to behave as follows:
line 1
// line 2

Ctrl + /
// line 1
line 2

This is very useful in scripting languages to quickly test different versions of the code.

I agree with you, and I often feel confused about this behavior

I have made an extension to toggle line comments as you want, see Toggle Comments.
and more at https://stackoverflow.com/a/65334947/836330


Deleting ownerless project

Since there are no other 'contact us'-like avenue, I will post my question here.
A while ago I created a project pointing to a URL on my machine behind a firewall.  The project is now ownerless, yet I know it's mine.  I would like to delete but since I'm not assigned as an owner, I can't delete it.   The dead project is 'gemini_python', at https://readthedocs.org/projects/gemini-python/
I just want to clean up the mess.

This is a dupe of #1408 -- I've gone ahead and deleted the specific project now.


Add manual attendence

For issue #485

@kmcnellis and @SaswatB what is the status of this? Looks like the last update was a week ago

Looks good to me. @agundy you were reviewing the changes?


[ENG-835] add subject-field-manager

Note: this PR depends on #771

Ticket: ENG-835
Feature flag: n/a

Purpose
Add a manager component for subjects editable field.
Summary of Changes
Added

Components

editable-field/subject-field-manager

Side Effects
Should be none.
QA Notes
n/a

Pull Request Test Coverage Report for Build 3370

11 of 23 (47.83%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 75.523%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/osf-components/addon/components/editable-field/subject-field-manager/component.ts
11
23
47.83%

Totals

Change from base Build 3369:
-0.03%

Covered Lines:
7585

Relevant Lines:
8812

💛  - Coveralls


Show a small portion of the next slide (like Airbnb)

Hi, anyone found a way to show a small section of the next hidden slide, like how the Airbnb guys do it on smaller resolution?

Easy enough :)
.slick-list {
 margin-left: -20px;
}

Hi
same question, but when vertical is true?
margin-top and margin-bottom just shift up and down and overlay arrows

The answer you provided is not good. You can set slideToShow: 4.1

The answer you provided is not good. You can set slideToShow: 4.1

you can set slidesToShow setting to a decimal value as well

you need to add infinite:false to slidesToShow otherwise part of previous slide also will be shown


Explicitly specify character encoding in html files

Running the examples in Firefox produces the following console error:

The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol.

The fix is to either send the encoding information from the server or to include it in the html files. I think adding it to the html files is simpler.

Thanks!


MSDynamics: Base Mapping Component

Summary by CodeRabbit

New Features

Implemented a new mapping interface for business integrations, enhancing user interaction and data handling.

Enhancements

Added conditional loading indicators to improve user experience during data processing.
Introduced the ability to automatically map employee fields, streamlining the setup process.

Refactor

Refactored component initialization to include new services and dependencies for extended functionality.

@coderabbitai review

@coderabbitai review


Revamp framework

The big thing here is that newer syntax will make the code more understandable to readers.
self.assert_element(ELEMENT) vs self.find_element(ELEMENT)
self.assert_text(TEXT, ELEMENT) vs self.find_text(TEXT, ELEMENT)
self.assert_link_text(LINK_TEXT) vs self.find_link_text(LINK_TEXT)
It wasn't clear with older methods what would happen if the element wasn't found.
In some cases, we just wanted an assert. The older methods will still return the element. Each version will fail if the element isn't found.
Older method names kept for backwards compatibility.

Hi mdmintz, request you to add up "edge" browser as well into the browser list please : )

I just added Edge support in Version 1.1.51
Be sure to download the edge driver to use it: https://www.microsoft.com/en-us/download/details.aspx?id=48212
And then use --browser=edge on the command line to run tests on it.

awesome and THANK YOU SO MUCH!! for the very quick turn around.


Color support?

Hey man, to add colors you should look at using ANSI escape codes. you can look at how I did some stuff on my repo term2d. Its in c++ but the idea is the same :)

Thanks!


set cpu/memory resource limits for blobfuse csi driver

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:
/kind api-change
/kind bug

/kind cleanup

/kind design
/kind documentation
/kind test
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it:
We need to set resource requests/limits for blobfuse csi driver pods.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Release note:
setting cpu/memory resource limits for blobfuse csi driver

/ok-to-test


Submenu is rendered in wrong place

Describe the bug
If you use html in an item template with submenu and click on the menu item text then the submenu is rendered in the wrong place.
Example:
<ng-template contextMenuItem [subMenu]="subMenu">

Item

</ng-template>

Stackblitz Example
https://stackblitz.com/edit/angular-ivy-zcbqgj

Hi @Timmeeeey,
Thanks for the details. I think this might be because the menu has not enough space on the right to show itself, so it auto positions where it can and where it's best.
If I give it enough horizontal space on its right, I get this on your stackblitz :
On Firefox:

On Chrome:

Could you check again and confirm please ?

Yes there is enough space. Did you click on the text "Item 2"?


[1.3.x] manual cherrypick for 1565 and 1596

Description
Automatic cherrypick into 1.3.x branch was failed with a merge conflict. This will replace the automatic cherrypick for

https://github.com/janus-idp/backstage-showcase/pull/1565
https://github.com/janus-idp/backstage-showcase/pull/1596

Which issue(s) does this PR fix

Fixes #?

PR acceptance criteria
Please make sure that the following steps are complete:

[ ] GitHub Actions are completed and successful
[ ] Unit Tests are updated and passing
[ ] E2E Tests are updated and passing
[ ] Documentation is updated if necessary (requirement for new features)
[ ] Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer

/retest

/test e2e-tests

/test e2e-tests

/test e2e-tests

/test e2e-tests

/retest

/retest

/test e2e-tests

/test e2e-tests

/test e2e-tests

/test e2e-tests


Web App AutoViz creates New Names based on time & hostname

wandb --version && python --version && uname

Weights and Biases version: 0.8.14
Python version: 3.7.5
Operating System: Linux

The auto viz tool on the web app is making a new chart each time with date & hostname, & isn't plotting on the same section.
Also, if multiple sections are open, I'm unable to scroll down on the webpage.

Hey @tshrjn can you add a link to the page you’re seeing this on?

Hi this issue is on: https://app.wandb.ai/al_nlu/al_data_acquistion

Hey @tshrjn, how are you logging your metrics?  Those metrics names are defined by the keys in your calls to wandb.log.  Are you calling wandb.log manually or using a callback?

Using sync_tensorboard at init and logging via torch.utils.tensorboard.
It was because of import order, import wandb before torch resolved it.

Good to know, I think it was namespacing your runs by the logdir which had a date in it.  When you change the order are you still seeing all the metrics you're logging to tboard?

Hey @tshrjn
In the past year we've majorly reworked the CLI and UI for Weights & Biases. We're closing issues older than 6 months. Please comment to reopen.


crashed when running Multiple instances

I'd like to run 2 service instances on the same machine.
Crashed when I tried to run the second one, here is the error of nacos-sdk-cpp.log:
Exception happens when executing:
Thread Name:configUDPListener Thread Id:8583
Raison:Unable to bind

Hi @doingsimple , that's because the udp listening port for the 2 instances are the same, you can specify a different port for the second listener with the following configuration:
props[PropertyKeyConst::UDP_RECEIVER_PORT] = "30621";//udp listening port, default is 30620, you need to specify a different one
NacosServiceFactory *factory = new NacosServiceFactory(props);

the problem should be solved

Hi @doingsimple , that's because the udp listening port for the 2 instances are the same, you can specify a different port for the second listener with the following configuration:
props[PropertyKeyConst::UDP_RECEIVER_PORT] = "30621";//udp listening port, default is 30620, you need to specify a different one
NacosServiceFactory *factory = new NacosServiceFactory(props);

the problem should be solved

Thanks. It works.

Thanks. It works.


KafkaAdminClient should remove inflight call correctly after response is received

I will add the test for this bug later.

It's already fixed here https://github.com/apache/kafka/pull/3584

@ijuma Thanks for the quick notice.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/6634/
Test PASSed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/6619/
Test PASSed (JDK 8 and Scala 2.12).


fix reinterpret_cast sample, minor formatting fixes

this sample used a variable, 'obj2', that was not defined, fixing that
other minor formatting fixes

@ChrisGuzak,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


ipywidgets

Hi @minrk
After some hacking, I get everything almost working in my user space.
But I had to install a few jupyterlab extensions, including

ipywidgets (@jupyter-widgets/jupyterlab-manager v1.0.3)
my own sage-combinat-widgets, in a new version
You can find them in (is it mine or is it shared?)
/opt/conda/envs/notebook/share/jupyter/lab/extensions/
Yet, this installation still misses the CSS, I have to figure out where/how to bring it into operation.

Hi @minrk,
I just discussed with @zerline.
To make the js from ipywidgets available in jupyterlab, we can add it to the conda installation (in the environment.yml), and add the labextension call in the Dockerfile.
For sage-combinat-widgets, this seems more tricky. Is there a way to ask jupyter labextension to install an extension installed in a different python environment (that from SageMath)? Or should we just install sage-combinat-widgets in the conda environment as well (even if the Python side makes no real sense there)?
Cheers,

I updated the default image to put sage-combinat-widgets in the frontend environment, let me know if it works

At the moment: I get a white screen .. :-(
I'll try to do some more tests on binder (if binder responds ..) or locally, and tell you what I can find.

I had to disable the sage-combinat-widgets lab extension because it prevents jupyterlab from working at all. Maybe it needs an update for jupyterlab 1.0?

So you see this white screen too? Yes, disable, I've been searching this bug for 3 days now, I have changed a lot of things, simplified the code, got advice, but nothing helps :-(
Nicolas says he will demo on his laptop (and on Jupyter NB) anyway....
About the version of Jupyterlab: I have 1.1.4
In effect, it is my extension that breaks everything. If only I knew why!

It's 1.1.4 on the vre now, and the same error.
In the console, btw the error is:
[Error] TypeError: undefined is not an object (evaluating 'mod.default')
	registerPluginModule (vendors~main.b608af72efa9736ada9b.js:342304)
	(anonymous function) (main.74c9b07a21922f28eeea.js:1940)
	forEach
	main (main.74c9b07a21922f28eeea.js:1940)

You can test this on the VRE with:
cp your-ext.tgz $CONDA_PREFIX/share/jupyter/lab/extensions/
jupyter lab build

and re-load jupyerlab
If your server becomes inaccessible, changes to $CONDA_PREFIX do not persist across server restarts, so you can restart your server by visiting https://review-vre.opendreamkit.org/hub/home . But you can also access the terminal interface by visiting the old interface at user/you/terminals/1, e.g. https://review-vre.openreamkit.org/user/zerline/terminals/1 . and removing your extension and running jupyer lab build again.

Thanks @minrk
I'll try again to fix this on my computer first (maybe only tonight, because I'm now working for the Jupyter notebook demo)
See you very soon


Duplication

it is duplicating file with .mpeg extension and chosen file also get a .mpeg extension

Can you give a bit of more explanation? Or logs?


Stateless components with flow props broken in v6.1.0

This commit appears to be what introduced the problem: https://github.com/yannickcr/eslint-plugin-react/commit/763382f8d4ec5961c765bbb71cd2698016da5b53. Perhaps an alternative approach to solving that problem could be using how the types are referenced in the code - as the first argument to a stateless component, or passed in as a type parameter to React.Component for stateful ones, rather than based on a naming convention
In v6.0.0, this code was fine:
type MyComponentProps = {
  a: number,
  b: string,
};

function MyComponent({ a, b }: MyComponentProps) {
  return <div />;
}

In v6.1.0, that gives 'a' is missing in props validation and 'b' is missing in props validation. If I change the code to
type Props = {
  a: number,
  b: string,
};

function MyComponent({ a, b }: Props) {
  return <div />;
}

everything works fine.
Thanks for your great work on this project! :)

Working on it.


For a 0.19 release

#669

Codecov Report

Merging #701 (0771672) into master (4fe37eb) will decrease coverage by 0.27%.
The diff coverage is 95.04%.

:exclamation: Current head 0771672 differs from pull request most recent head 7311060. Consider uploading reports for the commit 7311060 to get more accurate results

@@            Coverage Diff             @@
##           master     #701      +/-   ##
==========================================
- Coverage   85.32%   85.04%   -0.28%
==========================================
  Files          39       36       -3
  Lines        3420     3337      -83
==========================================
- Hits         2918     2838      -80
+ Misses        502      499       -3

Impacted Files
Coverage Δ

src/MLJBase.jl
60.00% <0.00%> (-40.00%)
:arrow_down:

src/composition/abstract_types.jl
40.00% <ø> (-17.15%)
:arrow_down:

src/composition/learning_networks/nodes.jl
69.17% <0.00%> (+0.21%)
:arrow_up:

src/init.jl
100.00% <ø> (ø)

src/machines.jl
84.02% <0.00%> (+0.60%)
:arrow_up:

src/measures/measures.jl
70.87% <71.42%> (-2.82%)
:arrow_down:

src/interface/data_utils.jl
93.33% <76.92%> (+1.53%)
:arrow_up:

src/composition/learning_networks/machines.jl
90.36% <91.52%> (+1.72%)
:arrow_up:

src/utilities.jl
84.10% <93.10%> (+2.43%)
:arrow_up:

src/resampling.jl
88.26% <94.11%> (-0.28%)
:arrow_down:

... and 32 more

Continue to review full report at Codecov.

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


Volume OrbStack UI doesn't report correct size

Describe the bug
OrbStack UI indicates that a Docker Volume is using up 0 kb, whereas in reality the container is reporting 257M used.
To Reproduce

Create a Volume in the OrbStack UI named 'volume'
Start a container with -v volume:/opt/volume in the Terminal
Inside the container, put data into /opt/volume
OrbStack will report the wrong volume size. Finder NFS will show the data and an du inside the container will report the right size

Expected behavior
The UI should match the actual size in-use.
Diagnostic report (REQUIRED)
OrbStack info:
Version: 1.4.1
Commit: 402f6cfcd5a2b2debef3e36929540c3c6f79ece3 (v1.4.1)
System info:
macOS: 14.3 (23D56)
CPU: arm64, 10 cores
CPU model: Apple M1 Pro
Model: MacBookPro18,1
Memory: 16 GiB
Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2024-02-06T00-43-00.458049Z.zip

Screenshots and additional context (optional)

Intended behavior. Volume sizes are rarely refreshed because it can be very CPU and I/O intensive. Creating or deleting a volume will cause it to refresh.

This is currently intended behavior to save CPU but I agree that it should be fixed — sorry for not reading carefully earlier.
For now, creating or deleting a volume will cause the size to be refreshed.


fixes bug 1132090 - ability to see events belonging to a video template

Coverage decreased (-0.0%) to 90.34% when pulling c6d4d386beb9bab15d5de7042fa01f3cb4ef77cb on peterbe:ability-to-see-events-belonging-to-a-video-template into 450529dd3c43cb01c4768b8a22407fc6597f9efc on mozilla:master.