Patchwise training and inference

Some deepsensor users may have dense environmental data spanning large spatial areas. For example:

Problems with data spanning the whole globe
Problems with high-resolution satellite data

In such cases, training and inference with a ConvNP over the entire region of data may be computationally prohibitive. Currently, the TaskLoader will sample context and target data over the entire spatial region that data is available, which could produce OOM issues. So we need to support chopping the data into smaller spatial patches.
Training
Supporting patchwise ConvNP training should just be a matter of updating the TaskLoader to slice the context and target datasets spatially to subsetted squares/regions before proceeding with the TaskLoader.__call__ sampling functionality for generating Task objects. I believe this should be quite simple: for xarray data this would be ds.sel(x1=slice(...), x2=slice(...)), while for pandas data it would be df.loc[slice(...), slice(...)].
Inference
Inference using the high-level DeepSensorModel.predict interface also needs support for patching. This requires functionality to stitch all the individual patch predictions together.
For on-grid xarray prediction, one solution might be to call .predict recursively over all the patches and then concatenate the resulting xr.Datasets into single objects. This would require some kind of patchify bool to control this and avoid infinite recursion within the inner call. Open to other ideas!
However, model predictions could differ substantially from one side of a patch border to another (due to differing context information in each patch). We therefore may need to think about having overlapping patches and averaging model predictions somehow.
Patch size/location question
An open question is how the size and location of the patches should be determined. One option is to have the user pass the patch size in TaskLoader.__call__ or DeepSensorModel.predict, and then the location will be generated randomly unless further kwargs are passed to override this and specify exact x1/x2 spatial bounds.

Just to add, the Pangeo ML group has extensively worked in optimising n-dimensional arrays for AI/ML pipelines. I suggest you consider for the patch-wise training to build upon existing developments such as xbatcher and zen3geo python libraries.


State migrate

Bug description 🐞
I've configured the backend, and point to terrakube, terraform notify that need to migrate, evertythig is ok, but the state file don't appear in the bucket.
Steps to reproduce

Change the backend in the existent terraform stack
Run terraform init -migrate-state
The migrate terminate successfully
The log of terrakube-api show the state file base64 encoded
The state file does never appear in the bucket
Try run terraform plan and the remote excution says that will be create all stack again

Expected behavior
I think that state migrate needs to respected, to make the move from terraform cloud easier.
Example repository
No response
Anything else?
No response

Hello @klinux, thank you for reporting the issue.
I will have to check the terraform-cli code to see how it managed the "init -migrate-state" and implement the methods inside the terrakube api.
I think this is something we could include for the next terrakube version.

Quick update I was able to implement "terraform init -migrate-storage" using the "local storage" in this PR:
https://github.com/AzBuilder/terrakube/pull/371
I tested in GITPOD and it looks like it is working fine, I just had to implement the following method:
https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
I will add support for the other backend storage types like azure, gcp, aws and minio in the next couples of days.

Hello @klinux .
"terraform init -migrate-state" will be supported from version 2.13.0, we will release it by the end of this month.
It will support all the storage backends (azure, gcp, aws and minio)

Thank you @alfespa17 it's very important to us, we'll back to our tests when the version was released.

Yes, let me try here

Yes, it works like a charm now, thank you, sorry for the late message.

@alfespa17 Hi, I'm migrating a state from my projects, and the state is big,about 250KB, and I receiving this error:
terrakube-api-fdf7b58f6-d2d6c terrakube-api 2023-07-01 00:25:42.191 ERROR 1 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Illegal base64 character 2b] with root cause
terrakube-api-fdf7b58f6-d2d6c terrakube-api
terrakube-api-fdf7b58f6-d2d6c terrakube-api java.lang.IllegalArgumentException: Illegal base64 character 2b
terrakube-api-fdf7b58f6-d2d6c terrakube-api     at java.base/java.util.Base64$Decoder.decode0(Unknown Source) ~[na:na]
terrakube-api-fdf7b58f6-d2d6c terrakube-api     at java.base/java.util.Base64$Decoder.decode(Unknown Source) ~[na:na]
terrakube-api-fdf7b58f6-d2d6c terrakube-api     at java.base/java.util.Base64$Decoder.decode(Unknown Source) ~[na:na]
terrakube-api-fdf7b58f6-d2d6c terrakube-api     at org.terrakube.api.plugin.state.RemoteTfeService.createWorkspaceState(RemoteTfeService.java:265) ~[classes/:2.14.0]

Hello @klinux what terrakube version are you using? What terraform version? Helm chart version?

Hello @alfespa17
Sorry for the incomplete message:
Terrakube: 2.14.0
Terraform: 1.4.4
Helm chart: 3.5.1

@alfespa17
I created a custom image here, with RemoteTfeService.java in the line 265.
I create this patch:

And migration works.
Do you think that this makes sense?
Thank you

Hello @klinux
It looks like we were using the wrong decoder, would you like to send the PR with the fix So we can create a new image :)

I created https://github.com/AzBuilder/terrakube/pull/425
If it is util, please, let me know :)

Hello @klinux, thank you for your contribution
Here is the new release:
https://github.com/AzBuilder/terrakube/releases/tag/2.14.1


ContainerAppRegistryCredentials are not supported

Please provide us with the following information:

This issue is a: (mark with an x)

[ ] bug report -> please search issues before submitting
[ ] documentation issue or request
[ ] regression (a behavior that used to work and stopped in a new release)

Issue description
The following error message shows up when creating or updating Azure Container Apps Job from portal:
{'type':'https://tools.ietf.org/html/rfc7231#section-6.5.1','title':'One or more validation errors occurred.','status':400,'traceId':'00-e6cced3e00bf9140de82b9378e25550e-fb751963f71e0d42-01','errors':{'$[0]':['Unknown properties isUpdated, registryResourceId in Microsoft.ContainerApps.WebApi.Views.Version20230502Preview.ContainerAppRegistryCredentials are not supported']}}
This a report on behalf of customer though support ticket.
Customer is trying to use MSI in conjunction with ACR for authentication.
Steps to reproduce
Try to update registry settings for ACA Jobs from Azure portal.
Expected behavior [What you expected to happen.]
Container App Job should be update successfully from Azure Portal while updating registry settings.
Actual behavior [What actually happened.]
This issue is happening on API version 2023-05-02-Preview

This G-issue is similar to what was fixed here:
https://github.com/microsoft/azure-container-apps/issues/954
Let me know if the above roll out included fixes this new issue as well.

hi @junior-juarez-MSFT; I was able to successfully set different Container Apps registry credentials using the portal with and without Managed Identity.
The symptoms you describe correlate with the fix that was rolled out for #954.
Can you please verify that your scenario is working? Thanks!


Codecov reporting is broken

In the move to GitHub actions, we broke code coverage reporting to codecov.  GitHub Actions doesn't work magically with the Codecov service, and it requires a key:

We need to log into codecov with the yoshi-automation account, and create a user level token
I think we should store that token in secret manager
I think we should write a bot / cron that can access the secret, and use the GitHub API to set it on all relevant repositories (no org level secrets)
I think we need to add something like this to the GitHub Actions coverage script:
export CODECOV_TOKEN=$(curl -X GET https://codecov.io/api/pub/gh/$GITHUB_REPOSITORY/settings -H 'Authorization: token $CODECOV_API_KEY' | jq -r .repo.upload_token)

this has been addressed 👌


fix: Fix Copyright in license

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 58.32%. Comparing base (133cd82) to head (9223435).

Additional details and impacted files
@@            Coverage Diff            @@
##               main      #24   +/-   ##
=========================================
  Coverage     58.32%   58.32%
  Complexity      163      163
=========================================
  Files            32       32
  Lines          1646     1646
  Branches        269      269
=========================================
  Hits            960      960
  Misses          497      497
  Partials        189      189

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


Make the correctness of the bytecode in PyCode a safety invariant

A cherrypick of an olllld WIP branch. Sep 2020! Figured if we're gonna be eliding bounds checks in Frame now I may as well bring this back.

is there a way to create invalid code object?

Sure, assuming we fully modify Frame to assume that bytecode is correct you can do unsafe-less UB in pure rust code from just passing CodeObject { instructions: Box::new([Instruction::Pop]), ... } to a vm eval function. This separates CodeObject as a type-to-build-up-in-the-compiler from CodeObject as a type-to-consume-in-the-vm.

For now, only valid code seemed to be handled. is there a plan to support invalid code object? otherwise, I think we can keep the name CodeObject for valid objects.
I don't have a concrete idea, but we don't call a valid utf8 string type like ValidString, but it is just String. The responsibility to make sure the data valid is up to its creation function(checked) or the user(unchecked).
For the same point of view, If CodeObject requires validation, marking the creation functions as unsafe would be enough, instead of creating a wrapper type ValidCodeObject.

Maybe I'll rename what's now CodeObject to CodeObjectInner or something then, and ValidCodeObject to just CodeObject. Cause it's really bad ux to have a like 20-arg constructor, and also wouldn't be able to stop them from mutating the inside without changing everything to accessor methods and that would be a whole big code change.

I know, but I don't want to add any editing methods. If CodeObject is both the direct container of all the attributes (instructions, locations, etc) AND the valid-code-object type, then those attributes can't be public, and adding accessors would involve changing a bunch of code. Having a CodeObjectBuilder that has mutable accessors would similarly involve changing a lot of code, and code objects aren't even mutated, really - they're just constructed but with a ton of arguments.

I also don't think we actually need to implement any actual builder (unless we need it)
By naming them inside-out, we will use CodeObject with the most simple layout without having inner and Deref.
And maybe CodeObjectOuter or CodeObjectSomewhat as unsafe wrapper.
I know this is not an actual advantage. It is mostly a matter of feeling. That's why I thought this is good enough.


WIP: Blade error handling

Resolution for #41 . Needs reviewing. @bryanrite , in your opinion would it be ok to let promises time out on an error? That way I could move the error handling one level up. Otherwise, it needs to be handled case-by-case as in this initial implementation. This does already stop the client from progressing if the Relay setup fails.

Handling #36 chore too.

I'm not sure I understand what you're asking. Code examples?

@bryanrite this should be GTG, it handles errors in a clearer way and we should iterate on this further while we work on other features.


Documentation for Spring Stateless Minimal Example

Please provide a documentation like how to create a simple stateless! spring boot application using your libary.
This was a good start. But I've tried several mechanisms and always ended up using a stateful application with a session.
In spring 3.x I would add this line
       http.sessionManagement { sessionManagement: SessionManagementConfigurer<HttpSecurity?> ->             sessionManagement.sessionCreationPolicy(                 SessionCreationPolicy.STATELESS             )         }
And then set 'session-stateless: on' in my application.yml. But the system always tells me "too many redirects" even if the URL is correct. So I found it very hard without any nice examples of 'https://learn.microsoft.com' to understand what would be a minimal example. If I can run this example - I have a starting point.

Hi @deklaer , could you try with this sample?

Close the issue for long term inactivity


[9.x] Add query execution start timestamps to DB queryLog

Timestamp of query execution start should be part of queryLog information, so that this information could be retrieved in DB::getQueryLog().

Don't logs already have timestamps?

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Im good at spealling ok! >:/

this should click the chat bubble every 15 minutes so you don't get kicked by Roblox

In all honesty, I forgot I made this script.
Reviewed and tested changes, they work as expected.
Thanks for the PR, am merging.


Symlink app archive to apps instead of expanding

Summary

Skip expanding app archive and just symlink it to reduce image size.
Use Cases

Decreases image size to reduce costs to store, transfer, etc. the image.
Checklist

[X] I have viewed, signed, and submitted the Contributor License Agreement.
[X] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[X] I have added an integration test, if necessary.
[X] I have reviewed the styleguide for guidance on my code quality.
[X] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

@hibell - Hi, thanks for this! A couple of questions.

The present implementation looks to be extracting the WAR file but not deleting the WAR file. Would it be possible to just extract and delete the WAR file to keep space low? It'll be slightly more space as the WAR is compressed, but I can't imagine it's a huge difference.

I'm trying to recall why we were extracting the files. Presumably, Liberty has to extract the files before it can run the app so I think there might be a slight performance boost by extracting them in advance. However, I'm guessing it was probably a file system permissions fix. Again, if Liberty has to extract the app first, then it has to write those files somewhere. It won't be able to write to the app directly at runtime in a lot of cases (just to /tmp). Would Liberty still be able to run the app if it could only write to /tmp?


Question about sending BinaryIO of context and pubKey to another party

Hi, @boland25 @deanthomasson .
I have a question: when I generate a new context by reading from stringstream, these two context should be equal. But if I encrypt the vector using the oldContext.publickey, then decrypt it using the newContext.seckey. It failed due to different context.
Could you give me some suggestions?
context.writeTo(ss);
Context newContext = Context::readFrom(ss);
cout << "Context isEqual: " << (newContext == meta.data->context) << endl; // result:1

SecKey secret_key(newContext);
secret_key.GenSecKey();
addSome1DMatrices(secret_key);
const PubKey& public_key = secret_key;
const helib::EncryptedArray& newEa = newContext.getEA();

cout << "PublicKey isEqual: " << (public_key == meta.data->publicKey) << endl; // result:0

vector<long> inputtest(256);
    for (long i = 0; i< 256; i++) {
        inputtest[i] = i;
    }

// oldContext.publicKey
Ctxt inputCtxt(meta.data->publicKey);
ea.encrypt(inputCtxt, meta.data->publicKey, inputtest);

//newContext.seckey
vector<long> outputtest1;
newEa.decrypt(inputCtxt, secret_key, outputtest1); // error: cannot decrypt due to different context

Due to some reasons, write to file and read from file is not considered.

@DylanWangWQF I would have to try this out myself, but if I remember right, you can't mix and match contexts.  if you use the old context instead, does it work?

@boland25
Sure, If I use the same context, it will work;
But If I want to send the context, pk, sk to another trusted party, I have to write the context to stringstream and another party read from stringstream to get this context, right?
We can see that the new and old context is equal according to the code
cout << "Context isEqual: " << (newContext == meta.data->context) << endl; // result:1

So, it seems that the generated pk and sk using these new and old context cannot be used to encrypt and decrypt.

@boland25  @deanthomasson
I'm thinking of another question about alpine-based HElib. could you help me understand it?
HElib is usually built against GLIBC, while Alpine Linux is based on the MUSL C library.
And for fhe-toolkit-linux project, it shows that we can successfully run helib in the alpine container. Why? (I'm doing some experiments with HElib in MUSL-based environment).

@DylanWangWQF I have not dug deep enough into the Alpine docker implementation of it as that was done by another team member but its building off of cmake and using the gcc compiler.  There must be some sort of wrapper that is done under the hood that makes it happen, but I am not sure of this completely.
As for your bug, I have someone working on this to try and re-create it, and should have an answer to you shortly.  Thanks for your patience!

@boland25
Got it, looking forward to it!
Many thanks for your reply!

@DylanWangWQF can you please provide the source code that you were using where you ran into the issue so we can re-create?

Hi, @boland25
Here is the test code, I remove other codes: https://github.com/DylanWangWQF/hetest
It should return the context dismatch error.
For  the current version of HElib, we cannot do like this: new Context(m,p,r), new Seckey(*context), etc..So how should we manage the used memory after running the code?
Sry for my noise.

@DylanWangWQF thanks for sending that over.  I have someone working on re-creating your test.  Bear with us, as he is only on the project part time so will take a bit to get a response.  In regard to your last question, have you checked out the tutorial folder?  There are a few different tutorials in there that might help, and you can use HEContext like this.... shared_ptr<HeContext> hePtr = HelibContext::create(HELIB_CKKS_8192);. When you are done using it, its a shared_ptr so you can just delete the object or remove it once its out of scope.

@boland25
Many thanks for your reply!
Here is another example to help us understand the issue.
    Context* activeTContext;
    unique_ptr<SecKey> activeSecKey;
    unique_ptr<PubKey> activePubKey;

void test::testStruct(){
    unsigned long p = 127;
    // Cyclotomic polynomial - defines phi(m)
    unsigned long m = 12800;
    // Hensel lifting (default = 1)
    unsigned long r = 1;
    // Number of bits of the modulus chain
    unsigned long bits = 119;
    // Number of columns of Key-Switching matrix (default = 2 or 3)
    unsigned long c = 2;

    std::cout << "Initialising context object..." << std::endl;
    helib::Context context = helib::ContextBuilder<helib::BGV>()
                                .m(m)
                                .p(p)
                                .r(r)
                                .bits(bits)
                                .c(c)
                                .build();
    helib::SecKey secret_key(context);
    secret_key.GenSecKey();
    helib::addSome1DMatrices(secret_key);
    const helib::PubKey& public_key = secret_key;

    stringstream ss;
    context.writeTo(ss);

    activeTContext = Context::readPtrFrom(ss);
    activeTContext->printout();

    // new generated pk and sk
    activeSecKey = make_unique<SecKey>(*activeTContext);
    activeSecKey->GenSecKey();
    addSome1DMatrices(*activeSecKey);
    activePubKey = make_unique<PubKey>(*activeSecKey);

    encryptt(*activeTContext, *activePubKey, *activeSecKey); // this works
    //  encryptt(*activeTContext, *activePubKey, secret_key); fail due to context dismatch
// or  encryptt(*activeTContext, public_key, *activeSecKey);  fail due to context dismatch
}

void test::encryptt(const Context& con, const PubKey& pk, const SecKey& sk){
    vector<long> inputtest(256);
    for (long i = 0; i< 256; i++) {
        inputtest[i] = i % 2;
    }
    cout << inputtest << endl;

    Ctxt ct(pk);

    vector<long> outputtest;
    con.getEA().encrypt(ct, pk, inputtest);
    stringstream css;
    ct.writeTo(css);

    string s1 = css.str();
    uint8_t* c1 = (uint8_t*)s1.c_str();
    uint8_t* c2 = nullptr;
    stringstream ess;
    string s2 = string(c1, c1 + s1.size());
    ess << s2;
    Ctxt newct = Ctxt::readFrom(ess, pk);

    con.getEA().decrypt(newct, sk, outputtest);
    cout << outputtest << endl;
}


Packit downloads the latest tag from Github even if it was not released yet

What happened? What is the problem?
In case the upstream repo contains tags: 1, 2, 3, 4 and releases 1, 2 released, and 3, 4 have yet to be released. The packing downloads the latest tag.  In this example, version 4.  The expected behavior should be to download the latest release or provide the configurable option to allow downloading the latest tag.
The real issue can be found here:  created PR  based on packit yaml and the latest upstream release  while there is the latest tag
What did you expect to happen?
No response
Example URL(s)
No response
Steps to reproduce
1.
2.
3.

Workaround

[ ] There is an existing workaround that can be used until this issue is fixed.

Participation

[ ] I am willing to submit a pull request for this issue. (Packit team is happy to help!)

Hi, I think that we should probably define the expected behavior first.

pull-from-upstream should work on any git repository, but any doesn't satisfy the releases vs tags.

The other issue is with the linked PR:

Packit created a PR with the latest tag: 5.0.0b4
latest upstream release is: 5.0.0b2
Upstream monitoring has: 5.0.0b3

What would you expect to be chosen in this case?

From my point of view, it would make sense to be able to define whether to use the tag or the release.
In the linked issue, I would expect predictable behavior. If the action is triggered by upstream monitoring with version 5.0.0b3 then I would expect PR for version 5.0.0b3.

Sorry for late response, it got lost among the notifications… The thing is that retriggering (or triggering manually) can't be reproduced 1:1 (we don't save the events, and let's be honest, it doesn't really make much sense).
I think the best we could do is setting the behavior for

upstream release monitoring (right now we propose what we get; in this case I would probably recommend tinkering with the settings there to exclude the pre-releases)
manual trigger / retrigger (right now the latest »tag«)

hi @fila43 ! Is this still relevant for you?
As @mfocko explained above, the behaviour is different for syncing the release triggered by Upstream Release Monitoring and retriggering comment. With comment, we take the latest tag, but you can influence this behaviour by setting upstream_tag_include and upstream_tag_exclude (docs).
Another improvement could be to be able to specify the version you want to sync explicitly, e.g. running /packit pull-from-upstream 5.0.0b2. WDYT?

hi @fila43 ! Just a gentle ping, is this still relevant for you? (Also please have a look at my previous comment)

Closing for now, please reopen if still relevant.


Transitions way too slow

having the image fading in over the course of 2.5 seconds is way too slow. the perceived load time for the user would make this feel clunky. it would be better to make the transition sub 1s by default, or give an option to customise the transition time

Sorry for the late reply. The fadeIn transition is exactly as google intended it to be. But you can just override the transition via the imageStyle prop.
The default value is
transition: 'filterBrightness 2.5s cubic-bezier(0.4, 0.0, 0.2, 1), filterSaturate 3s cubic-bezier(0.4, 0.0, 0.2, 1), opacity 2s cubic-bezier(0.4, 0.0, 0.2, 1)'

Note that there are three different animations with three different durations.
Do you have a better idea on how we can expose this to make it more custom? I'm not a big fan of exposing three different props for each transition type

not sure where Google intended the motion speed to be 2.5 - 3s long but the speed specs suggest otherwise https://material.io/design/motion/speed.html

Maybe something like transitionDuration={{ brightness: 2500, saturation: 3, opacity: 2000 }}?


M-x add-file-local-variable is broken

If you don't enter a string, it errors out. This doesn't reproduce from emacs -Q with ivy-mode enabled, so it must be my fault.

Fixed, apparently.


Is "precache-updates" still being broadcasted?

I'm asking this here rather than on Stackoverflow as I'd love to to send a PR in case precache-updates is not there anymore
Library Affected:
workbox-sw
Browser & Platform:
all browsers.
Issue or Feature Request Description:
I saw in this previous issue #309 that precache-updates was being automatically broadcasted to the BroadcastChannel whenever the precache has been updated. However I can't find this anymore on master and I tried it and it doesn't work. Has it been removed? If yes, are there any plans to get it back? or maybe adding a configuration to broadcast it?
or could it be that there's a way to enable it but not documented yet, then I can submit a PR to web-fundamentals' workbox docs
Thanks!

Hello @jadjoubran!
This used to be the default behavior in v1/v2, but was removed as a default in v3.
We've got a section in the migration guide that provides the equivalent code:
workbox.precaching.addPlugins([
    new workbox.broadcastUpdate.Plugin('precache-updates')
]);

workbox.precaching.precacheAndRoute([...], {
  cleanUrls: false,
  directoryIndex: 'index.html',
  ignoreUrlParametersMatching: [/^utm_/],
});

For me (using 3.6.1), this still doesn't seem to work.
This is my entire worker script (with the array attribute of precacheAndRoute being populated of course:
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.6.1/workbox-sw.js');

if (workbox) {
	workbox.precaching.addPlugins([
	    new workbox.broadcastUpdate.Plugin('precache-updates')
	]);

	workbox.precaching.precacheAndRoute([]);
}

When a file is updated, I can see that in the app page's console output:
(workbox) Precaching 1 file. 47 files are already cached.

But I don't receive a broadcast message. The code in the app script looks like this:
const updateChannel = new window.BroadcastChannel('precache-updates');
console.log(updateChannel);
updateChannel.addEventListener('message', (event) => {
	console.log(event);
});

I get the console log with the updateChannel object, but the message event is never fired!
If I go to chrome://serviceworker-internals/ and click the inspect button for the worker in question, I can get the message event triggered by calling
workbox.broadcastUpdate.broadcastUpdate(new BroadcastChannel('precache-updates'), 'foo','bar','baz')

in the service worker console, so the communication between the worker and the client window evidently works, but apparently workbox never broadcasts the update! How can I get this to work? Is it a bug in workbox or am I missing something?

@Connum it's probably better to create a new issue for this and if possible with a minimal reproduction use case

I'm also experiencing this - no notification of an update, despite registering the channel properly.  @Connum were you able to solve this?

I'm also experiencing this - no notification of an update, despite registering the channel properly. @Connum were you able to solve this?

Unfortunally not, but I'm currently not working on the project where this occured.


Crash when trying moor_shared demo on my android device

I thought the issue is related to Moor_Shared project, but they suggest me to contact you in this bug. By the way, please check if this is related to Flutter?

I got the answer, see this.


feat: mempool v1 records which peer it has sent the tx

This PR records that we have sent the peer the transaction to avoid doing it a second time

[question] do we want to do something similar for the CAT pool around here?

We do do it. See https://github.com/celestiaorg/celestia-core/blob/86e67b726f017e6c05c4a627c137ba78667dbb66/mempool/cat/reactor.go#L289


[FEATURE] - upgraded elector example using gocron-v2

Is your feature request related to a problem? Please describe
I was struggling to find a example for using gocron-etcd-elector, never understood how to make it work with multiple instances of an application.
Describe the solution you'd like
I have written a new and better example which shows the use of replica instances and etcd cluster, and a live view of leader election in docker logs like in a production environment.
Describe alternatives you've considered
NA
Additional context
NA

I have written a new and better example which shows the use of replica instances and etcd cluster, and a live view of leader election in docker logs like in a production environment.

@seriouspoop could you share that example?

@JohnRoesler yeah here you go, https://github.com/seriouspoop/gocron-etcd-elector-example

Would you like to PR this in to the example directory? Or reference it by link to your repo? Happy to have a solid example included, and happy to include it however you'd like


GC is not ready

I got a "GC is not ready" error when i use csgo.player.requestProfile(AccountID). What should I do?

Make sure that you are running CSGO.

Make sure that you are running CSGO.

Make sure that you are running CSGO.

Make sure that you are running CSGO.

i see, but how can I run it?

Make sure that you are running CSGO.

Make sure that you are running CSGO.

i see, but how can I run it?

Do you use play()? If not, remember to use start() after you have started CSGO from somewhere else within your code. That will start the GC ClientHello and when the GC is ready, the event ready will be triggeret.

Do you use play()? If not, remember to use start() after you have started CSGO from somewhere else within your code. That will start the GC ClientHello and when the GC is ready, the event ready will be triggeret.

Do you use play()? If not, remember to use start() after you have started CSGO from somewhere else within your code. That will start the GC ClientHello and when the GC is ready, the event ready will be triggeret.

ok, so i need to listen to "ready" event, and listen to "playerProfile" event in the "ready" event listener?

Do you use play()? If not, remember to use start() after you have started CSGO from somewhere else within your code. That will start the GC ClientHello and when the GC is ready, the event ready will be triggeret.

ok, so i need to listen to "ready" event, and listen to "playerProfile" event in the "ready" event listener?

No.
You can use the ready event to know when the GC is ready and when the GC is ready then you can send other commands. So when the GC is ready, you can for eksample send the playerProfile command.
Remember to read the README.md file and that you need to use node-steam not node-csgo else you will have to fake objects.

No.
You can use the ready event to know when the GC is ready and when the GC is ready then you can send other commands. So when the GC is ready, you can for eksample send the playerProfile command.
Remember to read the README.md file and that you need to use node-steam not node-csgo else you will have to fake objects.

No.
You can use the ready event to know when the GC is ready and when the GC is ready then you can send other commands. So when the GC is ready, you can for eksample send the playerProfile command.
Remember to read the README.md file and that you need to use node-steam not node-csgo else you will have to fake objects.

var Steam = require('steam'),
    steamClient = new Steam.SteamClient(),
    steamUser = new Steam.SteamUser(steamClient),
    csgo = require('csgocoordinator');
	var steamGC = new Steam.SteamGameCoordinator(steamClient, 730);
	var CSGO = new csgo(steamUser, steamGC);

	steamClient.connect();
	steamClient.on('connected',function() {
		steamUser.logOn({
			account_name: '',
			password: ''
		});
	});

	steamClient.on('logOnResponse', function(response) {
		if (response.eresult == Steam.EResult.OK) {
			console.log("Steam logged in.");
			CSGO.play();
			CSGO.start();
		}
	});

	CSGO.on('ready', (ready) => {
		if (ready) {
			console.log("CSGO Coordinator is ready.");
			CSGO.player.requestProfile(1084512653);
		}
	});

	CSGO.on('playerProfile',(profile) => {
		console.log('123');
	});

ok, this is my code. I dont know why, the ready event is never trigger.

No.
You can use the ready event to know when the GC is ready and when the GC is ready then you can send other commands. So when the GC is ready, you can for eksample send the playerProfile command.
Remember to read the README.md file and that you need to use node-steam not node-csgo else you will have to fake objects.

var Steam = require('steam'),
    steamClient = new Steam.SteamClient(),
    steamUser = new Steam.SteamUser(steamClient),
    csgo = require('csgocoordinator');
	var steamGC = new Steam.SteamGameCoordinator(steamClient, 730);
	var CSGO = new csgo(steamUser, steamGC);

	steamClient.connect();
	steamClient.on('connected',function() {
		steamUser.logOn({
			account_name: '',
			password: ''
		});
	});

	steamClient.on('logOnResponse', function(response) {
		if (response.eresult == Steam.EResult.OK) {
			console.log("Steam logged in.");
			CSGO.play();
			CSGO.start();
		}
	});

	CSGO.on('ready', (ready) => {
		if (ready) {
			console.log("CSGO Coordinator is ready.");
			CSGO.player.requestProfile(1084512653);
		}
	});

	CSGO.on('playerProfile',(profile) => {
		console.log('123');
	});

ok, this is my code. I dont know why, the ready event is never trigger.

Sorry dude, but I don't have time for that at the moment and I have just run my test script which steel work fine, so there should not be any issues with the module.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { 	console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

Sorry dude, but I don't have time for that at the moment and I have just run my test script which steel work fine, so there should not be any issues with the module.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { 	console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

Sorry dude, but I don't have time for that at the moment and I have just run my test script which steel work fine, so there should not be any issues with the module.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

really thanks, i guess maybe the event listener go something wrong, because the debug event listener doesn't work too, but thanks for help

Sorry dude, but I don't have time for that at the moment and I have just run my test script which steel work fine, so there should not be any issues with the module.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

really thanks, i guess maybe the event listener go something wrong, because the debug event listener doesn't work too, but thanks for help

Sorry dude, but I don't have time for that at the moment and I have just run my test script which steel work fine, so there should not be any issues with the module.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

hey, what's your node version?

Sorry dude, but I don't have time for that at the moment and I have just run my test script which steel work fine, so there should not be any issues with the module.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

hey, what's your node version?

Sorry dude, but I don't have time for that at the moment and I have just run my test script which steel work fine, so there should not be any issues with the module.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

i think i know the problem，my steamGameCoorinator never accept the clienthello

Sorry dude, but I don't have time for that at the moment and I have just run my test script which steel work fine, so there should not be any issues with the module.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

i think i know the problem，my steamGameCoorinator never accept the clienthello

Sorry dude, but I don't have time for that at the moment and I have just run my test script which steel work fine, so there should not be any issues with the module.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

ok, i solved this problem.
Try using the debug tool:
var CSGO = new csgo(steamUser, steamGC, true);
CSGO.on('debug', function(message) { console.log("DEBUG:", message); });
You don't need to use CSGO.start() when you use CSGO.play(). CSGO.play() automatically run start();
You can also try and run the example script with your account. To see if that make any difference in your problem.

ok, i solved this problem.


port relevant changes from doc-gen

@bryangingechen I just noticed that the website build had gotten a lot slower and traced it back here. Markdown rendering goes from <1 sec to the better part of a minute with this commit. Was that expected? I guess it's expensive to check for urls everywhere?
It's not important, the speed of the website build doesn't matter. I was just surprised.

Oh, whoops, I guess I should have noticed. If the build gets too slow we can take this feature out. It looks like it maybe slowed down doc-gen by about 8 minutes as well.


common .a lib build dependency

https://github.com/laoshanxi/app-manager/commit/cf5de3616f6af9726b1c9402565be8c15d891ee9


Fix display of “Electron” title rather than “AboutCode Manager” on Darwin/OS X

The custom menu is now displayed on Darwin/OS X in development mode but the menu displays the default Electron title rather than AboutCode Manager.  This problem is not encountered on Windows or Linux, both of which now display the custom menu properly in development mode.

Is this only in development or also when you install?
If is this in development only, let's close this. Closing!


No way to spread tasks evenly on a cluster?

Just raising this because I dont believe there is a way to spread task instances evenly on a cluster of hosts.
Reading through the issues I think there is quite a good awareness that GROUP_BY doesnt work at all well - and you can end up with horribly skewed task-instances across a cluster because at the point of scheduling the new task, marathon is only aware of existing offers from mesos for a subsection of nodes in a cluster.
The recommended way seems to be to supply GROUP_BY constraint with a number, indicating the size of your pool of (e.g. hosts) to try and spread the task-instances evenly over only that pre-defined number.
However this also doesnt work in an autoscaling group, when you dont know the number of available hosts in advance, and even when you set it to the number of hosts at time t, given that may change, marathon wont actively reschedule the task-instances to allow the autoscaling nature of the hosts.
UNIQUE is also not available as a solution as this automatically precludes having multiple task-instances on a host.
To be clear, the solution I am looking for is:

I have 8 hosts, and wish to run 14 instances of a task - marathon schedules as 6 hosts with 2 task-instances and 2 hosts with 1 task-instances. (6_2 + 2_1)
I later lose a host because of system failure - marathon schedules as 7 hosts with 2 task-instances
The host comes back up and marathon reschedules as 6 hosts with 2 task-instances and 2 hosts with 1 task-instance as originally.
A further host is added to the cluster and marathon reschedules as 5 hosts with 2 task-instances and 4 hosts with 1 task-instance.

I would have thought this is the most common desired situation of all - "Please evenly distribute n instances of a task on m hosts at all times".
Is there no way to do this in marathon, or have I missed something obvious? Many thanks

Not sure if Marathon could benefit from utilizing something like Netflix's Fenzo project for this: https://github.com/Netflix/Fenzo
This is something my team has been looking to integrate with our own scheduler in the future but if Marathon could support it out of the box that would be amazing.

Finding docs on how GROUP_BY actually works seems pretty impossible, so for the benefit of others, after reading the scala code, and also lots of experiments, here is how I believe the GROUP_BY scheduling algorithm works. Please correct if this is not the case, but this is my experience. If this is as designed, I think it would be really helpful to folks to have this as part of the documentation, because otherwise there's a lot of second-guessing, and scheduling is quite an important thing to understand.
For this example, suppose I have 6 unique hosts (host1..host6), and
I schedule a task with a hostname GROUP_BY clause of 4. I desire the
task to have 10 instances. The documentation, the API and the code confusingly intermingle "instances" and "tasks", so I will refer to them below as "tasks" but they are really instances of the same task:
First of all, the hosts are empty, so look like this:
[host1]   [host2]   [host3]   [host4]   [host5]   [host6]

host1 offers resources. marathon has not seen this node before, so
automatically says yes (marathon prefers to expand the group if
possible at all times)
[host1]   [host2]   [host3]   [host4]   [host5]   [host6]
task1

host1 offers resources again. This time marathon has seen the node
before, so asks the question: do I have min 4 different hosts
across all my tasks? The answer is no, so it refuses the offer
host2 offers resources. Marathon automatically says yes
[host1]   [host2]   [host3]   [host4]   [host5]   [host6]
task1     task2

host3 offers resources. host4 offers resources, both yes.
[host1]   [host2]   [host3]   [host4]   [host5]   [host6]
task1     task2     task3     task4

now if host5 offers resources, marathon would automatically
accept by the "prefer to expand the cluster" rule. So instead
lets consider that host1 offers resources next.
Marathon now asks 2 questions: Do I have min 4 different hosts
across all my tasks? (YES). Does this host have the minimum
tasks running across all the known hosts for which at least
one task is running? (YES). As both are yes, it schedules task5
[host1]   [host2]   [host3]   [host4]   [host5]   [host6]
task1     task2     task3     task4
task5

if host1 now offers resources again, marathon would ask the
same questions and reply YES,NO - so would not allow the
scheduling onto host1
if host2|host3|host4 offered resources, marathon would ask
the same questions and reply YES,YES - so would allow the
scheduling onto these hosts
if host5|host6 offered resources, remember marathon always
allows the expansion of the cluster so would allow the
scheduling onto these hosts
suppose host5 and host6 still dont offer yet, so we continue
with the next 3 tasks in no particular order:
[host1]   [host2]   [host3]   [host4]   [host5]   [host6]
task1     task2     task3     task4
task5     task8     task6     task7

So far, nice and evenly balanced.
host3 now offers resources, and the answer is YES,YES for
task9
[host1]   [host2]   [host3]   [host4]   [host5]   [host6]
task1     task2     task3     task4
task5     task8     task6     task7
                    task9

Still evenly balanced, however finally host5 offers
resources. As this node has not been seen before,
marathon automatically answers yes:
[host1]   [host2]   [host3]   [host4]   [host5]   [host6]
task1     task2     task3     task4     task10
task5     task8     task6     task7
                    task9

Now we have an unbalanced cluster, but it does fulfil the
constraint that GROUP_BY 4 - i.e. we have at least 4
hostgroups at all times.
If there was a task11, the ONLY two hosts that would allow
it to be scheduled are host5 and host6, because either an
unknown host or a host which contains the minimum number of
running tasks can run task11.
If host1,host2,host3,host4 have lots of free room to run task11
but host5 and host6 cannot because they are running other
tasks and have no resources with which to make offers,
task11 will never be scheduled (FAIL 1)
Suppose now, host5, host3 and host6 fail/die. In this case
there should be 10 running tasks, but only 6 are running
[host1]   [host2]   [xxxxx]   [host4]   [xxxxx]   [xxxxx]
task1     task2     -----     task4     -----
task5     task8     -----     task7
                    -----

Although host1, host2 and host4 may continue to offer
resources, the base constraint requires that minimum 4
groups have to be running tasks, so all these offers will
be ignored. This results in 4 downed tasks that will not
be rescheduled until another host makes offers. (FAIL 2)
Suppose host6 comes back online. Now there are min 4
hosts which satisfies the constraint, so they fill up
like this>
[host1]   [host2]   [xxxxx]   [host4]   [xxxxx]   [host6]
task1     task2     -----     task4     -----     task3
task5     task8     -----     task7               task6
                    -----

At this point any of host1,host2,host4,host6 can offer
and at least one of (task9,task10) will run on (host1,
host2,host4). Consider that before host6 came back
online, marathon would refuse to run any more tasks
on (host1,host2,host4), but now it does.
From my reading of the scheduling code/algorithm, I
believe this to be the best explanation of what happens
behind the scenes with a GROUP_BY clause. As you can see
from the above examples, it leads to at least 2
suboptimal situations.

@gtmtech thanks a lot for taking the time writing this up, this is confusing for us as well.

Wow, thanks for the write-up @gtmtech!
There's more discussion of the original requirement in this ticket: #846

Marked this as a dupe of #846 but leaving it open as a ticket to fold @gtmtech's writeup into our docs.

@philipnrmn Are you certain this ticket is a duplicate? From my understanding, #846 is about running one instance of an application on every slave; that is, if you have x slaves, you always want x instances running, thus making the scaling factor irrelevant. Conversely, #3220 is about even distribution of an application's tasks on all slaves, where the number of application tasks can be smaller, equal, or higher than the number of slaves.

@philipnrmn I don't think this is a duplicate of #846, the docs should definitely be improved for the GROUP_BY clause if that is in fact what it does.

I guess that's fair, it's not exactly the same functionality.

The current grouping algorithm of tasks on a cluster isn't too optimal. Consider a situation in which I have a cluster that is spread across 3 availability zones, and I want to run application with 12 instances spread evenly on each zone. So I use az:GROUP_BY:3 (az - my custom attribute) constraint and everything spreads fine - then one zone goes down and the problems begin. I lost 4 instances of my application, but ok, I still have a quorum so the Marathon will try to keep alive the remaining 8. So after a while 2 instances of my app in the remaining zone goes down (but ok, Marathon should try to recover them). But then comes the GROUP_BY constraint that is also applied to recovery algorithm and it forces the starting of the new instances in the unavailable zone. Maybe the GROUP_BY algorithm shouldn't sequentially accept offers only with different grouped values, but instead it should know how many offers with the same attribute value it can accept, and accept them as they come, so at least Marathon will be able to keep my remaining 8 instances healthy.

How about introducing new constraint: SPREAD_ACROSS. It will have similar behavior to GROUP_BY with one difference. Instead of trying to launch task evenly on minimum numer of groups, it will launch tasks exactly on specified number of groups (or more). Consider following example (based on @gtmtech):

For this example, suppose I have 6 unique hosts (host1..host6), and
I schedule a task with a hostname SPREAD_ACROSS clause of 4. I desire the
task to have 10 instances.

First of all, the hosts are empty, so look like this:
 [host1]   [host2]   [host3]   [host4]   [host5]   [host6]

host1 offers resources. marathon has not seen this node before, so automatically says yes marathon prefers to expand the group if possible at all times)
 [host1]   [host2]   [host3]   [host4]   [host5]   [host6]
  task1

host1 offers resources again. This time marathon has seen the node before, so asks the question: How many tasks can I place on one host to still have ability to spread it across 4 nodes. The answer is: ⎡¹⁰⁄₄⎤ = 3 (or in more verbose form [3,3,2,2])
 [host1]   [host2]   [host3]   [host4]   [host5]   [host6]
  task1
  task2

host2 offers resources. Marathon automatically says yes
 [host1]   [host2]   [host3]   [host4]   [host5]   [host6]
  task1     task3
  task2

host3 offers resources. host4 offers resources, both yes.
 [host1]   [host2]   [host3]   [host4]   [host5]   [host6]
  task1     task3     task4     task5
  task2

If

host1 now offers resources again, marathon would ask the same questions and reply YES - so would allow the scheduling onto these hosts (but next jobs will be rejected)
host2|host3|host4 offered resources, marathon would ask the same questions and reply YES - so  would allow the scheduling onto these hosts
host5|host6 offered resources, remember marathon always allows the expansion of the cluster so  would allow the scheduling onto these hosts

Thank you very much to gtmtech for detailed explanation of GROUP_BY.
Using:
constraints: [
"hostname",
"GROUP_BY",
"2"
]
together with:
instances: 2
I get a almost-evenly process distribution in my cluster (with 3 slaves), every app has two istances on different nodes (HA).

Thanks for the group by description! Now, is there anyway to control the spread of 'different' tasks? We have hundreds of unique tasks starting/stopping all the time. But whenever marathon gets a request to spin up say 50 tasks (1 instance each) simultaneously,  it invariably schedules them all on the same node which puts a huge load on it and healthchecks temporarily fail. Would love to be able to control this a lot better.

@jeacott1 You can control with

--max_tasks_per_offer (Optional. Default: 5): Launch at most this number of tasks per Mesos offer. Usually, there is one offer per cycle and slave. You can speed up launching tasks by increasing this number.

Deploymenst will be slower but different tasks will be scheduled across different hosts.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-2348. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


Returning a partially succeeded taskresult

If I understand https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.md correctly, logging a ##vso[task.complete result=SucceededWithIssues;] should make the task fail, this doesn't seem to happen however.
Is there any way to 'partially fail' a task?

Ting?
From: ptoonen<EMAIL_ADDRESS>Sent: Thursday, August 20, 2015 5:26 AM
To: Microsoft/vso-agent-tasks<EMAIL_ADDRESS>Subject: [vso-agent-tasks] Returning a partially succeeded taskresult (#436)
If I understand https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.mdhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvso-agent-tasks%2Fblob%2Fmaster%2Fdocs%2Fauthoring%2Fcommands.md&data=01|01|Chris.Patterson%40microsoft.com|1cdb7fa1f6c84708ece708d2a95a938d|72f988bf86f141af91ab2d7cd011db47|1&sdata=3WwVlv96QIefrqnKc4TPE0wt6teFmeJlIGB8LnX2p40%3D correctly, logging a ##vso[task.complete result=SucceededWithIssues;] should make the task fail, this doesn't seem to happen however.
Is there any way to 'partially fail' a task?
—
Reply to this email directly or view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvso-agent-tasks%2Fissues%2F436&data=01|01|Chris.Patterson%40microsoft.com|1cdb7fa1f6c84708ece708d2a95a938d|72f988bf86f141af91ab2d7cd011db47|1&sdata=mvRqpGElV2B5dDOVS3PpHZEithyMQH%2BpVOukxY5PN9k%3D.

Although I haven't been able to test this with the 2015.1 RC1 version, do you have any news on this issue?

This should be fixed now.


Research Packit as a Fedora dist-git CI

Research:

possible implementation options
technical issues to resolve
design user perspective

and discuss with the team and create follow-up cards and add to #2453

One extra thing to cover might be "FedoraOnGitlab" concept -- we can reuse the OSCI's *OnGitLab tooling to sync a dist-git repo with a GitLab repository. (We can check if this can help us anyhow and if this is not a deal breaker for more mass onboarding.)


Add support to build image with a specific rclone version

By using current the newest version is downloaded form the rclone site. Other versions can be specified by their version number. E.g.: v1.54.0

I wonder whether this should instead use the Alpine repos to download a specific version instead? A la https://superuser.com/a/1058665

I wonder whether this should instead use the Alpine repos to download a specific version instead? A la https://superuser.com/a/1058665
The alpine repo lags behind with the newer versions. This way there is no requirement for alpine to update it's repositories


Ending tweaks

"After a couple hours of discussion and some blood tests, the colonel is convinced and orders that the airlock doors be unsealed, permitting you to exit."
While I like the line "you relate everything that has happened, leaving out, for now, some of the details suggested by Lucky and the mouse." it would still be nice to read what they had to say about the outside world for a sentence or two.
Also "You request to speak" -> "You ask to speak" sounds a bit more natural.
And should "under MIT license." be "under the MIT license."?

I'm not entirely happy with the ending, but don't have an immediate idea in mind to revise it. One other bit of feedback that I agree with is that the ending comes up suddenly. I would like to pay off the mouse and Lucky more extensively, but am concerned about a text dump at the end. I am a little reluctant to begin addressing events after they leave the airlock because that could go on for quite a while and is really another story (whether it gets written or not, we'll have to see. I often have the intention of writing sequels but so far haven't).


Russian Peasant Algorithm in C++

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Code for Russian Peasant Algorithm in C++
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Issue #978

@HarshCasper @Kajol-Kumari @iamrajiv @siddharth25pandey Kindly review.

@plazzy99 @Abhijit2505 Kindly review.

remove merge conflict

remove merge conflict

Done

@Kajol-Kumari Kindly review.

@all-contributors please add @mahimagoyalx for code


Storing all binding properties in single property/file

Hi!
Kind of related to #83.
We are currently working on a feature to read service bindings from secrets created by the service operator.
For that we already create tickets #78 and #79.
This means that we right now would expect the secret to be created using the secretKey parameter, creating a single property with the credentials JSON as it's value.
The other properties (as added with #78) are then added in parallel to the single secretKey property.
This, however, might now lead to the issue, that those other properties could be "flattened" (so a list of entries is stored as a String "["value1", "value2"]").
From an SDK point of view we cannot know whether this is now a list or an actual String property.
Therefore the proposel to have an option to just store all properties into a single property.
The format of this could be guided by the usual CF VCAP_SERVICES, but could also be something "new".

Hi,
I am not sure we have an issue with additional properties because its closed group of properties provided by the operator,
instance_guid ,
instance_name ,
plan ,
label (service name) ,
tags <string[]>
do you see a problem here?

Okay, if the options here are really fixed to the specified ones, then there is no problem at the moment.
Then there is basically just one point left: Reading multiple files is kind of annoying, here a single file would make our life easier. Also, we don't see a benefit in storing those information in a single file, rather "downsides", that updates are likely not happening atomically.

you can prepare your env whatever suits you like this:
apiVersion: v1

kind: Pod

metadata:

    name: mypod

spec:

    containers:

        - name: myapp

        image: ubuntu

        env:

           - name: USERNAME

           valueFrom:

               secretKeyRef:

                   name: mysecret

                   key: username

           - name: PASSWORD

           valueFrom:

               secretKeyRef:

                   name: mysecret

                   key: password

Hm, that would just push the burden to the consumer of the Cloud SDK.
As we are not handling the deployment, but just need to adapt to a given deployment by our consumers we would like to make their life in setting up the right kind of secrets as easy as possible.
Then they would not need to bother with consuming the secrets to communicate with the bound service.

you can now store binding data in single secret key,
if you set property secretRootKey

Thanks, that looks really nice!
We will have a look to support and recommend that way.


Release/0.0.5

👷 Deploy Preview for alexis-mora processing.
🔨 Explore the source changes: 16698c00360ec9f90eb260f2a45c4010cfc12cb7
🔍 Inspect the deploy log: https://app.netlify.com/sites/alexis-mora/deploys/6119d88113d89c00094bfef1


Release parking_lot_core 0.9.2

windows-sys is also gigantic. The crates subdirectory of the repository is 320MiB.


[Bug]: Invalid configuration for entry sensors

Client version
1.5.0
Node version

Operating System type
Other
Operating system version
homeassistant
Describe the bug
I followed the guide to integrate the Eufy devices. Stations, cameras and keypads are correctly configured, but I have an error about the (2) entry sensors. Here is the logs:

Logger: homeassistant.setup
Source: setup.py:316
First occurred: 12:06:27 PM (4 occurrences)
Last logged: 12:06:29 PM
Unable to prepare setup for platform eufy_security.binary_sensor: Platform not found (cannot import name 'EntityCategory' from 'homeassistant.helpers.entity' (/usr/src/homeassistant/homeassistant/helpers/entity.py)).
Unable to prepare setup for platform eufy_security.sensor: Platform not found (cannot import name 'EntityCategory' from 'homeassistant.helpers.entity' (/usr/src/homeassistant/homeassistant/helpers/entity.py)).
Unable to prepare setup for platform eufy_security.switch: Platform not found (cannot import name 'EntityCategory' from 'homeassistant.helpers.entity' (/usr/src/homeassistant/homeassistant/helpers/entity.py)).
Unable to prepare setup for platform eufy_security.select: Platform not found (cannot import name 'EntityCategory' from 'homeassistant.helpers.entity' (/usr/src/homeassistant/homeassistant/helpers/entity.py)).

The error is:

Invalid config
The following integrations and platforms could not be set up:
eufy_security.binary_sensor
eufy_security.sensor
eufy_security.switch
eufy_security.select

To reproduce

Go to '...'
Click on '...'
Scroll down to '....'
See error

Screenshots & Logfiles
Follow the guide about how to install it.
Additional context
No response

Hey @msbghome, this issue is related to home assistant, not about eufy-security-ws. You have to update your home assistant to latest version, at least December.
If you still have issues, please create it under eufy_security repository.

@fuatakgun right, thank you for the help! After the update it works! Sorry for have posted in the wrong section and thank you for your work.


services-alternate

Hello, thanx for the driver
I wonder is there way to handle --services-alternate flag to have queries from cluster nodes with
service.access-address - internal addresses
service.alternate-access-address - public addresses

@Gaudeamus I'm not sure I understand the question. Could you please refer to an example or any other project that implements this.

@reugn, see https://javadoc.io/static/com.aerospike/aerospike-client/5.1.11/com/aerospike/client/policy/ClientPolicy.html#useServicesAlternate.

thank you @kportertx for directions
I've tried useServicesAlternate setting, but when I set connection url to
jdbc:aerospike:aerospike.distantcuster.net:3000/?useServicesAlternate=true
I got error
Can not set boolean field com.aerospike.client.policy.ClientPolicy.useServicesAlternate to java.lang.String

@Gaudeamus, the issue was addressed in v1.4.0. The version has been published to Maven Central and will be available in <24h.

thank you @reugn, for such quick response and fix


WIP: Improvement/add user override rest example

Thanks for submitting a PR! Please check the boxes below:

[x] I have run pre-commit or manually with
npx pretty-quick to check linting
[x] I have filled in the "Changes" section below?

Changes
Add more python script examples for common examples using the REST API.

I think tabs are unnecessary here - might be simpler just to have each code sample as a header?

I think tabs are unnecessary here - might be simpler just to have each code sample as a header?

Yeah, you're probably right.


Broken link on 'Text - Textures'

In the 'Scaling Text without pixelation' section of 'Text - Using a Texture', the 'use very special shaders that render curves' link broke.
As far as I have seen, Microsoft is no longer hosting the file. I downloaded it before the link broke and have attached it here.
The same link is broken in the same place on webgl-fundamentals.
CurveShaders.pdf

Thanks! I updated the link to a google search
https://github.com/greggman/webgl2-fundamentals/commit/8936d46af91c2d6f2db34e00344eae351eca7fa1


Omitempty structs

Just merged branch 'master' into omitempty-structs to have an updated branch.

Wow, that's a lot of work getting done! Thanks for opening this.
Based on the attention, it seems like a good idea to merge this into the master branch. Let's continue discussion on #32


forkdns: Updates serversFileMonitor to only watch for inotify.InMovedTo event

This fixes a regression caused when I moved this to use the inotify package (https://github.com/lxc/lxd/pull/11152) as it was watching all events, including the open and read events causing an event loop.
This also fixes a small inefficiency that caused the forkdns server to reload its servers file twice because it was triggering both on writes to the servers file and the temporary file that is generated first.
We now only watch for files being renamed to the main servers list file.
Signed-off-by: Thomas Parrott<EMAIL_ADDRESS>

Hrm its not happy

Hrm its not happy

You could also just exclude notifications: inotify.InAllEvents & ^(inotify.InAccess | inotify.InOpen). It's likely that those are causing the spam.

Hrm its not happy

You could also just exclude notifications: inotify.InAllEvents & ^(inotify.InAccess | inotify.InOpen). It's likely that those are causing the spam.

There were some others too. I'll find just the ones we need.

Fixed the tests to simulate what LXD does so that the correct inotify event is fired.


Suppress Clean command and confirm Remove command

The commands Clean and Remove are doing the same job. No need to have them both. Will keep Remove as it does what the documentation says.
But because this command may be quite dangerous even if it does not delete the source files, a confirmation request will be added to leave a chance to cancel if command has been triggered by mistake.

Take the opportunity of editing the Clean command to order properly the menus putting Remove command last.


How to insert spaces at the "prefix"?

Hello,
I want to insert a few spaces at the prefix, something like:
    {
        "pattern": "^(\\s*)#### (.*)----",
        "clear": "#|----",
        "prefix": "\\s\\s",
        "icon": "level3"
    },

But instead of 'space''space', I get '\s\s' before the line.
Thanks!

Better could be to add indentation to the icons, like what happens one function is created inside another.
I have this for creating sections/outlines/folds in my Python code:
    {
        "pattern": "^(\\s*)#### (.*)----",
        "clear": "#|----",
        "prefix": "··",
        "icon": "level3"
    },
    {
        "pattern": "^(\\s*)### (.*)----",
        "clear": "#|----",
        "prefix": "·",
        "icon": "level2"
    },
    {
        "pattern": "^(\\s*)## (.*)----",
        "clear": "#|----",
        "icon": "level1"
    },

And I get this:

But I would like to have indentation like:

Duplicate #32


gradlew :sagan-site:bootRun error on Windows 7

:sagan-client:compileJava UP-TO-DATE
:sagan-client:processResources UP-TO-DATE
:sagan-client:classes UP-TO-DATE
:sagan-client:nodeSetup UP-TO-DATE
:sagan-client:npmSetup UP-TO-DATE
:sagan-client:npmInstall UP-TO-DATE
:sagan-client:npmBuild

> sagan@ build D:\Documents\GitHub\sagan\sagan-client
> gulp build

                                                                     [22:55:50]
Using gulpfile D:\Documents\GitHub\sagan\sagan-client\gulpfile.js
[22:55:50] Starting 'minify-css'...
[22:55:50] Starting 'copy-external-css'...
[22:55:50] Starting 'jspm-main'...
[22:55:50] Starting 'jspm-maps'...
[22:55:50] Starting 'jspm-admin'...
[22:55:50] Starting 'copy-assets'...
[22:55:52] Finished 'copy-external-css' after 1.9 s
[22:55:53] Finished 'jspm-maps' after 2.77 s
[22:55:53] Finished 'jspm-admin' after 2.78 s
gulp-jspm: Error: EPERM: operation not permitted, open 'C:\Users\applelam\AppDat
a\Local\Temp\gulp-jspm__build.js116511-1916-1hliaei'
    at Error (native)
...
npm ERR! node v4.2.2
npm ERR! npm  v2.14.7
npm ERR! code ELIFECYCLE
npm ERR! sagan@ build: `gulp build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sagan@ build script 'gulp build'.
npm ERR! This is most likely a problem with the sagan package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gulp build
npm ERR! You can get their info via:
npm ERR!     npm owner ls sagan
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     D:\Documents\GitHub\sagan\sagan-client\npm-debug.log
:sagan-client:npmBuild FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':sagan-client:npmBuild'.
> Process 'command 'cmd'' finished with non-zero exit value 1

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

somebody get any clues for the issue, I've encountered the same problem.

I think I managed to reproduce this issue and that's probably related to a folder locking issue. The gulp-jspm plugin is using a temp folder when processing the JSPM modules, and it seems those folders tend to be locked by anti-virus software.
Can you temporarily disable your A/V and re-run the same command?
I'm working on modifying the client build to avoid using temp files (it should be always the case with gulp, which favors in-memory builds).


Unset rcvar first to ensure any previous assignment of rcvar is unset…

… since it is being used in a global context not locally scoped within the rc_enabled() function

It looks good, but I am interested in which bug you have seen in relation to this?

Thanks - the issue turned up for me because I was debugging a malformed(?) rc.d script that has no rcvar line entry and uses a non-standard rcvar name by not having an _enabled suffix:-
https://github.com/digitalocean/freebsd-fix
Either way, the Digital Ocean FreeBSD "fix" needs to be re-crafted to suit the OPNsense startup tooling anyway.


app freezes when ontextchanged prop triggered

Hi
this code locks/freezes the app when tapped and selected some item
<Dropdown ontextchanged={()=>alert('asd')} options={this.state.adresler} />
Did you experienced like this?

me too


Update internal links to be compatible with versions

Review all internal links to make sure we're using relative links for compatibility with mike-based versions.
Change Summary

Related issue number
Closes PYD-133
Checklist

[ ] Unit tests for the changes exist
[ ] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[ ] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)
[x] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

please review


lzw-ab output incompatible with ncompress and other LZW decompressors

The output from lzw-ab can now be only decompressed by lzw-ab itself, not other established LZW decompressors such as ncompress and 7-Zip. I assume this is due to the new improvements to compression algorithm in lzw-ab.

Hello, please try to use lzws, its main goal is to provide compatibility with all Content-Encoding: compress processors such as ncompress. lzws can be compiled with dictionary algorithm from lzw-ab using -DLZWS_COMPRESSOR_DICTIONARY="linked-list". For now lzws is available for GNU/Linux, FreeBSD and MinGW only. Cygwin and MSVC support will be added soon.

PS if you are interested in implementing compatibility layer in lzw-ab, please review the following issue.

The output from lzw-ab can now be only decompressed by lzw-ab itself, not other established LZW decompressors such as ncompress and 7-Zip. I assume this is due to the new improvements to compression algorithm in lzw-ab.

You are correct. There are two features that allow LZW-AB to compress better than standard LZW compressors: the adjusted binary part and the new feature I recently added that continuously recycles dictionary entries. Of course these make the output incompatible with existing compressors.
However, I never really intended this to be a replacement for those other compressors. It was mean to be used in an embedded system or some other closed environment where something small was desired. Or, because it's so simple, it could be used as a starting point for another compression experiment or just to learn how LZW works.


chore: Revert "chore(release): 2.1.0"

Failed release - yarn build is is throwing an error.  We will fix and then retry release at this tag.
Reverts trussworks/react-uswds#1588

Updated the PR title to make the PR lint pass. Not sure if that's what we want it to be though, so feel free to change as necessary


[NEXT-26062] add missing paid transaction state

1. Why is this change necessary?
Need fix bug which open here:
https://issues.shopware.com/issues/NEXT-24586
https://issues.shopware.com/issues/NEXT-26062
Also here is conversation with Shopware developer https://shopwarecommunity.slack.com/archives/C011VFQT7GB/p1681413118802549
2. What does this change do, exactly?
Just add additional paid status Failed in order to not break loop
3. Describe each step to reproduce the issue or behaviour.
Need fix bug which open here:
https://issues.shopware.com/issues/NEXT-24586
https://issues.shopware.com/issues/NEXT-26062
4. Please link to the relevant issues (if any).
https://issues.shopware.com/issues/NEXT-24586
https://issues.shopware.com/issues/NEXT-26062
5. Checklist

[ ] I have rebased my changes to remove merge conflicts
[ ] I have written tests and verified that they fail without my change
[ ] I have created a changelog file with all necessary information about my changes
[ ] I have written or adjusted the documentation according to my changes
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[ ] I have read the contribution requirements and fulfil them.

copilot:summary
copilot:walkthrough

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

this is my first PR
if smth wrong let me know

Hey @stepan-twnty,
thank you very much for your contribution! :tada: :blue_heart:
Can you please also add a small testcase to verify your change to this class: \Shopware\Tests\Unit\Core\Checkout\Cart\Order\OrderConverterTest
And please also add a little changelog entry according to this guide. (You can leave out the ticket number, we'll add that later as your PR will get it's own ticket number)

Hey @stepan-twnty,
thank you very much for your contribution! 🎉 💙
Can you please also add a small testcase to verify your change to this class: \Shopware\Tests\Unit\Core\Checkout\Cart\Order\OrderConverterTest
And please also add a little changelog entry according to this guide. (You can leave out the ticket number, we'll add that later as your PR will get it's own ticket number)

Hi :)
Thx for answering. You are right I should add test case and changelog.
Not sure if this pull request is still relevant cuz on Slack I've gotten message:

Looks like problem is complex :)
Whar do u think should we close it?

looks like @nguyenky fixed it and merge it to the Trunk.
So it can be closed.


UI: Update Settings Tab

Removed Secondary color option and updated the documentation accordingly.

fixed by #322


Implement Vultr cloud provider

What this PR does / why we need it:
This PR adds support to Vultr cloud provider, for both their Bare Metal and Cloud Instance products.
For now, is only supports ubuntu.
What type of PR is this?
/kind feature
Special notes for your reviewer:

How does the automated E2E work? Who is responsible for the cloud provider token/billing?

Does this PR introduce a user-facing change? Then add your Release Note here:

- Add Vultr cloud provider

Documentation:

- Included in the `docs/` folder.

/ok-to-test

hey @ahmedwaleedmalik, thanks for moving on with the PR :)
I was wondering about the E2E tests, which require a Vultr API Token. How does that work? Who generates and/or is responsible for the token/bills?

Fixed the lint issued.
As you can see on the failing licenses tests, the Vultr GO SDK depends on two projects by Hashicorp with MPL2 licenses. Is is ok to allow those dependencies?
Thanks!

@jonatasbaldin Thank you for the awesome contribution. It's always exciting to see the addition of new cloud providers to machine-controller.
Regarding the license, please add it to this ignore list https://github.com/kubermatic/machine-controller/blob/master/.wwhrd.yml#L28. MPL-2 is generally fine for us.

I was wondering about the E2E tests, which require a Vultr API Token. How does that work? Who generates and/or is responsible for the token/bills?

We at Kubermatic, unfortunately, don't have an account at Vultr. Making sure that this integration works, is usually a mandatory requirement for us. For most of the external PRs, we expect that the partner, customer, or individual contributor would provide us with a way to test these changes. Which in your case would be the Vultr API Token.
Would that be possible for you?

/test pull-machine-controller-e2e-vsphere

As @ahmedwaleedmalik already mentioned, for the time being, we cannot test this PR, however, we are working on it. Once we have the proper infra for Vultr we can proceed with this PR. Thanks a lot for your contribution :)
/hold

Hi there. We unfortunately can't provide a Vultr token for the E2E tests. We will get in touch with the Vultr team in search for a collaboration. I'll let you know if I have any news soon.
Thanks!

Closing this PR in favor of https://github.com/kubermatic/machine-controller/pull/1531. With https://github.com/kubermatic/machine-controller/pull/1531, support for Vultr is available in machine-controller 🎊


TypeError: Cannot read properties of null (reading 'useState')

Check that this is really a bug

[X] I confirm

Reproduction link
https://github.com/hosseinitabar/swiper-bug
Bug description
We upgraded to next.js 13.
And now we receive this error:
Warning: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
TypeError: Cannot read properties of null (reading 'useState')
    at useState (/next/node_modules/react/cjs/react.development.js:1622:21)
    at file:///next/node_modules/swiper/react/swiper.js:26:51
    at renderWithHooks (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7621:16)
    at renderForwardRef (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7805:18)
    at renderElement (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7985:11)
    at renderNodeDestructiveImpl (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:8086:11)
    at renderNodeDestructive (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:8058:14)
    at renderIndeterminateComponent (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7748:7)
    at renderElement (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7919:7)
    at renderNodeDestructiveImpl (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:8086:11)
error - TypeError: Cannot read properties of null (reading 'useState')
    at useState (/next/node_modules/react/cjs/react.development.js:1622:21)
    at file:///next/node_modules/swiper/react/swiper.js:26:51
    at renderWithHooks (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7621:16)
    at renderForwardRef (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7805:18)
    at renderElement (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7985:11)
    at renderNodeDestructiveImpl (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:8086:11)
    at renderNodeDestructive (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:8058:14)
    at renderIndeterminateComponent (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7748:7)
    at renderElement (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:7919:7)
    at renderNodeDestructiveImpl (/next/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.browser.development.js:8086:11) {
  page: '/'
}

I created a simple repository, with all of our next.js config and all of our packages.
If you clone it and run it using npm install && npm run dev you'll see this error.
Expected Behavior
Swiper either should work with next.js 13, or at least it should give us clearer message.
Actual Behavior
All it says is:

TypeError: Cannot read properties of null (reading 'useState')

Swiper version
8.4.4
Platform/Target and Browser Versions
Debian Chrome 107.0.5304.87 (Official Build) (64-bit)
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[ ] I'm willing to open a PR

@nolimits4web yep that is true. But even in case of a conflict, I think that swiper should either give us a more meaningful error message, or somehow manage the conflict internally. In fact, I intentionally created that repo with all of our dependencies, to provide a real-world scenario.
I would create a standalone repo too.

I also upgraded to Next 13 and I also see this error. @nolimits4web I don't think there should be a need to create a isolated repo. Swiper should not be affected by other libraries. Even if it is now, it should be fixed.
I realized that if we comment out the components of our pages, save, and then uncomment them the problem goes away for that page.
But if we refresh the page it appears again. It seems something related to Next 13 hydration is the culprit here.

@nolimits4web I forked his repo and cleaned it up and found the problem source. Here's the fork.
Clone it, and toggle the value of appDir config in next.config.js.
You should see the error when it's set to true.

That is definitely something on Next side, it complains on this line:
const [containerClasses, setContainerClasses] = useState('swiper');

I think you should open this issue for Next

How can we find more comprehensive differences between 6, 7, and 8

@nolimits4web


Don't insist modules' sourceDir be non-null

Rationale
When running on TeamCity with gradle plugin v1.12.0+, we null out the 'sourcePath' property of modules. Some places expect this to be non-null. BasicTest is failing when it attempts to visit /labkey/admin-sql-orphanedScripts.view?
Changes

Add null checks

Fixed elsewhere


Add support of chain link to Evmos

The Evmos accounts are in ethsecp256k1 type but not the standard secp256k1 being used in Cosmos. To make Desmos Profile be able to link with Evmos accounts, chain link proof with ethsecp256k1 is required.

I think it is already covered by HexAddress chain link implementation. It creates the chain link with the same way to generate eth address, It should be the same as Evmos as well.

Closing this as per @dadamu said it should be already supported by HexAddress


schemathesis + mock.call break pytest collection

The issue in a few words
Importing the call method from the mock package breaks pytest collection when schemathesis is installed, with the following error :
/usr/local/lib/python3.7/site-packages/_pytest/runner.py:237: in from_call
    result = func()
/usr/local/lib/python3.7/site-packages/_pytest/runner.py:257: in <lambda>
    call = CallInfo.from_call(lambda: list(collector.collect()), "collect")
/usr/local/lib/python3.7/site-packages/_pytest/python.py:431: in collect
    return super().collect()
/usr/local/lib/python3.7/site-packages/_pytest/python.py:370: in collect
    values.sort(key=lambda item: item.reportinfo()[:2])
/usr/local/lib/python3.7/site-packages/_pytest/python.py:370: in <lambda>
    values.sort(key=lambda item: item.reportinfo()[:2])
/usr/local/lib/python3.7/site-packages/_pytest/python.py:285: in reportinfo
    obj = self.obj
/usr/local/lib/python3.7/site-packages/_pytest/python.py:253: in obj
    self.own_markers.extend(get_unpacked_marks(self.obj))
/usr/local/lib/python3.7/site-packages/_pytest/mark/structures.py:249: in get_unpacked_marks
    return normalize_mark_list(mark_list)
/usr/local/lib/python3.7/site-packages/_pytest/mark/structures.py:264: in normalize_mark_list
    raise TypeError("got {!r} instead of Mark".format(mark))
E   TypeError: got pytestmark.mark instead of Mark

Steps to reproduce
Clean environment (in a python:3.7-slim-buster docker image), python version 3.7.5.
Install the following requirements (includes pytest, mock and all the prerequisistes for schemathesis) :
requirements.txt
Run the following test file with pytest :
from mock import call

def test_schemathesis():
    assert True

The test should run without any issue. Then install schemathesis, and run it again. This should give the error above.
Versions of components
The bug was reproduced using those versions of components :
OS: debian (slim python docker images)
python: 3.7.5, 3.6.10
schemathesis: v0.24.4 to v0.20.5 (there's another issue with prior versions).
mock: 4.0.0 and 2.0.0 (2.0 was released in 2016 so it's not a recent issue)
pytest: 5.3.5, 5.1.3, 4.6.9
Also tried using a previous pytest-mock version, still breaks.

If anyone encounters this issue, we used a workaround in our tests, we don't import call anymore, but we import mock and use mock.call. This works for us, but I would still like to see this bug fixed if possible.

Hi! Thank you for a great bug report! Most probably it is connected to pytest hooks that are implemented in  schemathesis. I will take a look

@fattybenji
The bugfix is released in 0.24.5 (https://pypi.org/project/schemathesis/0.24.5/)
Please, feel free to re-open this issue if it doesn't solve your case (but it should)
Cheers


Update package lock

What's the purpose of your PR?

[ ] Fixing a bug
[ ] A new Feature
[X] Techdebt
[ ] General Task

What is your PR all about?
Any special instructions for the reviewer?

@tkeidar please just approve and merge it


get_project_path() incorrectly determines path

If you have multiple sibling directories in a workspace with common prefix characters, it will incorrectly use a partial path for this.
I have two directories open, which are ~/Projects/example1 and ~/Projects/example2. os.path.commonprefix() will hence return ~/Projects/example, which is not a directory that exists. (The Python docs note that os.path.commonpath() should be used instead.)
This approach is generally problematic anyway. I have two subdirectories deep inside a common directory, and even without the partial filename problem, this is still problematic for me as it causes a lot more files than I care about to be indexed. This causes the initial parsing to take roughly forever.
VS Code is currently working on adding multi-root support (https://github.com/Microsoft/vscode/issues/28344), so I suspect they'll add support to the Language Server protocol at some point. The current behaviour in the beta is just to index the first directory in the project. IMO, this is the best behaviour until the protocol actually supports multi-root.

Thanks for the detailed bug report, sounds like commonpath is the intended behaviour.
I am myself not convinced of the shared-root-of-multiple-folders approach, but would only supporting the first folder be an improvement?

would only supporting the first folder be an improvement?

I definitely think so; the way I use Sublime projects typically is by having a main directory with multiple auxiliary directories for easy access (for example, a component of a large system along with the core library for said system). Having all of it integrated would be nice, but in lieu of that, just using the first folder I think is the best behaviour (and matches VS Code's current behaviour).

Filed #81 which switches to the first folder approach; if you'd prefer to keep the common parent approach, I can switch it over to commonpath instead.

(Here's the actual draft spec for multi-root support, btw: https://github.com/Microsoft/vscode-languageserver-node/blob/master/protocol/src/protocol.workspaceFolders.proposed.md )


installation fails

Error: /root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/git.rb:174: syntax error, unexpected $undefined, expecting keyword_end
      \thelper = osxkeychain
       ^
Please report this bug:
    https://github.com/Linuxbrew/linuxbrew/blob/master/share/doc/homebrew/Troubleshooting.md#troubleshooting
/root/.linuxbrew/Library/Homebrew/formulary.rb:21:in `module_eval'
/root/.linuxbrew/Library/Homebrew/formulary.rb:21:in `load_formula'
/root/.linuxbrew/Library/Homebrew/formulary.rb:34:in `load_formula_from_path'
/root/.linuxbrew/Library/Homebrew/formulary.rb:83:in `load_file'
/root/.linuxbrew/Library/Homebrew/formulary.rb:74:in `klass'
/root/.linuxbrew/Library/Homebrew/formulary.rb:70:in `get_formula'
/root/.linuxbrew/Library/Homebrew/formulary.rb:207:in `factory'
/root/.linuxbrew/Library/Homebrew/formulary.rb:352:in `find_with_priority'
/root/.linuxbrew/Library/Homebrew/extend/ARGV.rb:20:in `block in formulae'
/root/.linuxbrew/Library/Homebrew/extend/ARGV.rb:16:in `map'
/root/.linuxbrew/Library/Homebrew/extend/ARGV.rb:16:in `formulae'
/root/.linuxbrew/Library/Homebrew/cmd/install.rb:44:in `install'
/root/.linuxbrew/Library/brew.rb:84:in `<main>'
==> Tapping homebrew/dupes
Cloning into '/root/.linuxbrew/Library/Taps/homebrew/homebrew-dupes'...
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), done.
Tapped 0 formulae (29 files, 20.9K)
Error: /root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/coreutils.rb:86: syntax error, unexpected <<
  def caveats; <<~EOS
                 ^
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/coreutils.rb:90: syntax error, unexpected tIDENTIFIER, expecting keyword_end
    can add a "gnubin" directory to your PATH from your bashrc like:
                                ^
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/coreutils.rb:90: syntax error, unexpected ':', expecting keyword_end
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/coreutils.rb:92: dynamic constant assignment
        PATH="#{opt_libexec}/gnubin:$PATH"
             ^
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/coreutils.rb:94: dynamic constant assignment
    Additionally, you can access their man pag...
                 ^
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/coreutils.rb:94: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '('
    Additionally, you can access their man pages with ...
                         ^
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/coreutils.rb:95: syntax error, unexpected tIDENTIFIER, expecting keyword_end
    the "gnuman" directory to your MANPATH from your bashrc as well:
                          ^
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/coreutils.rb:95: syntax error, unexpected ':', expecting keyword_end
/root/.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/coreutils.rb:97: dynamic constant assignment
        MANPATH="#{opt_libexec}/gnuman:$MANPATH"
                ^
Please report this bug:
    https://github.com/Linuxbrew/linuxbrew/blob/master/share/doc/homebrew/Troubleshooting.md#troubleshooting
/root/.linuxbrew/Library/Homebrew/formulary.rb:21:in `module_eval'
/root/.linuxbrew/Library/Homebrew/formulary.rb:21:in `load_formula'
/root/.linuxbrew/Library/Homebrew/formulary.rb:34:in `load_formula_from_path'
/root/.linuxbrew/Library/Homebrew/formulary.rb:83:in `load_file'
/root/.linuxbrew/Library/Homebrew/formulary.rb:74:in `klass'
/root/.linuxbrew/Library/Homebrew/formulary.rb:70:in `get_formula'
/root/.linuxbrew/Library/Homebrew/formulary.rb:207:in `factory'
/root/.linuxbrew/Library/Homebrew/formulary.rb:352:in `find_with_priority'
/root/.linuxbrew/Library/Homebrew/extend/ARGV.rb:20:in `block in formulae'
/root/.linuxbrew/Library/Homebrew/extend/ARGV.rb:16:in `map'
/root/.linuxbrew/Library/Homebrew/extend/ARGV.rb:16:in `formulae'
/root/.linuxbrew/Library/Homebrew/cmd/install.rb:44:in `install'
/root/.linuxbrew/Library/brew.rb:84:in `<main>'
./install_linuxbrew_on_centos7.sh: line 53: ln: command not found
./install_linuxbrew_on_centos7.sh: line 54: ln: command not found
./install_linuxbrew_on_centos7.sh: line 55: ln: command not found

Please surround copied-and-pasted logs with triple back ticks. See GitHub Help / Quoting Code.

As a normal user, preferably with sudo access, run…
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

See http://linuxbrew.sh/#install-linuxbrew

it doesn't work, I run centos7
[dima@dima ncs-run]$ echo 'export PATH="/home/dima/.linuxbrew/bin:$PATH"' >>~/.profile
[dima@dima ncs-run]$     echo 'export MANPATH="/home/dima/.linuxbrew/share/man:$MANPATH"' >>~/.profile
[dima@dima ncs-run]$     echo 'export INFOPATH="/home/dima/.linuxbrew/share/info:$INFOPATH"' >>~/.profile
[dima@dima ncs-run]$ brew install gcc
Error: The current working directory doesn't exist, cannot proceed.
[dima@dima ncs-run]$

Please surround copied-and-pasted logs with triple back ticks. See GitHub Help / Quoting Code.

Error: The current working directory doesn't exist, cannot proceed.

Your current working directory does not exist. See
pwd
ls $(pwd)

cd to a working directory that does exist.


Fix homepage landing background image

To make a reference to the background landing.gif in the CSS file, and define the text colour for dark mode exclusively.

Concept accepted but landing.gif obviously needs a better source and design.
I'm currently working on this, comment down to express your thoughts about better landing.gif design.

If we have time and enough skill, I would like to make a card layout in place of the default tutorial feature placeholder, which can help make good use of the index page.
And for the background image we can consider:

Change the image: use triangle texture, and put an big icon to the right of the hero section.
Should we use a autoplaying video? (not good)

Change the image: use triangle texture, and put an big icon to the right of the hero section.
Should we use a autoplaying video? (not good)

Triangle texture is already available in ./src/css/assets/triangles.svg
The original plan was using video in the background, but considering its size I have to use GIFs instead. External video-hosting servers or platforms my needed if we want to display videos, ~or we can use ppy's asset straight from here~.


bindata/bootkube: fix image for http-check-container

/cc @sttts @deads2k

/lgtm
/approve

/retest

/retest
one of the worker node went NotReady due to PLEG is not healthy: pleg was last seen active ~30m ago; threshold is 3m0s.

/retest


Groundwork for searching for Anime titles using MyAnimeList

[x] Read CONTRIBUTING.md.

Summary of changes:

Allows searching of anime details using the MyAnimeList API by setting up a base Ktor URL for any MAL network operations
Redacted client ID for now as I'm not decided on if I want it to be shared, or add instructions on how users can create their own, or injects from local properties etc...
Not hooked up yet to the ViewModel because I wanna create a UseCase which fetches from both AniList and MAL and returns a merged version from the DB, once we've setup Room again
Doesn't currently provide any error handling, and it crashes if setup incorrectly, but I can fix that later when it's hooked up/in the UseCase
The search fields are a bit superfluous, but it's an extensive list until we know what fields we want to merge when saving to local storage

Additionally

Removed the unnecessary nullable field on the search query for AniList

Tested changes:

API does indeed work if you provide a client ID instead of redacting it
The response model matches the JSON Response, as the classes were generated from the JSON response

shipped! ily guys :3


fix: accept short branch names for GitHub actions

Fix #98

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


pagination component bug

pagination component bug
Vue.js version: 2.5.17, Swiper version:  ^3.1.3
In newest version，i configure the pagination follow the example, but it didn't work, just show me a tag.

closed, it just because i install 'swiper' and 'vue-awesome-swiper' at the same time;