Multi-master needs rework for production in compose

Section of replication is nasty:

Multi master replication
Quick example, with the default config.

It is impossible to implement in production Compose file.
When I got to this, I'm going to work on it, but also ask your input and collaboration.
I think it can be done by algorithm:
Requirement - hostnames must be ldap.anything as main master, ldap[0-9].anything as other, as domain names.
Then we can do hostnames pattern match:
# This pattern match hostnames with dot, ldap.anything (master server)
echo "$HOSTNAME" | grep -E "^ldap\."
# Then search for ldap2.domain (if needed, ldap3... and so on)
# If lookup is successful - you found host. Do configuration with it (write results to /etc/hosts if it is a proper way)

# This pattern match hostnames with dot, ldap(numbers).anything
echo "$HOSTNAME" | grep -E "^ldap[0-9]+\."
# Then search for master ldap. (if needed, other numbers, ldap3... and so on)
# If lookup is successful - you found master host. Do configuration with it (write results to /etc/hosts if it is a proper way)

This is for any number of hosts, but we can make boundary for two-three.
This is simplicity way, if hostname is starting with ^ldap. - lookup ldap2 and write it, and otherwise. Which is the same I described above :p
Lookup retries/timeout is sufficient option, while next ldap(number) is not found - just stop further lookups.
This obviously part for initialization script, when replication set "true".
It is great to implement for two or three nodes - it is sufficient for majority of setups, I think. But I require your experienced input.

Client was unrealistic about LDAP usage in his project.
So there was no work further.
I am also thinking, does replication really used in LDAP.

Replication is really used in LDAP if you want redundancy, multiple locations, and load balancing.
That said, don't use compose in production, and all will be well :)

We use  ldap replication on kubernetes in production,
To do so we use 2 deployments of 1 replica each to run openldap, and 3 services.
The services are something like:

ldap (select pods of deployment 1 and 2)
ldap1 (select pod of deployment 1)
ldap2 (select pod of deployment 2)

"ldap" service is used to request the ldap server (it loadbalances request between pods of deployment 1 and 2)
ldap1 and ldap2 services are used for the replication.
The first deployment looks like this :
spec:
  replicas: 1 # keep it to one!
  [...]
    spec:
      containers:
        - name: openldap
          image: osixia/openldap-backup:1.1.8
          env:
            - name: HOSTNAME
              value: "ldap1" #  important same name as the front service name
            - name: LDAP_REPLICATION_HOSTS
              value: "#PYTHON2BASH:['ldap://ldap1', 'ldap://ldap2']"

the second:
spec:
  replicas: 1 # keep it to one!
  [...]
    spec:
      containers:
        - name: openldap
          image: osixia/openldap-backup:1.1.8
          env:
            - name: HOSTNAME
              value: "ldap2" # important same name as the front service name
            - name: LDAP_REPLICATION_HOSTS
              value: "#PYTHON2BASH:['ldap://ldap1', 'ldap://ldap2']"

this is not the best solution since stateful set are availables but it works :)


Questions of usage

First, Thank you for your amazing work (I was still dreaming of this, while you had already made it).
I am trying to figure out what all I need to do such that I can use this as a replacement for ENC28J60 SPI ethernet module family for my Raspberry PI Zero family boards.
Questions on H/W

For the RJ45 jack with integrated transformer, would the following work:

Ethernet RJ45 Connector Female with Magnetics 10/100 Base-T - LPJ4011ABNL
Given the above Jack, are the passives required the same as listed under the the section Physical interface, cheap DIY version , except the T1?

You mentioned the ISL3177:  Could I try and adapt something from the following schematic - https://github.com/cnlohr/espthernet/blob/gh-pages/hardware/esp12e-ethernet.pdf
What constraints should I be aware of if I want to try and make the total DIY circuit (jack + passives) on a single perfboard that plugs into the headers of the Pico

For the software I plan on doing the following:

use the offical SPI slave example as a base, and include this library (https://github.com/raspberrypi/pico-examples/tree/master/spi/spi_master_slave/spi_slave)
Simulate the operations of the ENC28J60 as expected by ENC28J60 drivers, so that the pico_eth registers as an EC28J60. That allows me to use the pico_eth as an in-place replacement, with no additional changes master-side.

Any clarification would be greatly welcome

Hello, thank you for your interest in this project!
I can't think of any reason why this transformer wouldn't work. It's identical to one of the models I use and doesn't even have the center of the windings interconnected. It's theoretically the ideal model.
Nevertheless, I recommend that you try it out before buying more than one of these transformers. In the "Troubleshooting guide" section it is pointed out that you can omit C3 & C4 in this very specific case, but I strongly advise you to leave them in, as they slightly attenuate the electrical switching noise and prevent, in all situations, any direct current from passing through the transformer winding.
In fact, the diagram you need is identical to the one supplied. I repeat, however, that you should carry out tests beforehand.
There are no particular constraints, but I strongly advise against Breadboards; you won't get the results you're looking for. Perfboards are OK if you work cleanly. Look at the photos; the prototypes are made on Perfboards. The photo in the "Assembly guidelines" section is an example of what you should try to do; keep the connections short so you don't get in trouble.
The software compiles and is ready to use. Pay attention to your version of the Pico SDK. I advise you to use only the latest one (1.5.1 at this time).
For your developments, I refer you to the lwIP documentation. I haven't had the time or the motivation to continue my work on the Ethernet library for the time being. The lwIP threaded API is not available as NO_SYS=1. I haven't had the motivation to write the synchronization layer between the SDK, lwIP and my library. There is no technical limitation to this as far as I know, just code to write. It's even possible to integrate it with FreeRTOS and use the whole thing as you would a Pico-W: it also uses lwIP!
The truth is that in my applications I'm quite happy with the basic API (you can do anything with it, even MQTT in just a few minutes). I thought I'd get some help to continue this project. Personally, I think it's very interesting and I'd love to run it under FreeRTOS, but there's still a lot of work to be done, and the quality of my documentation is mediocre, for example. It's not just code. I'd also need a small bench to test the library; I've got the basic diagnostics but iPerf2 (the only thing available) isn't great.

About ISL3177 it's a very good idea and a basic scheme should work. The problem is that I haven't continued that part either. I'd need an ISL3177 to test and be able to tell you for sure.


InChIKey Tag contains "InChIKey=" prefix

In the recent obo release (2016-11-01) the InChIKey-Tag of CHEBI:85624 contains a misplaced "InChIKey=" in front of the InChIKey instead of only the InChIKey (see below).
Maybe this Term is going to be curated anyway then the issue can be closed without comment.
[Term]
id: CHEBI:85624
name: isoarginine
def: "An organic molecular entity that has formula C6H15N4O2." []
synonym: "C6H15N4O2" RELATED FORMULA [SUBMITTER]
[...]
synonym: "InChIKey=XGSVDFYDYLLWRN-SCSAIBSYSA-O" RELATED InChIKey [ChEBI]
[...]

The December version has it fixed


Roll engine a8cbe2ba0a86..71399016c936 (1 commits)

git@github.com:flutter/engine.git/compare/a8cbe2ba0a86...71399016c936
git log a8cbe2ba0a86..71399016c936 --no-merges --oneline
2019-08-14<EMAIL_ADDRESS>Roll src/third_party/skia f4a7190d2a5b..d5d8a64cd54b (3 commits) (flutter/engine#10994)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff (stuartmorgan@google.com), and stop
the roller if necessary.

Auto-roller completed checks. About to merge.


notifyDataSetChanged not found

Hello, I'm trying to make search function for this view. But I can't call notifyDataSetChanged() to update the search/filtered data.

hi！这个不是适配器里面的吗？应该很简单解决这个问题呀！

Hi, call the notifyDataSetChanged method on the view pager adapter.

最基本方法可以用adapter.notifyDataSetChanged()

Thanks guys, I did try to fix it by re-populating the adapter.
I will try to call notifyDataSetChanged() in the adapter next time :+1:


Stale connections are returned from the connection pool

I have a Hyper (no proto) client talking to a Netty-based server over TLS. I make one request, and we keapalive the connection. After idling for 30 seconds, the server sends a TLS shutdown alert and a TCP FIN. After some period of time, the client makes another request to the same server. It pulls the same connection out of the pool, sends the request, and then immediately hits an EOF trying to read the response out of the already closed connection with an error: end of file reached before parsing could complete.
Idle connections should probably be constantly reading to detect hangups.
We were seeing occasional broken pipe errors out of tokio-proto before upgrading to 0.10.7 and switching to no-proto, but it's now way more common.
This commit seems suspicious: https://github.com/hyperium/hyper/commit/7c4b814e. Isn't the example test case a pretty straightforward protocol violation? Why wouldn't that be an error?

For a client connection, if a message has been read to the end of its framing, it shouldn't be expecting more data until a new request is sent, right? Should the behavior be adjust to try to read anyways, and if not expecting anything, return some protocol error?

I believe the error that commit was fixing was the case of a HEAD request where the response returns a body anyways, so by not continuing to read, a protocol error wasn't yelled after a HEAD.
Come to think of it, that would just mean that the socket would return a protocol error the next time, and ruin a new request... I suppose it's best to point out early when a response had extra unexpected bytes...

Yeah, it seems like it'd be okay to either have the HEAD request report a protocol error, or just have the connection close out in the pool due to unexpected data.

This is fixed in 0.11.8.

Still getting:
ERROR:tokio_proto::streaming::pipeline::client: pipeline error: unexpected end of file

ERROR:tokio_proto::streaming::pipeline::client: pipeline error: end of file reached before parsing could complete

with
[[package]]
name = "hyper"
version = "0.11.8"

Those logs by themselves seem fine: sometimes connections are bad.
Do you mean the logs are incorrect?

Do you mean the logs are incorrect?

I am not sure if they are correct or not, need to add more verbosity.


Get rid of bower

#minor#
Here I've used ember-cli-node-assets to replace bower deps with node packages.
It allows a consumer app to skip bower install step.

Visual Acceptance tests:
No changes

Approved - thanks for the cleanup!


Is there any way to lazily-access properties?

I have a model that delegates the client_name property to an associated model, but only sometimes. It appears that Reform eagerly accesses all the defined properties, even if those properties aren't used by anything:
class FooForm < Reform::Form
  property :bar
end

class Bar
  def bar
    raise "called"
  end
end

FooForm.new(Bar.new)
#=> RuntimeError: called

Is there some way of specifying a property that doesn't access the model until the corresponding accessor is used on the form object?

No, sorry, this is impossible ATM. It would be easy to change this for plain attributes but then with nested objects we would get into trouble. Why do you specify those fields as properties if you don't need them, I wonder???????? :puzzled:


mAP is not increasing after 0.19

when i tried to run the whole setup to train from stratch on GW dataset, the mAP is not increasing from 0.19 even after 20 epochs. Please let me know if am doing anything wrong.

I also have a similar issue. I trained TPP-PHOCnet from scratch on the Iam dataset, which gives me 2.1% mAP for query by a string(qbs) case. I observed that loss jumps to zero after one epoch. Any help would be greatly appreciated. Thanks


Update virtual-machines-windows-sql-register-with-resource-provider.md

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

this change has already been added in a separate pr, #please-close


Uppercase snippets

Hello!
The examples on page use UPPERCASE code. But when I pick a autocompleted (e.g. program-id) snippet they are all lowercase.
Is this an option possible to change?

The only solution I can find at the moment is to duplicate the snippets but with an uppercase identifier and content.
This means if you are typing in uppercase, the uppercase named snippet should be shown first.
I've done this with 3.2.25, so can you please take a look.

It works. Thank you!


impr: dockerfile has multi-stage build

supersedes #2 and #140 (except, it doesn't have the commented lines to push to dockerhub after successful build, but as we do it through TC it doesn't matter)
Follows the series of the other repos (discounts, events, statutory)
Brings the multi-stage build so we don't have need for 2 containers

Superseded by #196


Fix API, troubleshooting & people

The following changes are included:

Fix copyright date
Add mails to About HPX-People
Fix and enrich troubleshooting
Split Full API to multiple pages (rst files)

@dimitraka By chance, do you mind if you add my email to the static images too cause it's missing?

@dimitraka By chance, do you mind if you add my email to the static images too cause it's missing? (the hotmail domain one)

Sure!

bors merge


increase the value of max dimensions for dense vector search.

Issue 1060

Closing as a duplicate for https://github.com/apache/lucene/pull/874


Object inspector: add Doxygen comment support

From<EMAIL_ADDRESS>on 2011-04-06T16:22:24Z
The main thing I want to see is Doxygen support in the Object Inspector.  A simple form of support may be just to strip out the Doxygen specific codes (@a, etc.) from the displayed doc strings.  Better support would actually use the rich text options Doxygen supports. What version of the product are you using? On what operating system? spyder 2.0.10, python 2.6.1, windows XP SP3
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=613

From pierre.raybaut on 2011-04-27T04:58:47Z
Summary: Object inspector: add Doxygen comment support
Labels: -Type-Defect Type-Enhancement

From pierre.raybaut on 2011-05-16T01:30:07Z
Labels: Cat-ObjectInspector

From pierre.raybaut on 2012-03-18T14:05:42Z
Labels: -Type-Enhancement Type-Enh


T2V-Turbo-v2 在VBench总分目前排名第一，是否可以加入一起对比一下

We release the VGenEval package to obtain our prompts. If you want to see the results of the model as soon as possible, we encourage you to use it, obtaining prompts and test the model. We are still waiting for several commercial models to be open for testing, and updates will be made at that time.

OK，Thanks!


Ability to query users by email id

I could see this being useful in a lot of external bot integrations.

@l12s / @vanm ping!


Test converting client props to ConditionalWriterConfig

Created two unit tests for the conversion of client properties to ConditionalWriterConfig. One using default values and another using modified values.
Refactored getConditionalWriterConfig into two methods to facilitate unit testing.
Closes #2131

@DomGarguilo thanks for the catch on the comment!


adding requirements.txt and requirements-optional.txt to MANIFEST.in

adding requirements.txt and requirements-optional.txt to create working pypi packages

should solve https://github.com/devitocodes/devito/issues/1834


Use git log -1 to determine if version commit during docker-build-and-push job

2nd attempt at https://github.com/plotly/orca/issues/106 after the failed https://github.com/plotly/orca/pull/118
Note: I haven't tried to git push --tags (is there a way to test that w/o actually adding a git tags?)
See:

https://discuss.circleci.com/t/git-tag-deploys-in-2-0/9493/4

for more info
cc @antoinerg and https://github.com/plotly/orca/issues/173

Note: I haven't tried to git push --tags (is there a way to test that w/o actually adding a git tags?)

Probably not but I may be wrong. We should make sure this works before merging. Can you simply tag e4d6936 to v0.0.0 and make sure it gets pushed to Quay?

Thanks very much for the review @antoinerg !

We should make sure this works before merging. Can you simply tag e4d6936 to v0.0.0 and make sure it gets pushed to Quay?

Not sure what's best:

merge this, release v1.2.0 (make a v1.2.0 git tag in the process) and see if this work, or
make a funny tag v0.0.0 (that will leave in git history forever) and see of this work.

I prefer the first option, but maybe I should look up how to make git tag -a dry runs.

General comments:

I still think adding branch- to Docker tags that represent branches is strange and unnecessary, but I don't object to you adding that if you feel it's better.
Testing this with a "funny tag" is definitely useful. I suggest adding some text to the tag to remind people that it's temporary (e.g. v1.2.0-taggingtest), and deleting the tag from GitHub when you're done with it if possible (I'm pretty sure it is).


Better convenient patches

This is the solution I've come up with to fix the locking issues with patches. See https://github.com/nodegit/nodegit/issues/877.

This iteration is currently too slow, need to build a refcounter on hunks / lines and implement convenient line.

Having difficulties tracking down where exactly the content pointer exists in libgit2 (the pointer that lines keep to the diff text). Instead, since this is a convenience wrapper, I am going to remove that pointer to the diff text in favor of the actual content of the line.

This looks great! Could we get a summary of the API changes involved in this?

Minor changes to API:

ConvenientPatch does not have a patch or a delta property associated with it, if you were using the delta, please just use prototype methods oldFIle, newFile, and Status, which are stripped directly from the delta.
ConvenientPatch.prototype.hunks returns a promise with an array of ConvenientHunks.
ConvenientPatch
ConvenientHunk does not have an exposed diffHunk associated with it, but does have the same members as diffHunk:

size() : number of lines in the hunk
oldStart() : old starting position
oldLines() : number of lines in old file
newStart() : new starting position
newLines() : number of lines in new file
headerLen() : length of header
header() : returns the header of the hunk
lines() : returns a promise containing DiffLines, not ConvenientLines.

DiffLine now contains the members rawContent() and content().

rawContent() contains the unformatted content of the line. This is no longer a string from the line to the end of the file.
content() contains the utf8 formatted content of the line.

:star:

@tbranyen thoughts before I merge this in?

@implausible how's the performance looking now? Just did a brief scan of the code and the change looks fine to me, I think the move to C++ might make the convenient api's a bit harder to maintain.

It will make it a bit harder to follow for sure. The performance is comparable to before. Unsure if faster or slower because it's pretty close. One thing that is nice is that this completely removes the locking issues we had with the git_patch_from_diff issue.

@implausible there was no perf increase?

@johnh: Unsure if there is a perf 'increase', but there is a certain stability increase. There is definitely a positive perf gain over alternative systems to fix this issue. I can run some tests vs the old system. What i know for sure is there is 0 perf decrease. I think this will be as fast as the system can transfer data between git_patch and git_hunks and git_lines. It still runs asynchronously while the system does transfer of data.

:+1:

I'm @johnhaley81. You just pinged some random guy. Sorry @johnh.

Could we get a delta before we merge? I'd like to include that in the changelog.

slack habits lol

If none of the interfaces have changed, we could probably just mention that they are more stable now and moved to C++

:+1: I'm good with this. @tbranyen I'm going to do a release to 0.10.0 after this is merged.

Wow. I am wrong. There is a HUGE perf improvement. @tbranyen @johnhaley81 @srajko
Result before move to C++ convenience wrapper:
Time to generate patches: 254
number of patches: 927
Time to generate hunks: 34
Number of hunks: 890
Time to generate lines: 3465
Number of lines: 105705
Result after move:
Time to generate patches: 417
number of patches: 927
Time to generate hunks: 33
Number of hunks: 890
Time to generate lines: 127
Number of lines: 105705

:star2: :100: :star2:

Time to calc patches is up but that's because we're copying a lot of stuff into memory from the old patch structure. Overall an order of magnitude perf increase. Nice job!


Wagtail@latest only has a favicon on the index page.

After #277 got fixed the favicon only shows on the index page. The browsers default favicon shows on all the other pages.

Strange
It seems like the whole getting started section on the now stable docs has the favicon, while the tutorial section does not have any icon. The other sections have a favicon for some of the pages.
In what is now the latest version of the docs, (with the exception of many of the index.html pages) all the pages that did have favicons (in what is now stable docs) now don't and all the pages that didn't have favicons now do.


Metrics are not reported to InfluxDb v2

I configure metrics in my startup.cs to report to influx like so(notice v2 in the base Url):
var metrics = AppMetrics.CreateDefaultBuilder()
            .Report.ToInfluxDb(influxConfig =>
                {
                    influxConfig.InfluxDb.BaseUri = new Uri("http://localhost:8086/api/v2");
                    influxConfig.InfluxDb.Bucket = "testbucket";
                    influxConfig.InfluxDb.CreateBucketIfNotExists = true;
                    influxConfig.InfluxDb.Token = "...";
                    influxConfig.InfluxDb.Organization = "testorg";
                    influxConfig.FlushInterval = TimeSpan.FromSeconds(10);
                })

But when i intercept the messages sent by the app during debug it is still reporting to the http://localhost:8086/api/write....
I tried to reproduce the problem in cli and when I send it to V2 i get all metrics in a bucket but when i send to endpoint withiut v2 all i get is 200 response with some generic message like "InfluxDB is a time series platform, purpose-built by InfluxData for storing metrics and events, provides real-time visibility into stacks, sensors, and systems."
InfluxDB version running in docker container: 2.7.1

Stupid mistake i made of not including the trailing slash in here: influxConfig.InfluxDb.BaseUri = new Uri("http://localhost:8086/api/v2**/**");
This fixed my problem!


simplify makefile & split fuse image

simplify Makefile. Put images build in docker/Makefile.
split fuse image for juicefs fuse image of fluid.

Codecov Report
Patch coverage has no change and project coverage change: +0.44% :tada:

Comparison is base (bef5de7) 38.64% compared to head (70447c7) 39.09%.
Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #706      +/-   ##
==========================================
+ Coverage   38.64%   39.09%   +0.44%
==========================================
  Files          33       33
  Lines        3959     3988      +29
==========================================
+ Hits         1530     1559      +29
  Misses       2283     2283
  Partials      146      146

see 3 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Draft PR: New Parser

Issue #547
Changes

Removes old nearley parser for template grammar
Removes old nearley parser generation for templates
Switches to new markdown-transform with template mark support, template parsing and drafting
Adds Slate format option to drafting for convenience
Fixes test to the new template grammar syntax (clauses / lists blocks are markdown blocks)
New parser manager contains template grammar / templatemark AST / JavaScript parser is now defined in markdown-transform

Flags

The whole stack depends on a yet unpublished version of ciceromark and and of the new templatemark which can be found at https://github.com/accordproject/models/tree/js-new-ciceromark
Still uses the clause code blocks for clauses inside contract samples
Ergo formulas are temporarily disabled
Details and status can be found in #547
All AP public templates parse and pass testing but fixed-interest formulas will not work (apparently untested). See https://github.com/accordproject/cicero-template-library/tree/parserv2

Coverage decreased (-0.9%) to 95.566% when pulling f99275637ec7f731f3f8d4c22bc65a3b8281aa37 on parserv2 into 435ee083ec19d7fedc7cfae811dd4efe972a9a6c on master.


Statistic labels fixes

DRAFT PR for checking the overall logic. Once that is cleared, proper Jira issues will be created and another PR will be put up for merging.

This branch includes prems_stats #1390 for easier testing on prems. Recommendation: also add a statistic with a date xVar.

Closing in favor of #1411 .


Automated cherry pick of #6487: Fix/esxi

Cherry pick of #6487 on release/3.1.
#6487: fix(esxi): Separate detach disk and delete disk when rebuilding.

Codecov Report

Merging #6489 into release/3.1 will increase coverage by 0.03%.
The diff coverage is 11.41%.

@@              Coverage Diff               @@
##           release/3.1   #6489      +/-   ##
==============================================
+ Coverage         7.45%   7.48%   +0.03%
==============================================
  Files              584     585       +1
  Lines            98663   98953     +290
==============================================
+ Hits              7354    7409      +55
- Misses           90738   90971     +233
- Partials           571     573       +2

Flag
Coverage Δ

#aFlag
7.48% <11.41%> (+0.03%)
:arrow_up:

Impacted Files
Coverage Δ

pkg/appsrv/workers.go
65.46% <ø> (-0.25%)
:arrow_down:

pkg/cloudcommon/db/db_dispatcher.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/rbac.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/tenantcache.go
1.31% <0.00%> (ø)

pkg/cloudcommon/policy/policy.go
1.58% <0.00%> (+0.04%)
:arrow_up:

pkg/cloudprovider/cloudprovider.go
1.70% <0.00%> (-0.13%)
:arrow_down:

pkg/cloudprovider/instance.go
0.00% <ø> (ø)

pkg/compute/guestdrivers/aws.go
3.96% <0.00%> (-0.14%)
:arrow_down:

pkg/compute/guestdrivers/base.go
0.00% <0.00%> (ø)

pkg/compute/guestdrivers/managedvirtual.go
0.00% <0.00%> (ø)

... and 53 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 34cef73...cb5edf8. Read the comment docs.

Codecov Report

Merging #6489 into release/3.1 will increase coverage by 0.01%.
The diff coverage is 0.00%.

@@              Coverage Diff               @@
##           release/3.1   #6489      +/-   ##
==============================================
+ Coverage         7.47%   7.48%   +0.01%
==============================================
  Files              585     585
  Lines            98936   98953      +17
==============================================
+ Hits              7396    7409      +13
- Misses           90967   90971       +4
  Partials           573     573

Flag
Coverage Δ

#aFlag
7.48% <0.00%> (+0.01%)
:arrow_up:

Impacted Files
Coverage Δ

pkg/multicloud/esxi/host.go
0.94% <0.00%> (-0.01%)
:arrow_down:

pkg/multicloud/esxi/storage.go
0.00% <0.00%> (ø)

pkg/multicloud/esxi/vdisk.go
0.00% <0.00%> (ø)

pkg/multicloud/esxi/virtualmachine.go
0.00% <0.00%> (ø)

pkg/appsrv/response.go
69.11% <0.00%> (+2.94%)
:arrow_up:

pkg/cloudcommon/cronman/cronman.go
54.85% <0.00%> (+5.33%)
:arrow_up:

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 9534c15...4f9bbe0. Read the comment docs.


Extend Recipes

Migrated
Cumulus Location: https://github.com/CumulusMC/Art-of-Alchemy/pull/43
(See above for more information)

This could & should be refined more but I'll merge for now.
More changes can be added later.


Turn on code highlighting for HTTP api responses

and add a code highlighting stylesheet for the specification.

^____________________^ YAY! LGTM


CiliumBGPNodeConfigOverride has no effect

Is there an existing issue for this?

[X] I have searched the existing issues

Version
equal or higher than v1.16.0 and lower than v1.17.0
What happened?
I created a CiliumBGPNodeConfigOverride to override the BGP source address of a node in order to prefer a static IPv6 address instead of the one assigned via SLAAC.
I created the following resources:
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPClusterConfig
metadata:
  name: bgp-spike
spec:
  bgpInstances:
  - name: spike
    localASN: 64513
    peers:
    - name: 305-1700-gw-v4
      peerASN: 64512
      peerAddress: <IP_ADDRESS>
      peerConfigRef:
        name: cilium-peer
    - name: 305-1700-gw-v6
      peerASN: 64512
      peerAddress: 2a10:4741:37:51::1
      peerConfigRef:
        name: cilium-peer
---
# The name of CiliumBGPNodeConfigOverride resource must match the name of the node for which the configuration is intended.
# Similarly, the names of the BGP instance and peers must match with what is defined under CiliumBGPClusterConfig.
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPNodeConfigOverride
metadata:
  name: spike
spec:
  bgpInstances:
  - name: spike
    peers:
    - name: 305-1700-gw-v4
      localAddress: <IP_ADDRESS>
    - name: 305-1700-gw-v6
      localAddress: 2a10:4741:37:51::16
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPPeerConfig
metadata:
  name: cilium-peer
spec:
  gracefulRestart:
    enabled: true
    restartTimeSeconds: 15

My node is named spike:
❯ kgno
NAME    STATUS   ROLES    AGE   VERSION
spike   Ready    <none>   9h    v1.31.0

Despite this, I get messages on my router that the session can't be established because it's expecting the static ip and getting bgp connections from the slaac ip.
How can we reproduce the issue?
Install cilium and apply the manifests above, run cilium bgp peers to validate the establishment of sessions. Check router logs if there's an error.
Cilium Version
Client: 1.17.0-pre.0 d41440cb 2024-09-04T23:25:39+00:00 go version go1.23.0 linux/amd64
Daemon: 1.17.0-pre.0 d41440cb 2024-09-04T23:25:39+00:00 go version go1.23.0 linux/amd64
Kernel Version
Linux spike 6.6.52 #1-NixOS SMP PREEMPT_DYNAMIC Wed Sep 18 17:24:10 UTC 2024 x86_64 GNU/Linux
Kubernetes Version
Client Version: v1.31.0
Kustomize Version: v5.4.2
Server Version: v1.31.0
Regression
No response
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Cilium Users Document

[ ] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I also saw this trying to set up in an IPv6-only environment, where setting the router ID is required, as a workaround for my specific case I was able to use the annotation kubectl annotate node [node] cilium.io/bgp-virtual-router.[asn]="router-id=[id]" from the old system and that appears to work, but seems to be deprecated and isn't mentioned in the docs for the new version, which implies the override should be able to do this.

I also saw this trying to set up in an IPv6-only environment, where setting the router ID is required, as a workaround for my specific case I was able to use the annotation kubectl annotate node [node] cilium.io/bgp-virtual-router.[asn]="router-id=[id]" from the old system and that appears to work, but seems to be deprecated and isn't mentioned in the docs for the new version, which implies the override should be able to do this.

+1 on this. Couldn't get IPv6-only peering to work until I tried the old way of annotating the node with router-id. This workaround works for me but it would be nice if this bug could be fixed, as the documentation only mentions this under BGPv1.

Thanks for reporting this issue. I am looking into it.

Hi @Lattyware, @markusnasholm, Issue reported was for not setting local-address when using CiliumBGPNodeConfigOverride configuration. That was indeed a bug, it is fixed with attached PR.
I am not sure why router-id would not work when using CiliumBGPNodeConfigOverride, can you please check CiliumBGPNodeConfig resource and see if router-id is accurately reflected in that CRD ?

Hi @Lattyware, @markusnasholm, Issue reported was for not setting local-address when using CiliumBGPNodeConfigOverride configuration. That was indeed a bug, it is fixed with attached PR.
I am not sure why router-id would not work when using CiliumBGPNodeConfigOverride, can you please check CiliumBGPNodeConfig resource and see if router-id is accurately reflected in that CRD ?

Yes, I can see it reflected in router-id in CiliumBGPNodeConfig (although I'm currently using the old annotation to make my setup work, I'm assuming it wouldn't pull that from the annotation into the CRD somehow).
The error I got at the time was "failed to get cilium node IP : router id not specified by annotation, cannot resolve router id", so it may be that it's a separate bug where something is only looking for the annotation and not at that CRD for the router id?

@Lattyware, hmm I'd suggest opening a separate issue for router-id problem and attach a sysdump to the issue. I can go through the logs and see what could be an issue.

@Lattyware, hmm I'd suggest opening a separate issue for router-id problem and attach a sysdump to the issue. I can go through the logs and see what could be an issue.

I'll see when I can get a moment to recreate the issue in a test environment to get a sysdump, as I need to leave the workaround live in the environment I originally encountered it.


Memory leak issue

Describe the bug
It is hard to describe or repro the bug. I rerun this Trello in an Azure function every 5 minutes. From the telemetry, it spend longer and longer time to send the requests. My guess is, there is some memory leak issue in the code. Do you have any ideas?
Screenshots
Vertical axis is the time to send the request.

Desktop (please complete the following information):

OS: Linux
.Net Target: .Net core 2.2
Version [e.g. 22]

Additional context
I tried to call TrelloConfiguration.Cache.Clear() after each call but it does not help.

Thanks for reporting this.  Do you modify TrelloConfiguration at all, or are you using the default settings.
Also, can you let me know what package version you're using, please?

No modification on TrelloConfiguration class.
Version 3.8.1.

The source code is here: https://gist.github.com/lijunle/eafa8cb87f651b2dd904c8352ed5e6c6
It is quite short.

Thanks. I'll have a look tonight.

So it looks like there may be a memory leak, but I don't think that's the primary issue.  The EventAggregator holds on to everything that subscribes using weak references until it discovers (through an event publish) that it doesn't exist.
However, with each subscriber, it must check to see if that object hasn't already subscribed, and just about every object subscribes.  As the number of subscribers increases, this check takes more and more time.  This is the source of the increasing delay.
I'll be publishing v3.10.1 soon, which completely disables the EventAggregator when consistency processing is disabled (which appears to be your case).

@gdziadkiewicz From monitor, the issue is resolved! Thanks a lot for the quick help!

Hmm... The request time is stable, however, there is still some kinds of memory leak.

It shows the BoardContext is never released. I took a quick look at the code. This line of code is strange. The Synchronized handler is never released.
https://github.com/gregsdennis/Manatee.Trello/blob/1b40470dfb1c9b6abe79b740a2a601cec37d885f/Manatee.Trello/Board.cs#L379

@gregsdennis Why the Synchronized is declared as an event? It sounds should be a weak reference callback on the constructor.
https://github.com/gregsdennis/Manatee.Trello/blob/cce81cbab2688f4f7a1a2a6a47f5b408d81f4f75/Manatee.Trello/Internal/Synchronization/SynchronizationContext.cs#L26


TablePaginationProps onChangeRowsPerPage has wrong signature (Typescript) material v1.0.0

[X] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
I expect to pass a callback function for onChangeRowsPerPage but the typings for this signature do not allow it right now. Your api docs state exactly this.
I believe this should be changed
https://github.com/mui-org/material-ui/blob/da728bc99e9757961a32209b1f225996d9d23311/packages/material-ui/src/TablePagination/TablePagination.d.ts#L24
to
onChangeRowsPerPage?: (event: React.ChangeEventHandler<HTMLTextAreaElement | HTMLInputElement>) => void;

Nothing. I erroneusly expected the type to be exactly as onChangePage


Include fully qualified namespace on @model directive in Razor Page cshtml template.

This is needed to avoid errors in the cshtml file after adding a Razor Page to an Empty ASP.NET Core project, since no _ViewImports.cshtml exists.
Scaffolding already explicitly does this currently, so we should be consistent.

@phenning which template specifically has this problem?

@Eilon The problem is here.
https://github.com/aspnet/templating/blob/1d00bb449fa0b65b0bf39348993ff195c9f89138/src/Microsoft.DotNet.Web.ItemTemplates/content/RazorPage/Index.cshtml#L3
This should be:
@model MyApp.Namespace.IndexModel
instead of
@model IndexModel

Got it!


Incompatibility with Token Magic

libWrapper is accusing an incomaptibility between Enhanced Terrain Layer and Token Magic on the usage of:
gme.dnd5e.canvas.AbilityTemplate.fromItem
Is this something that will cause issues or are they using different methods?

I get the following error message from the console:
libWrapper: Potential conflict detected between module 'enhanced-terrain-layer' and 'tokenmagic'.
Detected non-libWrapper wrapping of 'game.dnd5e.canvas.AbilityTemplate.fromItem' by 'enhanced-terrain-layer'. This will potentially lead to conflicts.
🎁console_ui @ libWrapper-consts.js:8

It shouldn't cause an issue.  Terrain Layer was just wrapping.
But I did change the code to support libWrapper.


Clean apt repos on upgrades

Some left over repos may break our ability to run apt, which can stall
an upgrade. Just blow away what's there and let Ansible put the repos
back as it needs them.
Change-Id: Id6c145c986ff35eda0cfb1bad9929c8674351073

👍

:+1: LGTM

I did a quick test, this seems to work.


Option to download volumes as volumes but the rest as chapters

The idea
I would like an option to download volumes as volumes, like it is currently doing for example with "--save-as cbz-volume", but the rest of the chapters not in volumes (yet), would be downloaded separately like with "--save-as cbz" would do.
So instead of having Vol 1.cbz, Vol 2.cbz, Vol 3.cbz, and then No Volume.cbz which includes all the mixed stuff not included in volumes, like old extras and new chapters which haven't been assigned to volumes yet mixed together, they would instead be downloaded as separate chapters.
So I would like they would be downloaded like in the second picture (chapters could be downloaded to root or for example to Chapters folder), instead of the first picture, or one with where all volumes are as single chapters.
Sure I can achieve that by running the command two separate times as "--save-as cbz-volume" and then later another time with "--save-as cbz" and then deleting the duplicate files not in format I'd like, but I'd prefer if I could do that as a single command.

I tried to search if this is already possible, but I could not find an option to do this at least. Sorry if that is already the case.
Why this feature should be added to the app ?
Would make it easier to know what to read and when while keeping the volume format, instead of having to guess what is included in the "No Volume.cbz" file.

Hmmmmmm, i'm thinking additional format options that users can put in to customize each formats. So in this case, it would be like:
mangadex-dl "insert MangaDex URL here" --format-options "no_volume=false"

Is that okay with you ?

Yes, that sound great!

Nice, this feature is planned to be added in v3.0.0. But i cannot guarantee when v3.0.0 is out, because there is no ETA and it's still very early work in progress.

Hello, the feature has been added in commit 1e404ec (v3.0.0 branch). Sorry for waiting too long, i don't have motivation in the past working on this project, hopefully in the future i will keep maintenance for this project though.
You can try the feature by installing the development version:
If you install mangadex-downloader from Github Release, you can download it from this link (in "artifacts" section)
If you installing mangadex-downloader from PyPI (Python Package Index)
Note: You will need git before doing this
pip uninstall mangadex-downloader
pip install -U git+https://github.com/mansuf/mangadex-downloader.git@bdf7afe1384a81788846b396f8415d96ed81b04b

Hi and thank you for adding this feature! I sent a couple cups of coffee to your way.
However I'm having a problem with this, when I try to use this feature using for example a text file including two or more mangas. Let me know if I'm doing something wrong.
The first manga downloads correctly, with volumes and chapters separately when the chapters are not (yet) included in any volumes, but I get an error message when it tries to download the second manga, probably because it switches from cbz-volume to cbz to download the chapters in first one, it doesn't seem to change back to cbz-volume before trying to download the second manga, and my config file has changed to show "save_as":"cbz" instead of cbz-volume like it was in the beginning when it crashes.
Here is the test.txt file contents for the two test mangas, which causes crash for me during the second one, I selected mangas which both include volumes and chapters to test the new feature:
https://mangadex.org/title/92542740-1ed9-46e0-a04d-661c41f22331/the-onee-san-who-just-wanted-to-say
https://mangadex.org/title/f093706a-f96a-4bef-8ef1-d1db1fa8a7c1/hazure-skill-kinomi-master
The config file is as follows when starting the test:
mangadex-dl "conf"
Config 'login_cache' is set to False
Config 'language' is set to 'en'
Config 'cover' is set to 'none'
Config 'save_as' is set to 'cbz-volume'
Config 'use_chapter_title' is set to False
Config 'use_compressed_image' is set to False
Config 'force_https' is set to False
Config 'path' is set to 'Y:\Test_Mangadex\{manga.title}'
Config 'filename_chapter' is set to '{manga.title} {chapter.simple_name}{file_ext}'
Config 'filename_volume' is set to '{manga.title} Vol. {volume}{file_ext}'
Config 'filename_single' is set to 'All chapters{file_ext}'
Config 'dns_over_https' is set to None
Config 'no_group_name' is set to True
Config 'sort_by' is set to 'volume'
Config 'no_progress_bar' is set to False
Config 'http_retries' is set to 5
Config 'write_tachiyomi_info' is set to False
Config 'download_mode' is set to 'default'
Config 'use_chapter_cover' is set to False
Config 'use_volume_cover' is set to True
Config 'no_track' is set to False
Config 'volume_cover_language' is set to 'ja'
Config 'stacked_progress_bar_order' is set to 'volumes, chapters, pages, file sizes, convert'
Config 'log_level' is set to 'INFO'
Config 'progress_bar_layout' is set to 'default'
Config 'ignore_missing_chapters' is set to False
Config 'create_no_volume' is set to False
and the command to run the program is:
mangadex-dl "test.txt" --delay-requests 0.5
and the error message I receive at the start of the second manga is:
[ERROR] Unhandled exception, OperationalError: no such table: file_info_cbz_volume
Traceback (most recent call last):
File "mangadex_downloader\cli_init_.py", line 87, in main
File "mangadex_downloader\cli\download.py", line 34, in download
File "mangadex_downloader\cli\url.py", line 187, in call
File "mangadex_downloader\cli\url.py", line 105, in download_manga
File "mangadex_downloader\main.py", line 193, in download
File "mangadex_downloader\main.py", line 131, in download_manga
File "mangadex_downloader\tracker_init.py", line 162, in get_tracker
File "mangadex_downloader\tracker\sqlite.py", line 81, in init
File "mangadex_downloader\tracker\sqlite.py", line 99, in init_write_mode
File "mangadex_downloader\tracker\sqlite.py", line 388, in load
File "mangadex_downloader\tracker\sql_migrations_init.py", line 33, in migrate
migrate_cls.migrate()
File "C:\Sekalaiset pikkuprogut\mangadex-dl_x64_internal\mangadex_downloader\tracker\sql_migrations\00001_add_table_db_info_and_alter_table_file_info.py", line 143, in migrate
cursor.execute(f"SELECT {column_name} FROM {table}")
sqlite3.OperationalError: no such table: file_info_cbz_volume
and from the config.json file, the "save as" has changed from cbz-volume to cbz.

Hi and thank you for adding this feature! I sent a couple cups of coffee to your way.

Thank you so much 💖.

probably because it switches from cbz-volume to cbz to download the chapters in first one, it doesn't seem to change back to cbz-volume before trying to download the second manga, and my config file has changed to show "save_as":"cbz" instead of cbz-volume like it was in the beginning when it crashes.

I was forgot to turn it back the original save_as config when switching to cbz, sorry about that. I have provide a patch https://github.com/mansuf/mangadex-downloader/commit/b8cc5c4ce5ee470a78f1388af5a1eec4af240e9b for that, you can try it now !
Link download: https://github.com/mansuf/mangadex-downloader/actions/runs/8447198933


Add remove_user_from_organization method to UserManagement module

Description

Removes a User as a member of the given Organization.

Documentation
Does this require changes to the WorkOS Docs? E.g. the API Reference or code snippets need updates.
[ ] Yes

If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required.

Codecov Report

Merging #210 (756c43c) into main (3f21c27) will increase coverage by 0.01%.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #210      +/-   ##
==========================================
+ Coverage   97.07%   97.09%   +0.01%
==========================================
  Files          49       49
  Lines        1095     1100       +5
==========================================
+ Hits         1063     1068       +5
  Misses         32       32

Files Changed
Coverage Δ

lib/workos/user_management.rb
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


v2.0.0rc1

Checklist

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

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@rgieseke have I got the license update right?

In Pymagicc we went with AGPL-3 only
https://github.com/openscm/pymagicc/blob/master/pymagicc/__init__.py#L3
So i'd revert or undo that last commit, otherwise it looks fine to me!
The wording in the license file in Pymagicc is a bit confusing, but i understood it, that you have to explicitly state in your code that you use "or later".
We could consider that but keep it as AGPL3 for now.

Beauty thanks. I think the old label got deprecated (https://spdx.org/licenses/) so have updated to make clear.


systemvm/VR Volumes left in Destroy state after pool set to maintenance

ISSUE TYPE

Bug Report

COMPONENT NAME

VR, SSVM, storage

CLOUDSTACK VERSION

4.18

CONFIGURATION

NFS storage, but could be others as well, discovered with KVM
SUMMARY

When a primary pool is set to prepare for maintenance and there are running system-vms and/or VRs  volumes on it, it fails to destroy the remaining volumes on storage, therefore pool not removable and volume still present.
They appear in Destroy state which does not go into Expunged.
In my env I get
mysql> select id,state,pool_id,removed,name,vm_id,vm_name from volume_view;
+----+----------+---------+---------------------+--------+-------+-----------------------------------------+
| id | state    | pool_id | removed             | name   | vm_id | vm_name                                 |
+----+----------+---------+---------------------+--------+-------+-----------------------------------------+
|  1 | Ready    |       2 | NULL                | ROOT-1 |     1 | s-1-VM                                  |
|  2 | Destroy  |       1 | NULL                | ROOT-2 |     2 | v-2-VM                                  |
|  3 | Expunged |       1 | 2023-02-11 07:00:24 | ROOT-3 |  NULL | NULL                                    |
|  4 | Destroy  |       1 | NULL                | ROOT-4 |     4 | r-4-VM                                  |
|  5 | Ready    |       2 | NULL                | ROOT-2 |     2 | v-2-VM                                  |
|  6 | Ready    |       2 | NULL                | ROOT-4 |     4 | r-4-VM                                  |
|  7 | Ready    |       2 | NULL                | ROOT-3 |     3 | VM-5b0a2d7b-ed32-4d33-b13e-ccc609210540 |
+----+----------+---------+---------------------+--------+-------+-----------------------------------------+
7 rows in set (0.00 sec)

and expunge delay and wait settings are both on 100, so I would've expected within 5 mins those to get Expunge, but they never do.
Also in UI:

STEPS TO REPRODUCE

Run 2 or more NFS pools
Create VR and systemvms on one of the pools
Set the pool to maintenance
Observe the systemvms and VR are migrated, but old volumes still present

EXPECTED RESULTS

Old volumes should be removed

ACTUAL RESULTS

They are still there

Workaround:
I guess the workaround is to manually check the leftover volumes are migrated successfully to other storage and if they systemvm/VR their VMs are running. Then I think it's safe to manually delete them on storage and set the state to 'Expunge' and removed  to now() with mysql.

Thanks Bobby @borisstoyanov
Have you tested running user vms ?

They don’t get migrated when you maintenance a pool. They get stopped.
On Sat, 11 Feb 2023 at 10:40, Wei Zhou @.***> wrote:

Thanks Bobby @borisstoyanov https://github.com/borisstoyanov
Have you tested running user vms ?
—
Reply to this email directly, view it on GitHub
https://github.com/apache/cloudstack/issues/7196#issuecomment-1426662712,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADHMSWBUEWDODWVELP5QOA3WW5F7XANCNFSM6AAAAAAUYRVDGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks Bobby @borisstoyanov
I can reproduce the issue in 4.18. The volume should be expunged by background task.
it seems like a regression caused by #6868
https://github.com/apache/cloudstack/pull/6868/files#diff-cf68e132ad7711cfa9250cda5819c09f51cba9933aa595cd82ad5a02b4edbe64R1331-R1338
                        if (Type.ROOT.equals(vol.getVolumeType())) {
                             VMInstanceVO vmInstanceVO = _vmInstanceDao.findById(vol.getInstanceId());
                             if (vmInstanceVO != null && vmInstanceVO.getState() == State.Destroyed) {
                                 s_logger.debug(String.format("ROOT volume [%s] will not be expunged because the VM is [%s], therefore this volume will be expunged with the VM"
                                         + " cleanup job.", vol.getUuid(), vmInstanceVO.getState()));
                                 continue;
                             }
                        }

I will look into it

@borisstoyanov
after restarting mgmt server with new global settings, it seems to be working

@borisstoyanov
can you restart the mgmt server and wait a while to seem if volumes are Expunged ?

@weizhouapache @borisstoyanov I've tested the scenario and it seems to be working as expected.
I've set the storage.cleanup.delay and storage.cleanup.interval to 100 seconds and the old volumes get expunged

I think you have set expunge.delay and expunge.interval, but those wrt VMs

this cannot be reproduced, closing it


Publish artifacts on build_docs CircleCI job to get rendered html files

Addresses https://github.com/pytorch/audio/pull/1316#issuecomment-786345978
Docs are currently built but the artifacts aren't published so they generated html files aren't accessible. This PR fixes that.

Artifacts are now properly uploaded: https://app.circleci.com/pipelines/github/pytorch/audio/5212/workflows/226d6a04-f11b-447a-b26b-0ac535afa4ae/jobs/171661/artifacts

@NicolasHug -- I'm assuming this needs to be cherry-picked in the release branch, is that correct?

I don't think it's needed, as we probably don't need to see the artifacts on the release branch?
(I think this is mostly unrelated to the way the "official" stable docs are pushed)

@NicolasHug Thanks! It's been already super helpful #1322


title.replace ERROR

I have replaced in jstreegrid.js line 1062:
title = title.replace(htmlstripre, '');  ->  title = col.title.replace(htmlstripre, '');

I don't think that is correct. The previous line sets the title var correctly, this line just clears html out of it. See https://github.com/deitch/jstree-grid/blob/master/jstreegrid.js#L1063

[image: Inline-Bild 1]
2017-02-15 13:58 GMT+01:00 Avi Deitcher<EMAIL_ADDRESS>
Closed #219 https://github.com/deitch/jstree-grid/issues/219.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/deitch/jstree-grid/issues/219#event-963029575, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ATDM0UoE52hbHCwydRbq2cTAkxWshnoXks5rcvZ2gaJpZM4MBYsT
.

No image there...

Hello,
here is the screenshot from the Browser - Debugging...
"Uncaught TypeError: title.replace is not a function"
2017-02-15 14:32 GMT+01:00 Avi Deitcher<EMAIL_ADDRESS>
No image there...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/deitch/jstree-grid/issues/219#issuecomment-280011326,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATDM0e1-cMETmfrIMhd7p4qNFnSRydQtks5rcv6DgaJpZM4MBYsT
.

What browser?
Run it through a debugger, see what happens at that line. What is title set to? string.replace is very much a function, and the previous line should make it a string... unless you did something strange with the title property of that column or the data property of the particular row? Why don't you post the code here?

You may force the title to be a string by adding:
title += '';
before the line
title = title.replace(htmlstripre, '');

Again, I don't understand your point. The previous line sets it, does it not?

What about the situation where col.title is parsed as a number?

I didn't think it could, but that is fair. It certainly doesn't hurt. title.replace appears here and here
A simple function like:
stringreplace = function(input, pattern, replace) {
  return (""+(input === null || input === undefined ? "" : input) ).replace(pattern.replace);
}

And then replace each instance of title = title.replace(htmlstripre, ''); with title = stringreplace(title, htmlstripre, "") should do it.
Open a PR for it, please.


Can you please update it because multi step problems aint working

it's been long looks like no one will fix it

Project has been deprecated, refer to README for updates.


[python bindings] can't import eigenpy and Quaternion within the same script

Hi, with the latest version of Pinocchio, the following two lines won't work:
import eigenpy;
from pinocchio import Quaternion;
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-cac19b39cca1> in <module>()
----> 1 from pinocchio import Quaternion

ImportError: cannot import name Quaternion

Conversely, the other way around things seem fine. This is not high priority.
Thanks
Steve

Quaternion is in eigenpy, isn't it ?
In [1]: import eigenpy

In [2]: eigenpy.Quaternion
Out[2]: eigenpy.Quaternion

It is, however the import is not mine, but comes from a file that I include.
If your answer is the answer to the issue, then I guess it means Quaternion must be removed from pinocchio don't you think ?

No, sorry, I misunderstood the question. Yes this is an issue, and yes this is minor :)

I think the bug is related to EigenPy instead. It is due to the default exposition of Quaternion by the two applications. So if eigenpy is loaded first, then pinocchio will not expose it and the class Quaternion won't appear in the namespace of Pinocchio.
Thanks @stonneau for raising this bug.

Solved by #817


IA-1646 add filter on ou type on ou search in /api/profiles

Add a dropdown menu in admin/user to filter user by org units type.
Self proof reading checklist

[x] Did I use eslint and black formatters
[x] Is my code clear enough and well documented
[x] Are my typescript files well typed
[x] Are there enough tests

How to test
https://user-images.githubusercontent.com/45785235/205063915-6ae6a282-784e-4265-aa46-15d206d43abc.mov

Also if you can avoid to add "/" in your branch name please, Github is interpreting it a folder/section:


Decouple proxy from pilot agent

@andraxylia commented on Fri Jul 28 2017
Right now, proxy and agent are bundled in the same container. Their lifecycle cannot be controller by k8s native, it's the agent controlling the proxy process, and it's flaky.
Proxy should be the same container in ingress, sidecar or middle proxy.
This will also simplify the build.

@kyessenov commented on Fri Jul 28 2017

k8s cannot coordinate envoy restarts (passing TCP sockets between restarts)

Ingress controller is separated from proxy. Discovery service implements k8s ingress controller.

Done already.

@andraxylia commented on Fri Jul 28 2017
Does pilot agent still triggers envoy restart even after LDS? In what scenarios?

@andraxylia commented on Fri Jul 28 2017
Ingress controller is not separate from the proxy, it runs in the same container. Does ingress controller need to restart the envoy process also? If yes, in what scenarios?

@kyessenov commented on Fri Jul 28 2017
I feel that there is some confusion here.
Yes, pilot agent is triggering restarts since LDS does not cover TLS contexts (yet). We can't do TLS cert rotation without it at the moment. Lyft uses a similar set-up running a little agent next to the proxy.
Ingress controller is separate from the proxy. Discovery service computes the ingress routes and then sends them to the proxy. Again, TLS changes require restarts.
If we never need to restart Envoy then there is simply no need for the agent. If we do need to restart Envoy then it has to be in the same container to coordinate socket exchange.
Not sure what the point of this issue.

@andraxylia commented on Fri Jul 28 2017
I thought we no longer need to restart Envoy. If this will be true in the future, let's keep this issue open and re-visit it for 0.3 release.
Envoy restart for TLS changes has been brought up here:
lyft/envoy#95
@PiotrSikora @myidpt @wattli are there any chances Envoy will support TLS certificates rotation without requiring restart?

@andraxylia commented on Fri Jul 28 2017
Also here:
lyft/envoy#1194

@andraxylia commented on Fri Jul 28 2017
So the ingress controller is bundled with the pilot discovery?

@rshriram commented on Sun Jul 30 2017
The point is there will always be parts of Envoy config that cannot be
loaded through any DS service. We have decided to do this explicitly in
Envoy for global settings, for the sake of stability and simplicity of code
base.
And to be able to change these without disruption, we need hot restarts and
thus an in-container agent.
@kyessenov keep me honest here..
I don't think our agent has been flaky. Numerous people have run the demos
where tasks involved reloads (fault filters for example). With the
introduction of LDS we have eliminated 95% of frequent restarts which might
have caused some race conditions in Envoy in the past. These race
conditions occurred at listener level iirc, and LDS circumvents these
issues completely.
What remains to be seen is whether we encounter instability for the global
configs that need infrequent hot restarts.
On Sat, Jul 29, 2017 at 1:57 AM Andra Cismaru<EMAIL_ADDRESS>wrote:

So the ingress controller is bundled with the pilot discovery?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/pilot/issues/968#issuecomment-318807016, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AH0qd6dv4hc_vP6XozpFs833WB0KHgrgks5sSsnfgaJpZM4OnFAl
.

--
~shriram

@andraxylia commented on Sun Jul 30 2017
I do not believe in the "always" in the above sentence. Let's just wait from input from the people working in envoy on that.
And the restart has been flaky, pilot e2e routing tests fail randomly when run independently. It's good LDS will solve 95% of the problem, but even with LDS I see random failures. I am looking for an architecture where we solve the problem completely. If it is possible, let's do it.
In early February I asked Kuat about these frequent restarts and why the communication between agent and envoy is done via config, and in general, why is this so complicated, and the answer I got was "this is what it is, all proxies work this way, there is nothing we can do". We could do xDS little time after. So I am not buying the "always" unless there is a technical impossibility or a solid reason for not being able to do it.

we have sufficiently decoupled the agent from envoy and the only thing it does is restart on certs, which will also go away when SDS kicks in. Closing this issue for the moment


[1.2] Update release notes for 1.2 release (#289)

Signed-off-by: Joshua Li<EMAIL_ADDRESS>Description
Backport #289
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #298 (92edadd) into 1.2 (65f449b) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##                1.2     #298   +/-   ##
=========================================
  Coverage     99.90%   99.90%
  Complexity     2687     2687
=========================================
  Files           256      256
  Lines          6524     6524
  Branches        420      420
=========================================
  Hits           6518     6518
  Misses            5        5
  Partials          1        1

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 65f449b...92edadd. Read the comment docs.


Annotates template source code

We still need to discuss if we want to talk about "stateless" component
in the first part. Any suggestions?
Closes #5.

Thank you!
Let's see if we can come up with a nice intro to stateless components later - I'll see if I can give it a shot shortly.


Tasks need to be done

[x]  Build correct topology.
[x]  Write Proposal.
[x]  Write Documentation of Github README.
[x]  Check whether inbuild DHCP is there in switch we are using.
[x]  Install Flowvisor on at least one system.
[x]  Implement Network Slicing on the topology.
[x] Check what all can be done with the topology we have made.
[x] Update the problems and it's possibilities on the google doc.
[x] Create an entry in local table without actually adding a virtual interface and see ping is showing host is active

All these tasks are done.


hub.docker.com is returning 404 for every manifest

Example: https://hub.docker.com/v2/ubuntu/manifests/xenial
We have others that are also not working

Please open a ticket in https://github.com/docker/hub-feedback
Distribution repository was donated to CNCF, hence is no longer owned by Docker.


fix Callable issue on python 3.10

Operating system tested : Windows 10
Python version : 3.10.1
Issue : AttributeError: module "collections" has no attribute "Callable"
Fix : replace collections.Callable with collections.abc.Callable
Fix reason : https://github.com/pyreadline/pyreadline/issues/65#issue-690591486

Hi @AnshumanFauzdar thank you for the PR. We've fixed the issue.

Thanks @mmajchrzycki !
It would have been awesome if my PR was merged 😆

Me also, but our repositories with public firmware are exported from our internal codebase.

Thank you @mmajchrzycki
Happy to contribute in open source :)


'isCancelled' is getting always true from 'loginWithPermissions' method in android devices

🐛 Bug Report
when trying to login with Facebook "User canceled the login process"  error always gets in android only.
------------ 'isCancelled' is getting always true from 'loginWithPermissions' method ---------------
To Reproduce

Logout from Facebook
Try to login with Facebook into App

Expected Behavior
Need to Login Successfully with Facebook in android.
Code Example
// Attempt login with permissions
const result = await LoginManager.logInWithPermissions([
'public_profile',
'email',
]);
if (result.isCancelled) {
contextData.setisGlobalLoading(false);
console.log('User cancelled the login process');
return;
}
Environment
Android Devices (API Level above 30) (Android OS 11)

This is what was causing that for me: https://developers.facebook.com/blog/post/2021/06/28/deprecating-support-fb-login-authentication-android-embedded-browsers/

@mikehardy No the library is fine, it's an older app that was being updated and we needed to add the Custom Tabs intent.

@rakeshv1108 closing this in the absence of a reproduction then, likely cause is a need to forward port your app per https://developers.facebook.com/docs/facebook-login/android/deprecating-webviews


add FAQ

closes #480

added some stuff from roadmap meeting this morning

Maybe other FAQ to add:

Do I need a GPU
Does this work in Qt blah blah, link to: https://github.com/fastplotlib/fastplotlib#supported-frameworks and https://fastplotlib.readthedocs.io/en/latest/user_guide/guide.html#using-fastplotlib-interactively


about frame shift setting

Hello, How do I set the frame shift parameter? thx

Option -e. See
https://github.com/google/REAPER/blob/a3926d3c256bcdc500e7b524ebed56c05a5fbc3a/epoch_tracker_main.cc#L57
El jue., 29 ago. 2019 a las 3:35, Meng Ge<EMAIL_ADDRESS>escribió:

Hello, How do I set the frame shift parameter? thx
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/REAPER/issues/20?email_source=notifications&email_token=ABCWZILJV6MGMA2CDQZ7TBDQG535NA5CNFSM4IR64VZKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HID2WOQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABCWZIO36OMDF65OL747TRLQG535NANCNFSM4IR64VZA
.

--
Xavi.

Well, @gemengtju, this is exactly what I told you in https://github.com/r9y9/pyreaper/issues/9#issuecomment-526194932 ... :(


Cannot install ArchWSL

I used to have Ubuntu installed to WLS, but cannot install Arch WSL. I've gotten HRESULT:0x8000000d error. Either run with root or not, which is strange.

Please give me additional information:

Windows build version (output of ver command)
ArchWSL version

and Check these:

Is WSL fetuse enabled?
WSL instance can install on C: drive.
Do not extract to system directory(Program Files,etc...)
Does extracted folder has write permission?

Thanks for fast anwser!

Microsoft Windows [Version 10.0.17134.228]
Latest one (But I've to tried previouse one someday ago, with previous Windows build and got error, but cannot remember if it had similar error code)

WSL feature is enbaled. I currently use Ubuntu 18.04 image.
WSL is installed to C:/Apps/Arch and this folder has write permission. Even I make it read only the error is steel similar. So I gues the error happens befor any writing.

Ok. I think that there is no problem in your environment.
That HRESULT means E_ILLEGAL_STATE_CHANGE.
I first received a report of this error,I still don't know about it...

Windows 10 1803's WSL service is unstable.
It may not be working properly, please restart the service and retry...
in admin prompt:
sc stop LxssManager
sc start LxssManager

Restarting doesn't help. Will be waiting to Windows update, maybe it will help. Thanks for advices

Right click run as administrator seems to get past this same error here...

Of course, I've used admin mode to run this app. The problem in the specific version of Windows

Hello.
I have windows version 10.0.19042 and I am facing the same error. I have also tried with and without root.
Using: C:\Arch\rootfs.tar.gz
Installing...
ERROR:Installation Failed!
HRESULT:0x8000000d
Press any key to continue...
Is there any way to get more detailed logs?

@jorpilo This? https://answers.microsoft.com/en-us/windows/forum/apps_windows_10-winapps-appscat_tools/0x8000000d-ubuntu-installation-fails-with-error/dde92478-bcaf-41a1-a204-8cbf31273ca2

I performed the actions in the link and tried to run the installer with root but I still get the same error

@jorpilo Okay, then. I think the discussions should be guided here:
https://github.com/microsoft/WSL/issues/4084


Grid tutorial

Write a step by step tutorial for building the grid example from scratch.

Will be great if I can take this!

assigned to @cwkang1998 from onlydust


Doesn't work in sandbox

I have this set up in Process Builder and Flow to create a "Toast Event" but the message doesn't appear.
Here's a screenshot of my process builder showing how I entered the info

And a screenshot of the record page w/ the Toast Event component

I had the process builder also update another field when fired so I could make sure it was firing, and it does, so that's not the issue

Hi @pford1 where is the component embedded? Also, can you create a recording of all the components of the process builder + how you've setup toast on the page and share it's link? I can then have a look and maybe suggest a fix.

I just tried to recreate the problem and it now works. I must have done something strange. Thank you so much for this!


Update Exit.md with correct pre-sign command

Example used ./ethd keys pre-sign but I could not find that command, instead it looks to be ./ethd keys sign-exit

Thanks!


Subtabs not showing up

Hi,
Do subtabs work with rails 3.2 with ruby 1.9.3? It's not showing up for some reason.  I am also using bootstrap and it shows the down arrow next to the main tab, but I don't see any subtabs.
Thanks.

Hi,
I expect this to work.  Can you share the HTML that tabulous generates?  Also, can you share your tabulous config settings?
On Feb 24, 2012, at 12:59 AM, dickyblue wrote:

Hi,
Do subtabs work with rails 3.2 with ruby 1.9.3? It's not showing up for some reason.  I am also using bootstrap and it shows the down arrow next to the main tab, but I don't see any subtabs.
Thanks.

Reply to this email directly or view it on GitHub:
https://github.com/techiferous/tabulous/issues/13

Sure. The HTML looks correct but it isn't showing up for some reason.
CategoriesBasketball
  #----------------------------------------------------------------------------------------------------------------------------#
  #    TAB NAME                          |    DISPLAY TEXT      |    PATH                    |    VISIBLE?    |    ENABLED?    #
  #----------------------------------------------------------------------------------------------------------------------------#
  [    :categories_tab                   ,    'Categories'      ,    categories_path    ,    true        ,    true        ],
  [    :bb_categories_subtab         ,    'Basketball'          ,   categories_path    ,    true        ,    true        ],

  #------------------------------------------------------------------------------#
  #    CONTROLLER    |    ACTION          |    TAB                               #
  #------------------------------------------------------------------------------#
  [    :categories        ,    :basketball           ,    :bb_categories_subtab         ],

config.active_tab_clickable = true
config.always_render_subtabs = false
config.when_action_has_no_tab = :render
config.html5 = false
config.css.scaffolding = false
config.bootstrap_style_subtabs = true

Try adding this:
config.tabs_ul_class = nav nav-pills # or whatever Bootstrap class you want
On Feb 24, 2012, at 11:04 AM, dickyblue wrote:

Sure. The HTML looks correct but it isn't showing up for some reason.
CategoriesBasketball
 #----------------------------------------------------------------------------------------------------------------------------#
 #    TAB NAME                          |    DISPLAY TEXT      |    PATH                    |    VISIBLE?    |    ENABLED?    #
 #----------------------------------------------------------------------------------------------------------------------------#
 [    :categories_tab                   ,    'Categories'      ,    categories_path    ,    true        ,    true        ],
 [    :bb_categories_subtab         ,    'Basketball'          ,   categories_path    ,    true        ,    true        ],

 #------------------------------------------------------------------------------#
 #    CONTROLLER    |    ACTION          |    TAB                               #
 #------------------------------------------------------------------------------#
 [    :categories        ,    :basketball           ,    :bb_categories_subtab         ],

config.active_tab_clickable = true
config.always_render_subtabs = false
config.when_action_has_no_tab = :render
config.html5 = false
config.css.scaffolding = false
config.bootstrap_style_subtabs = true

Reply to this email directly or view it on GitHub:
https://github.com/techiferous/tabulous/issues/13#issuecomment-4159358

No, that didn't do it unfort.  I get the following error when I add the line.
undefined local variable or method `nav' for main:Object
I also tried installing and uninstalling the gem.  Didn't work either.

Would you mind including the entire stack trace?  Or at least the parts of the stack trace around this error for some more context?
On Feb 24, 2012, at 2:08 PM, dickyblue wrote:

No, that didn't do it unfort.  I get the following error when I add the line.
undefined local variable or method `nav' for main:Object
I also tried installing and uninstalling the gem.  Didn't work either.

Reply to this email directly or view it on GitHub:
https://github.com/techiferous/tabulous/issues/13#issuecomment-4163028


Product is not getting added in shopping cart.

Product is not getting added in shopping cart. it shows Still no items in your cart

@sunilsherkhane  Do you still have this problem?


Security doc update suggestion

Hi Team, I would like to suggest the doc need to update the "should" word to be "MUST". It is impossible to select only auth app code during the SSPR setting at 1 method required page. There is not other option I believe. And, if 2 method required, the additional method will be required even selected both 2 auth app method.
If that is possible, could you please provide the design reason instead of only descript the design behavior. That could be better to explain why we have to select more method on the SSPR register settings.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 18640c6c-b52c-84e3-59d8-90f2a663cc6b
Version Independent ID: 77b249dc-4440-0334-31d7-b05d30f52657
Content: Self-service password reset deep dive - Azure Active Directory - Microsoft Entra
Content Source: articles/active-directory/authentication/concept-sspr-howitworks.md
Service: active-directory
Sub-service: authentication
GitHub Login: @Justinha
Microsoft Alias: justinha

@TonySh127-ms Thanks for your feedback. We will check and update the thread.


[AVM Module Issue]: Storage Account module does not return private endpoint network interface IDs

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Issue Type?
Feature Request
Module Name
avm/res/storage/storage-account
(Optional) Module Version
No response
Description
Storage Account module does not return private endpoint network interface IDs. I need to get IDs of network interfaces to enable diagnostic settings to make the deployment complaint with ISO 27001:2013 (policy: "Audit diagnostic setting for selected resource types")
(Optional) Correlation Id
No response

In PR I provided the e2e test results in my PR


[Windows & Linux] Headless mode (Server mode) Feature

I tried to create a runnable server cli that clients can connect to on my linux machine but couldn't because the application needed an OpenGL window to work not a Cli window.
these changes check if there is a window and will not render if there is not (only do server side calculations like physics and hit validation and anti cheat and what not)
And will depend on a CLI whenever you launch the app in headless mode
And will also still call update() on scene and nodes
Normal:

CLI server mode:
if you dont create a window like in here
AllocConsole();
    freopen("CONIN$", "r", stdin);
    freopen("CONOUT$", "w", stdout);
    freopen("CONOUT$", "w", stderr);

    CCLOG("Headless mode (Server mode) Listening on port XXXXX");

    // initialize director
    auto director = Director::getInstance();
    auto glview   = director->getOpenGLView();
    if (!glview)
    {
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC) || \
    (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)
        //glview = GLViewImpl::createWithRect("HelloCpp", cocos2d::Rect(0, 0, designResolutionSize.width, designResolutionSize.height));
#else
        glview = GLViewImpl::create("HelloCpp");
#endif
    }
....

then the application wont crash but just show a cute little server mode window because of the AllocConsole() command and without an OpenGL window

Of course these changes only work on windows and linux and were tested

Why needs this feature as game engine, just create simple console app for server maybe better

But then how can you make a robust game server that handles anti cheat and calculates physics accurately?

Write game logic as shared module invoke by client & server

But then it becomes harder to maintain while you can just compile once and work as client or server on a single executables

@rh101 What do you think about this feature?

My opinion regarding this is that this game engine is intended for client devices, and adding functionality like this can create complexity and possible sources of problems (@DelinWorks I'm not implying that your changes cause these things).
@DelinWorks Also, as you've discovered, nothing prevents you from modifying the code to do anything you want with it, but this is a very specific use-case, where the changes are unlikely to have any use for other users of this engine, so it's best to keep this out of this repository, and keep it in your own fork/branch.

But then it becomes harder to maintain while you can just compile once and work as client or server on a single executable

Merging those changes with the root project means transferring the maintenance over to the maintainers here for functionality that is unlikely to ever be used by anyone else.  Again, this functionality is very specific to how you want to do things, so the responsibility lies with you to maintain your own version of it.
On a side note, from what I've worked on in the past, the game engine is not put on the server, but rather a more specialized and considerably more efficient server application is used to handle such functionality.  Just because something seems convenient, it doesn't mean that it's the right thing to do.

Yeah you're right, but since I'm changing my own fork to contain my code how can github know that these changes relate to me and not the original repo when I do fetch upstrem?

Yeah you're right, but since I'm changing my own fork to contain my code how can github know that these changes relate to me and not the original repo when I do fetch upstrem?

Well, when you fork, it creates a references to the upstream repository.  You then create a branch that represents your custom version (never make the changes in the existing branches used by the upstream repository, for many reasons).  When you fetch the changes from the upstream repository, it will update the existing branches in your fork.  You then create a pull request between your updated branch and the custom branch you have.  If git detects no merge issues, then you simply do a merge, and your own custom changes won't be affected.  The only time git will complain is if the same section of code that you changed has been also updated in the upstream branch, and git can't automatically figure out how to merge it.  Does that make sense?

Yes, thanks for telling me!

Yes, thanks for telling me!

It may be beneficial to get to know more about git.  You can do all of this on your own local system too via the CLI or any other GUI, not just github.  In the end Github is a pretty wrapper around git (well, with the bonus of issue tracking).

also I think game engines like unity do this. you can specify a server mode build which would only run a cli,

I had no idea Unity supported that, and I just took a quick look at how it works. It simply detaches the renderer, but all scene objects still exist, and still use up both resources and processing power, which would result in added costs if you're running this using some cloud infrastructure where you pay for such things.

Yep, but you can decide if you want to use a server like this that still uses objects and calculations or you can use a simple echo server which would just send player data to each other (no calculations nor anti cheat protection)


refactor: add message to named exception

Why
ServiceUnavailableException has an argument to add a message

Ci fails. You can run the formatting script

@ppetzold I've created an issue to add husky and execute these commands also in the pre-commit stage.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Added capability to create requests

Request.create method and data structures
closes #156

Looks good to me!


Using embassy primitives in webworkers

Hey there! Its amazing that you also offer an async runtime with synchronization primitives etc. for the web. And it works well enough, if you use it from the main thread.
However I did notice that most primitives don't seem to work if you use them from a webworker.
That is a rather big ask, and if you think that is out of scope, that's fine, but I thought I'd at least let you know of this usecase.
I made a reproduction here.
I'm very much aware that it might not be possible to make all primitives work in webworkers.
However many WebAPIs are also available in webworkers, so I think that many primitives should be possible if one is a bit careful which concrete API they use.

What web APIs is Embassy calling that aren't available in webworkers?
embassy-sync uses "just standard async Rust", so I'd say the issue is not there. It's probably in the executor implementation for wasm which does call JS apis to get itself polled from the JS event loop.

@Dirbaio This is only the first thing that made errors and in all likelyhood theres going to be more issues when we solve this. But the wasm example breaks because of embassy-time, concretely because that is using wasm_timer to get a replacement for std::time::Instant (which isn't available on web).
It took me a bit, because of the crazy build system you've got there - understandable but takes getting used to - , and because liker errors with wasm_bindgen are... perhaps more problematic than these on the native platform. But I did just patch embassy-time(-driver) to use web-time instead, which.... partially worked.
Ticks on the main thread work as before, and on the worker thread I didn't get a panic, but the loop never repeated.
IDK if web-time is even supposed to work on web-workers, that would be what I look at now.

ah, it's embassy-time, makes sense :)
hope you figure it out, i'll gladly merge PRs that make things work in webworkers.

@Dirbaio thanks, I'll look around a bit. I've tried 2 other crates that implement std::time::Instant on the web, because that was the easiest check I came up with, all of them failed the same way web-time did.
My guess now, as to why they fail that way: They all use performance.now(). But that behaves differently on Web-Workers than it does on the main page. Their start time is different.
If that is the case, any solution would likely have to come with refactoring of perhaps not even explicitly wasm code.

NVM, instant fails differently. However that does also kindof support my theory, as it fails with 'earlier cannot be later than self.' , which is exactly what I'd expect with the API difference.
However, thinking about it I might after all be able to replace Instant minimally invasive in terms of common embassy code. However that would then require some synchronization of the start time of all instants, which might be a considerable overhead.

didn't let me go ;).
I  ended up basically vendoring in web_time, which in the case of enabled atomics (which is the case in my reproduction) does things as it should according to mdn to have correct absolute times. I vendored it it to access the underlying duration it saves in Instants, which I replaced the difference from zero_instant in driver_wasm for. Then I logged the start times in the poll method of the Timer future impl, along with some information whether its in a web worker or not.
The start times with that are roughly 40 ms apart, which fits with how they're logged. So the instant isnt the issue any longer, AFAICT.
If I were a betting man, I'd say that now the wakers don't work correctly now. Its probably doing something similar to the zero_instant, which would probably not work correctly in web workers.

I spend some more time on this.
AFAICT all the remaining code, incl. executors is fine. Current suspect is the browser implementation of performance.now() being buggy.
The pointer was when I actually read the documentation of web-time which pointed me to a section of MDN that describes that performance.now doesn't behave correctly on Linux when suspending.
I might at a later point test this on windows, to confirm it being the (only) issue (for sleeping at least).
As said, at least for the code I looked at, I also did not spot any other things that should not work on web workers, however with how complex this can evidently get I probably would not spot issues.
I would like to upstream some of the improvements, as that would get one at least closer to working executors on web workers. However, with the current behavior one at least gets a panic if one tries to use this on a web-worker, if I plainly add this it would fail silently. So I propose the following:

I add in a fix for the Instant::now panic on web workers.

I will add that as custom code based on the relevant code from web-time, because

web-time only synchronizes with performance.timeOrigin if atomics are enabled, which isnt the case by default on WASM. I don't see a good reason for that tbh, made an upstream issue to ensure I didnt overlook that
web-time saves instants as durations, which you guys do convert to ticks. But it doesn't expose that duration. Thus I need this as custom code.

that will remove the dependency on wasm-timer, which saw no update in 4 years.

I will add a check whether we're in a web worker to Executor::new on wasm, that will panic if thats the case, with reference to this issue, which will indirectly lead to the upstream issues for the browsers. Since executor is !Sync + !Send, that should avoid any issues.

@Dirbaio would you find that acceptable?

I will add a check whether we're in a web worker to Executor::new on wasm, that will panic if thats the case

i'm not sure I follow. If you fix embassy-time so it works in webworkers, what issue is left that warrants this?

It will probably work on Windows. But on all other browsers performance.now is broken, apparently this is caused by an unclear standard. These issues are ~3 years old, so there's hope that they might get fixed eventually, and if they do, then these changes will allow embassy to work in web workers on all platforms. Before that, I might put this check behind a feature flag, but enabling that flag by default would be a compatibility hazard, and in addition, these issues are very difficult to diagnose.

IMO that's acceptable, it's okay for time to "freeze" while suspended. I'd be OK with documenting in embassy-time that this behvaior is platform-dependent too.

If you've got a web-worker that's not busy looping or something it will be stuck forever on timer.sleep.

Besides, it's possible to use embassy-time without the executor, so making the executor do the check doesn't prevent the user from running into that.

Thats true...
I think I've got another location that would warn both more completely and more specifically if you do something "wrong". I'll have a PR ready soon, you can then give feedback on there.
I would still like to panic by default. With the location I have in mind it should only trigger on the problematic functions, and on some of these there was already a panic, the one that originally caused this issue.
I will place it behind a default feature, so that people can disable that if they think their usecase is fine. But I would really like to be proactive in warning about this.
Documentation should also be added on top, thats right too.

is the bug that performance.now() stops counting while suspended?

@Dirbaio oh, and yes. The PR is around btw.

If you've got a web-worker that's not busy looping or something it will be stuck forever on timer.sleep.

why? when you unsuspend the machine performance.now() would resume counting which would get things working again. Or am I misunderstanding the bug?

I've since tested this on Windows, and it still fails. So IDK, clearly this isn't the only issue, but I seem to be out out my depth.
@Dirbaio my theory was that this would lead to the future just re-suspending after it was woken. But on reconsideration, with the logs I had inserted, I should've been able to spot that behavior.
I'm not experienced with executors/implementing futures in rust at all, so IDK. whats really going on.

Anyone working on this might want to consider the notes here and might want to reference wasm-timer, which is a maintained fork of wasm-timer (the current provider for Instant in embassy on wasm, though nothing else) that also has abstractions similar to embassy-timer, and also works on webworkers.


CTRL + F and CTRL+ H mode switching issue

VSCode Version: 1.40.1
OS Version: Windows 8.1 Professional 64-bit

When in find mode you can press CTRL + H to enter replace mode. When in replace mode you cannot press CTRL + F to exit replace mode and re-enter find mode. This one way behavior is mildly annoying and inconsistent.
Steps to Reproduce:

Press CTRL + F to enter find mode
Press CTRL + H to enter replace mode
Press CTRL + F which does not exit replace mode and re-enter find mode... instead it stays in replace mode but focuses the find input.

Would I be able to attempt this fix?

Thanks for your feedback! This is as designed. Ctrl+F in Replace Mode moves focus into the Find Widget to allow you update the find query. It doesn't mean to quit replace mode.

thanks, but it's behavior is not consistent as explained in my original statement.


Fix concourse for kite

Codecov Report

Merging #92 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #92   +/-   ##
=======================================
  Coverage   36.34%   36.34%
=======================================
  Files          18       18
  Lines         476      476
=======================================
  Hits          173      173
  Misses        303      303

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 a71396c...983b6b8. Read the comment docs.