fix [BUG] TaskExecutionContextCacheManagerImpl Do not execute removeB…

…yTaskInstanceId #2745
Tips

Thanks very much for contributing to Apache DolphinScheduler.
Please review https://dolphinscheduler.apache.org/en-us/community/index.html before opening a pull request.

What is the purpose of the pull request
(For example: This pull request adds checkstyle plugin.)
Brief change log
(for example:)

Add maven-checkstyle-plugin to root pom.xml

Verify this pull request
(Please pick either of the following options)
This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added dolphinscheduler-dao tests for end-to-end.
Added CronUtilsTest to verify the change.
Manually verified the change by testing locally.

Codecov Report

Merging #2752 into dev will increase coverage by 0.09%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##                dev    #2752      +/-   ##
============================================
+ Coverage     37.08%   37.17%   +0.09%
- Complexity     2550     2554       +4
============================================
  Files           434      434
  Lines         19985    19988       +3
  Branches       2423     2423
============================================
+ Hits           7411     7431      +20
+ Misses        11907    11888      -19
- Partials        667      669       +2

Impacted Files
Coverage Δ
Complexity Δ

...ler/server/worker/processor/TaskKillProcessor.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...eduler/server/worker/runner/TaskExecuteThread.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...he/dolphinscheduler/common/thread/ThreadUtils.java
68.25% <0.00%> (-3.18%)
13.00% <0.00%> (-1.00%)

...nscheduler/server/entity/TaskExecutionContext.java
87.12% <0.00%> (+5.94%)
60.00% <0.00%> (+3.00%)

.../server/worker/processor/TaskExecuteProcessor.java
37.28% <0.00%> (+27.11%)
3.00% <0.00%> (+2.00%)

Continue to review full report at Codecov.

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

another PR merged https://github.com/apache/incubator-dolphinscheduler/pull/2754 , I will close this one


Very Long Time To Load url (mp3) more than 15 seconds !!!

Very Long Time To Load url (mp3) more than 15 seconds !!!
in android and ios

I have similar problem when I execute this code:
sound = new Sound({ uri }, async err => {
   ....
})

Callback is called after complete audio load.

any update on this

i moved to another library !

i moved to another library !

Which library did you choose?


Disable Unattended Upgrades

Unattended upgrades for the security branch is enabled by default.
After some period of time, the /boot partition fills up with new
kernels, which is unexpected and undesired.
This patch disables the security updates as part of the rpc_support
playbook by removing the configuration file.
Fixes #24

:+1:

:+1:


sizes, 64bit

r? @therealprof
Right use of cluster.size + better support of 64bit registers.
See #299 , partially closed in #325 .
Not tested yet.

I was kind of hoping that at some point we could get rid of the custom formatting hacks but at the moment there still seems to be no way to generate lint-less long literals with the built-in formatting mechanics...

Don't merge. Something wrong.

Fixed.

Looks great. Can you pleasse add a CHANGELOG entry, too? That way we don't have to hunt down all changes after the fact. ;)

Done.

bors r+


A way for script to determine the engine version it is running on

Operating system or device - Godot version:
Godot v2.1.beta
Issue description (what happened, and what was expected):
When the editor is first started it displays the Godot version in the project selection window (eg: v2.1.beta or v2.1.beta.custom_build when git-n-scons'ed).  As pointed out on FB there is no current way for a script to determine the Godot version it is running on.  It would be according to Rémi Verschelde on FB, "easy to add and a good idea" to add a method somewhere a script may access to obtain this information.
Steps to reproduce:
# sample interface for obtaining version
func getGodotVersion():
    # OS object seems to be a good choice
    return OS.get_engine_version()  # this method currently does not exist

I'll work on it, it should be trivial to do. The main difficulty is to decide what class should expose this method; OS comes to mind indeed, though the engine version is not particularly an OS-specific function.

maybe this new OS.get_engine_version() (or a sibling of it) could return all the version information (major, minor, submunor, custom/beta/alpha/stable) into an array ?

@akien-mga (Ahh, you're Remi) Yeah I thought about "which should expose" also.  I thought of VisualServer but it seemed a bit lopsided to have it there (as in if it's there why not also be able to ask the physics, streaming, etc servers for their versions... ... ...)  OS seems to be a common root that prevents that madness.
Godot is originally run from the OS.  OS implements "environment" and that the executable running under that "environment" implements a version in the extended virtual "environment" of scripts being run by that executable.  That's my justification for it being in OS.
If the argument against OS is "things only form the OS should be there" then MainLoop might be better since not only is it a common root (except the docs for MainLoop seem to suggest overriding MainLoop is possible thus possibly losing access to the version method), but is also related to the executable (application) itself without being part of "things only from the OS".
The array suggestion feels like overkill.  We can just use String.split(".").  Really. ;)

Junior job...
Does that translate as "worthwhile task for anyone wanting to get a feel for working with Godot sources, git, etc (perhaps to later make a plugin)"?

Junior job...
Does that translate as "worthwhile task for anyone wanting to get a feel for working with Godot sources, git, etc (perhaps to later make a plugin)"?

That's what "Junior Job" means indeed. But @akien-mga already said he'll work on it and assigned to himself, so this task is already taken.

Does this API endpoint work ? I am not finding it

It was moved to Engine https://docs.godotengine.org/en/3.0/classes/class_engine.html#class-engine-get-version-info @salvob41


Vendor DLL script tag

Hey guys!
I have been using the dll webpack plugin without even noticing it running thanks to your boilerplate. That's awesome! 🎉
Recently I added more packages to the devVendorDLL.include as my builds were getting slower and slower - the app is getting bigger and bigger. My __dev_vendor_dll__.js file is now over 5MB and I've noticed it is not being cached by the browser because of the ?t=${Date.now()} added in the ServerHTML.js file.
My question is - is this a desired behavior? With this in place my browser fetches the file every time I reload the page, and that's a pretty big file for a browser.

@Ancinek What solution did you end up with on this one?

@oyeanuj I’ve just remove the Date.now method from the script tag. I have not noticed any unwanted behavior with this change :)


transpileDependencies option doesn't work

Version
3.0.0-beta.16
Reproduction link
https://codesandbox.io/s/1wn0368mv4
Steps to reproduce
Add a package with modern browser syntax and add the transpileDependencies: ["some-package"] option in vue.config.js.

Run the codesandbox example in IE 11 -> script error.
Look and the source code -> not transpiled.

What is expected?
The given package(s) should be transpiled.
What is actually happening?
The option is ignored.

I have a npm dependency which uses ES6 features and is unfortunately not transpiled. So I added the transpileDependencies: ["vue-moment"] option to my vue.config.js. But the package ist not going to be transpiled. The build version contains all the const and let and spread operator stuff from the original. When I copy the file to the project source and use it all is fine. I also tried transpileDependencies: [/.*/] but not any single package is transpiled.

Sorry but that's not a valid repro since CodeSandbox is not using the latest CLI - please provide an actual repository.

@yyx990803 I created a new template and could not reproduce this issue. I made a diff with my current project setup and found that I had the babel config in package.json (as created by earlier cli beta). I moved the config to babel.config.js and now it's working. Shouldn't this be equal?
If this is the intended behavior please close this ticket.

Yep, babel.config.js must be used in order for transpileDependencies to work properly. Its behavior is different from .babelrc or babel in package.json.

@dirknilius how did you get this to actually work?? I'm running into the same issue. Updated all vue cli dependencies to the latest versions and my babel.config.js looks just like one created by the newest version of the cli.
@yyx990803 here is a reproduction repo for you https://github.com/jessicarobins/vue-cli-bug-reproduction can this issue be reopened?

this can help, https://github.com/vuejs/vue-loader/issues/1411

@yyx990803 This should be added as a huge warning on the vue-cli docs. Perhaps, even vue-cli should warn when starting the app?


Add scaling.

Closes https://github.com/matanlurey/pxl.dart/issues/6.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>3
Details

16 of 16 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 95.587%

Totals

Change from base Build<PHONE_NUMBER>4:
0.07%

Covered Lines:
953

Relevant Lines:
997

💛  - Coveralls


Todoist sendtask improve

index.tsx: Send task logic fix

sendDefaultLabel with no settings are equal "" not "--- ---" -> never display Send Task form (fixed)

deadline/schedule + repeat parsing to Todoist

Hi! Thanks for the PR.
(1) Unfortunately, I cannot reproduce the issue. Or perhaps I am not understanding you correctly.
(2) It's a nice FR but currently I am not keen to accept a PR that makes changes to the core code. The last time I did that, it was very difficult to troubleshoot issues brought up by other users. Will take it upon as a FR though.

Ok, the first fix is to address the issue that would make the form never displayed even if no settings are set besides API key.
For the second issue, it's ok, you take your time then.


Importing Composite raises error during initial import

If you don't have the sqlite module installed in your Python package in Python 3 (the pyPgSql module isn't supported in Python 3) an error is raised when importing the Composite module from rdkit.ML.Composite:
ImportError: Neither sqlite nor PgSQL support found.
This is a really strange error because it's due to the side effect of importing DbModule a few modules down. This seems like a big, especially if you're not directly using the database functionality of rdkit.
Would it be possible to refactor DbModule to be a function that returns an object with the various database configs, e.g. placeHolder, and deal with the errors in the respective usages instead? In the mean time I am compiling Python with sqlite3 but ideally I would not need to because I don't use it in my environment.

This is definitely fixable.
As a general point: the code in rdkit.ML.Composite is pretty dusty. It was quite useful years ago when we wrote it, but with the improvements in scikit-learn I don't think it is really still worth using and is likely to be deprecated at some point in the future.
If you can switch to scikit-learn, it's definitely worth doing so.

Ah makes sense. The code is our codebase is also a bit older, so I'm not sure the difficulty of switching to scikit-learn for this specific case. For the time being I'll compile my Python version with sqlite3 support to keep the error message quiet.


chore: remove deprecated version 7.17

Description
7.17 version no-longer available.

Release required?

[ ] No release
[ ] Patch release (x.x.X)
[x] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

@shemau ,
I'm not sure, why 7.17 is still available from the UI because when trying to deploy using terraform getting the below error

/run pipeline

:tada: This PR is included in version 1.8.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


SW-5487 Rename Contact Us to Help & Support; move to menu

The "Contact Us" link in the left nav is now a "Help & Support" item in the
user menu in the top nav. The page title is also now "Help & Support" and the
component names and routes are renamed to make them consistent with the
user-visible name.

#2727  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @sgrimm and the rest of your teammates on  Graphite


Migrate App Engine standard environment Google Analytics sample here

I see that the App Engine documentation references appengine-google-analytics-java instead of the analytics sample in this repository.
It probably doesn't make sense to have two analytics samples that seem to serve the same purpose. While we're at it, it would be helpful to improve the documentation. Right now the code that is included looks out-of-place. It'd be better to break it up and talk about the different concepts separately.

Notice: this issue has been closed because it has been inactive for 1161 days. You may reopen this issue if it has been closed in error.


Wiki pages with protected names are unviewable

Can you reproduce the bug at https://try.gitea.io:

[x] Yes (provide example URL) https://try.gitea.io/Bwko/VsCode/wiki/_pages
[ ] No
[ ] Not relevant

Description
Create a page with the title _pages or _new. The wiki page get's created but is unviewable.

It should return error message when creating.


Add Coupons module

I added a Coupons module. Currently I only need the retrieve/1 method for a coupon validation endpoint so that's all I added, but the rest can be added later.

fix type disparity between make_request and make_request_with_key
add coupons functionality
add retrieve/1
add test for retrieve/1

Hmm, looks like the error is related to a Coveralls timeout? Not sure what to do about that.


PMID:20736315

abnormal negative regulation of mitotic DNA replication initiation resulting in continuous DNA synthesis
replication origin refiring resulting in local amplification

or :  replication origin refiring resulting in unequal replication

How should these terms be defined? (If you don't already have suggestions I'll look at the paper, but it'll save me that time if you do know.)
The second term sounds like a very slightly more specific version of FYPO:00061426 ! abnormal negative regulation of mitotic DNA replication initiation resulting in partial rereplication.

I use expressivity extensions to represent how many rounds of rereplication take place.

For the first term, see FYPO:0006576 in #3310. I put "continuous" in a related synonym, because it doesn't do a great job of conveying how this phenotype differs from the other new subclass of FYPO:0001425. Replication has to re-initiate when it shouldn't in both types, so I was confused for a while about what "continuous" meant.
For the second, I tried to figure out if it's really different from FYPO:0001426, but couldn't pin anything down. So I've added a synonym; can revisit if you find anything I missed.
edit file: 40fba236182fa955ab21d3c0212ef93056fb31b3
release: 6a623d18fa658d9addc4479b145f8c08c6938aba

ok, I'm not sure if replication could be described as 'complete' or 'partial' from what the paper said (i presume the genome could be completely replicated 32x, or some parts could be replicated 32x+ and some parts less than 32x....I don't think they showed how faithful 'overall' replication is in this mutant.


update LDA models from MultivariateStats and begin process of removing MLJBase as dependency

This PR does a couple of things.

Remove LDA models dependency on MLJBase  . Replaced UnivariateFinite with Dict (see #264 )
Fixed bug in LDA models. LDA fails when one of the following scenarios is true

the number of unique classes nc in training data is 1
the number of training examples n is less than or equals the number of unique classes nc found in training data.

Added better descriptions for LDA models
Make default model parameters for LDA models close with that used in MultivariateStats package.
Added more parameters to the report for LDA models

Looks good. Let's hold off merging until the next minor release.

That's fine by me


Compilation error when building Charm++ with "--disable-error-checking"

Original issue: https://charm.cs.illinois.edu/redmine/issues/131

When building Charm++ with the following commands, Charm++ is NOT built.

./build LIBS net-linux-x86_64 --suffix=test-trace --disable-error-checking -j32 -optimize
./build LIBS net-linux-x86_64 smp --suffix=test-trace --disable-error-checking -j32 -optimize

build options give this compilation error:
debug-charm.C: In function ‘void CpdBeforeEp(int, void*, void*)’:
debug-charm.C:66: error: expected primary-expression before ‘;’ token
../bin/charmc  -optimize  -c -I. NborBaseLB.C
Fatal Error by charmc in directory /home/acun2/charmm/net-linux-x86_64-test-trace/tmp
   Command g++ -m64 -DCMK_GFORTRAN -I../bin/../include -D__CHARMC__=1 -I. -O3 -fno-stack-protector -c debug-charm.C -o debug-charm.o returned error code 1
charmc exiting...
../bin/charmc  -optimize  -c -I. ckgraphTemp.C
gmake: *** [debug-charm.o] Error 1
gmake: *** Waiting for unfinished jobs....
-------------------------------------------------
Charm++ NOT BUILT. Either cd into net-linux-x86_64-test-trace/tmp and try

./build LIBS net-linux-x86_64 gcc --suffix=test-trace --disable-error-checking -j32 -optimize
./build LIBS net-linux-x86_64 gcc smp --suffix=test-trace --disable-error-checking -j32 -optimize

options give the following:
debug-charm.C: In function ‘void CpdBeforeEp(int, void*, void*)’:
debug-charm.C:66: error: expected primary-expression before ‘;’ token
../bin/charmc  -optimize  -c -I. ckobjid.C
../bin/charmc  -optimize  -c -I. LBDBManager.C
Fatal Error by charmc in directory /home/acun2/charmm/net-linux-x86_64-gcc-test-trace/tmp
   Command g++ -fPIC -Wno-deprecated -I../bin/../include -D__CHARMC__=1 -I. -O3 -fno-stack-protector -c debug-charm.C -o debug-charm.o returned error code 1
charmc exiting...
../bin/charmc  -optimize  -c -I. LBComm.C
../bin/charmc  -optimize  -c -I. LBObj.C
../bin/charmc  -optimize  -c -I. LBMachineUtil.C
../bin/charmc  -optimize  -c -I. CentralPredictor.C
gmake: *** [debug-charm.o] Error 1
gmake: *** Waiting for unfinished jobs....
-------------------------------------------------
Charm++ NOT BUILT. Either cd into net-linux-x86_64-gcc-test-trace/tmp and try

./build LIBS net-linux-x86_64 icc --suffix=test-trace --disable-error-checking -j32 -optimize

compilation aborted for debug-charm.C (code 2)
Fatal Error by charmc in directory /home/acun2/charmm/net-linux-x86_64-icc-test-trace/tmp
   Command icpc -fpic -I../bin/../include -D__CHARMC__=1 -I. -O3 -fno-stack-protector -c debug-charm.C -o debug-charm.o returned error code 2
charmc exiting...
gmake: *** [debug-charm.o] Error 1
gmake: *** Waiting for unfinished jobs....
ckreduction.C(833): warning #557: pointless comparison of unsigned integer with a negative constant
          if (m->userFlag!=-1)
                         ^

ckreduction.C(1016): warning #557: pointless comparison of unsigned integer with a negative constant
                  if (m->userFlag!=-1)
                                 ^

ckreduction.C(1304): warning #68: integer conversion resulted in a change of sign
    ret->userFlag=-1;
                  ^

ckreduction.C(2245): warning #557: pointless comparison of unsigned integer with a negative constant
          if (m->userFlag!=-1)
                         ^

ckobjid.C(46): warning #1011: missing return statement at end of non-void function "CkObjID::getObject"
  }
  ^

ckobjid.C(68): warning #1011: missing return statement at end of non-void function "CkObjID::guessPE"
  };
  ^

-------------------------------------------------
Charm++ NOT BUILT. Either cd into net-linux-x86_64-icc-test-trace/tmp and try

./build LIBS net-linux-x86_64 icc smp --suffix=test-trace --disable-error-checking -j32 -optimize

../bin/charmc  -optimize  -c -I. ckmessagelogging.C
ckreduction.C(833): warning #557: pointless comparison of unsigned integer with a negative constant
          if (m->userFlag!=-1)
                         ^

ckreduction.C(1016): warning #557: pointless comparison of unsigned integer with a negative constant
                  if (m->userFlag!=-1)
                                 ^

ckreduction.C(1304): warning #68: integer conversion resulted in a change of sign
    ret->userFlag=-1;
                  ^

ckreduction.C(2245): warning #557: pointless comparison of unsigned integer with a negative constant
          if (m->userFlag!=-1)
                         ^

debug-charm.C(66): error: expected an expression
      entry.previousChareID = setMemoryChareIDFromPtr(obj);
                                                          ^

debug-charm.C(1018): warning #2193: null argument provided for parameter marked with attribute "nonnull"
   if (-1 == execvp(gdbScript, NULL))
                               ^

ck.C(2200): warning #654: overloaded virtual function "CkMessageWatcher::process" is only partially overridden in class "CkMessageDetailRecorder"
  class CkMessageDetailRecorder : public CkMessageWatcher {
        ^

ck.C(2431): warning #654: overloaded virtual function "CkMessageWatcher::process" is only partially overridden in class "CkMessageDetailReplay"
  class CkMessageDetailReplay : public CkMessageWatcher {
        ^

ck.C(2622): warning #186: pointless comparison of unsigned integer with zero
      if (e->getSrcPe()<0 || e->getSrcPe()>=CkNumPes()+CkNumNodes()) return 0;
                       ^

compilation aborted for debug-charm.C (code 2)
Fatal Error by charmc in directory /home/acun2/charmm/net-linux-x86_64-smp-icc-test-trace/tmp
   Command icpc -fpic -D_REENTRANT -I../bin/../include -D__CHARMC__=1 -I. -O3 -fno-stack-protector -c debug-charm.C -o debug-charm.o returned error code 2
charmc exiting...
gmake: *** [debug-charm.o] Error 1
gmake: *** Waiting for unfinished jobs....
ckarrayreductionmgr.C(124): warning #557: pointless comparison of unsigned integer with a negative constant
  			if (m->userFlag!=-1)
  			               ^

-------------------------------------------------
Charm++ NOT BUILT. Either cd into net-linux-x86_64-smp-icc-test-trace/tmp and try

Original date: 2013-03-26 02:49:48

This tells us that passing -optimize flag to build does not enable CMK_OPTIMIZE flag. Also, debug-charm.C is using CMK_OPTIMIZE flag for enabling debugging code; using CMK_ERROR_CHECKING may be more accurate. This should affect all builds (break all of them using this flag combination)!

Original date: 2013-03-27 21:47:00

Happens on net-linux-x86_64, too. It was a silly problem of mismatched tests against CMK_CHARMDEBUG/CMK_ERROR_CHECKING/CMK_OPTIMIZE. Will fix shortly.

Original date: 2013-03-27 22:10:42

Fixed in commit 96a08a1ba8f5eea783639ee89e52f881a0ea3ebb. Please confirm that compilation now succeeds under the affected options and close.

Original date: 2013-03-27 22:16:53

This is pretty easy to backport, and fixes a brown-paper-bag bug.


Want to add features

In activity_main.xml

There is no hint in AutoCompleteTextView

In NavigationView menu items on click its showing toast "Not implemented yet"
The items where I can work

Setting
About us
Share
Privacy Policy

Expected behaviour

In autocompletetextview I can add hint as "Add Location" or whatever you suggest
NavigationView items onClick I want your suggestion So that I can work according to it

Would you like to work on the issue?
Yeah, why not😇

Great work on yor previous contribution! Sure, you're welcome to create new screens (Setting, Share - rasiest, About us - where you can either hardcode list of contributers, or use Github API to load list of contributers - maybe after).

@ardovic Issue still open. I would like to work on navigation view menu if it isn't started yet.

@ardovic Issue still open. I would like to work on navigation view menu if it isn't started yet.


recurrent example for docs

Motivation and description
Dealing with recurrent networks presents a lot of questions because it works rather differently from the stateless case.
I think it would be extremely helpful to have explicit examples: one for sequence-to-sequence and one for sequence-to-one.
Possible Implementation
I might come back and contribute this, but as I'm posting this I still don't think I'm doing this the intended way...

I haven’t used the library for recurrent nets, so would be interested to see how this works and am open to changes of API if necessary 👍

I've messed around with it more since writing this.  Recurrent nets seem to require a fair amount of dedicated code, I'm not sure if FluxTraining.jl would be the place for all of it.  In particular, I've found myself needing to write functions to:

Predict sequence-to-sequence.
Predict sequence-to-one.
Recurrently predict future of a sequence after a seed.
Each of these for batches.

Additionally I wonder if the way sequences are stored is uniform in the ecosystem.  The flux documentation itself strongly suggests that sequences should be nested arrays rather than rank-3 arrays.

I have used Flux + FluxTraining quite a bit for recurrent models in the past. In general, you shouldn't need to do anything special. Most of the work is related primarily to Flux and how it expects the data. Here is the situation I almost always end up in, and it might be useful for you.

There is a function generate(T) that creates a T x D matrix of where T is time and D is the feature dimension.
I can generate a vector of samples as samples = [generate(T) for _ in 1:nsamples].
I use Flux.batchseq(samples) to turn this into a sequence of batches (from a batch of sequences). This is the key step.
You can generate many batches repeating the above steps with nsamples = batch_size for nbatches iterations.

In general as long as you think of a single sample in your dataset as a single sequence, then you can adapt the steps above to get them into the sequence of batches (samples) that Flux wants.
From there, achieving the different tasks is all in the loss function.
# seq to seq prediction
function seq2seq_loss(loss_fn)
    function _loss(m, xs, ys)
         yhats = [m(xi) for xi in xs]
         return mean(loss_fn(yhat, yi) for (yhat, yi) in zip(yhats, yi))
    end

    return _loss
end

# seq to one prediction
function seq2one_loss(loss_fn)
    function _loss(m, xs, ys)
         yhats = [m(xi) for xi in xs]
         return loss_fn(yhats[end], ys[end])
    end

    return _loss
end

# samplers for mapping the previous token to the next token
# used below in sample_model
sample_softmax(y::AbstractVector) =
    Flux.onehot(rand(Categorical(softmax(y))), 1:length(y))
function sample_softmax(y::AbstractMatrix)
    ŷs = [rand(Categorical(y)) for y in eachcol(softmax(ys))]

    return Flux.onehotbatch(ŷs, 1:size(y, 1))
end

sample_best(ys::AbstractVecOrMat) = Flux.onehot(argmax(ys; dims = 1), 1:size(ys, 1))

# recurrently predict a sequence given a primer input sequence
function sample_model(model, nseq, primer = [], sampler = identity)
    Flux.reset!(model)
    tokens = [model(x) for x in primer]
    ncurrent = length(tokens)
    while ncurrent < nseq
        nexttoken = model(sampler(last(tokens)))
        push!(tokens, nexttoken)
        ncurrent += 1
    end

    return tokens
end

Note that batching does not affect any of the functions above. As long as you get the "sequence of batches" format right, you should be good.
If you still want to express all this using FluxTraining, then the following is something I've used in the past.
get_inout_seq(xs::AbstractVector) = xs[1:(end - 1)], xs[2:end]
get_inout_seq(xs::NTuple{2}) = xs[1], xs[2]

struct BPTTTrainingPhase <: AbstractTrainingPhase end

function FluxTraining.step!(learner, phase::BPTTTrainingPhase, batch)
    xs, ys = get_inout_seq(batch)
    FluxTraining.runstep(learner, phase, (xs = xs, ys = ys)) do handle, state
        Flux.reset!(learner.model)
        state.grads = gradient(learner.params) do
            state.ŷs = [learner.model(xi) for xi in state.xs]
            handle(FluxTraining.LossBegin())
            state.loss = learner.lossfn(state.ŷs, state.ys)

            handle(FluxTraining.BackwardBegin())
            return state.loss
        end
        handle(FluxTraining.BackwardEnd())
        Flux.update!(learner.optimizer, learner.params, state.grads)
    end
end

struct BPTTValidationPhase <: AbstractValidationPhase
    nfeedback::Int
    sampler
end
BPTTValidationPhase() = BPTTValidationPhase(0, identity)
BPTTValidationPhase(nfeedback) = BPTTValidationPhase(nfeedback, identity)

function FluxTraining.step!(learner, phase::BPTTValidationPhase, batch)
    xs, ys = get_inout_seq(batch)
    FluxTraining.runstep(learner, phase, (xs = xs, ys = ys)) do _, state
        Flux.reset!(learner.model)
        n = length(state.xs) - phase.nfeedback
        # n steps where input drives model
        state.ŷs = [learner.model(state.xs[i]) for i in 1:n]
        # nfeedback steps where the model drives itself
        for _ in (n + 1):length(state.xs)
            ŷ = phase.sampler(state.ŷs[end])
            push!(state.ŷs, learner.model(ŷ))
        end
        state.loss = learner.lossfn(state.ŷs, state.ys)
    end
end

I don't need to do this for training recurrent models, but I found it nice for a particular project where BPTT was the thing I was comparing against. Specifically, BPTTValidationPhase is nice for allowing evaluating models in the recurrently driven mode where they feed their own input.

If your data is already in a big rank-3 array, then you can make your axis order as time x samples x feature, and use Base.Iterators or MLUtils.jl to partition this along second axis into a vector of time x batch x feature chunks. A Recur model in Flux should consume these chunks correctly.
Otherwise, I find the approach of treating each sample as a self-contained time series is the most intuitive and compatible with existing data wrangling/loading packages like MLUtils.jl. Just remember to batchseq before passing to the Flux model.

Additionally I wonder if the way sequences are stored is uniform in the ecosystem. The flux documentation itself strongly suggests that sequences should be nested arrays rather than rank-3 arrays.

Note that we actually do support 3D arrays of shape (features, batch, timesteps) as inputs to RNN layers. The reason it's not documented/advertised is we're not sure whether the API makes sense. For example, how do you differentiate between a batched sequence input to a normal RNN and one timestep of input to a conv-based RNN? The current implementation also does the same partitioning by timesteps you'd do by hand internally, so it should be slower than Kyle's suggestion above.

Note I edited my comments from the original to correct a mistake in the order of the axis dimensions. Clearly, the time I've been spending with Jax recently is leaking...


Update About

The description of DDMR in the About is quite outdated (right-hand side of the GitHub repo).
I would rewrite to something along the lines of "3D deep image registration through adaptive loss weighting and synthetic data generation".
I'm unable to change this, so assigning the task to @jpdefrutos

Updated!


Not getting any data in mixpanel reports for events and users

Hi there,
I have integrated mixpanel into my project successfully. also i have verified mixpanel connection in connection steps.
My project token is also correct but still i'm unable to see any logs or events.
Can anyone please help me on this. I'm stuck on this since few days now.
here are logs from my app
2021-04-06 16:41:22.208 11043-11931/com.biznumbers E/LOG-EVENT: MixPanel Registration Completed > {"type":"Registration Completed"}
2021-04-06 16:41:22.208 11043-11931/com.biznumbers V/MixpanelAPI.DecideUpdts: No unseen triggered notifications exist, none will be returned.
2021-04-06 16:41:22.236 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing event for sending later (Thread 79871)
2021-04-06 16:41:22.236 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"event":"Registration Completed","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707482,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","type":"Registration Completed"},"$mp_metadata":{"$mp_event_id":"d6b3bc0a0b1827df","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":0,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:22.237 11043-11043/com.biznumbers W/MixpanelAPI.API: Attempted to alias identical distinct_ids xLSAy863wqZgHfQDCpwyNkuK2uF2. Alias message will not be sent.
2021-04-06 16:41:22.242 11043-11043/com.biznumbers V/MixpanelAPI.DecideUpdts: No unseen notifications exist, none will be returned.
2021-04-06 16:41:22.242 11043-11043/com.biznumbers V/MixpanelAPI.API: No notification available, will not show.
2021-04-06 16:41:22.254 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing people record for sending later (Thread 79871)
2021-04-06 16:41:22.254 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus"},"$token":"xxx","$time":1617707482237,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"ca77d98ddb5bc820","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":0,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:22.268 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing people record for sending later (Thread 79871)
2021-04-06 16:41:22.268 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","$phone":"+919876543210"},"$token":"xxx","$time":1617707482237,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"5c96269ebd01b44a","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":1,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:22.280 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing people record for sending later (Thread 79871)
2021-04-06 16:41:22.280 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","Sign up date":"2021-04-06"},"$token":"xxx","$time":1617707482238,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"e7c4b5f55e323e43","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":2,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:25.170 11043-11357/com.biznumbers V/MixpanelAPI.PIdentity: Storing Super Properties {"user domain":"08AUNPB3276G1ZK"}
2021-04-06 16:41:25.170 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing people record for sending later (Thread 79871)
2021-04-06 16:41:25.170 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","company":"BINDAL ENTERPRISES"},"$token":"xxx","$time":1617707485169,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"a5c0505667b26ae4","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":3,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:25.172 11043-11043/com.biznumbers V/MixpanelAPI.DecideUpdts: No unseen notifications exist, none will be returned.
2021-04-06 16:41:25.172 11043-11043/com.biznumbers V/MixpanelAPI.API: No notification available, will not show.
2021-04-06 16:41:25.197 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing people record for sending later (Thread 79871)
2021-04-06 16:41:25.197 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","gst_no":"08AUNPB3276G1ZK"},"$token":"xxx","$time":1617707485169,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"9368fdcbf5881d1a","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":4,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:25.249 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing people record for sending later (Thread 79871)
2021-04-06 16:41:25.249 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","$orgId":"08AUNPB3276G1ZK"},"$token":"xxx","$time":1617707485169,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"634f829cc748c7f0","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":5,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:25.291 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing event for sending later (Thread 79871)
2021-04-06 16:41:25.291 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"event":"update info button clicked","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707485,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2"},"$mp_metadata":{"$mp_event_id":"4b46fffce914b7c","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":1,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:30.372 11043-11931/com.biznumbers E/LOG-EVENT: MixPanel View > {"type":"Sales"}
2021-04-06 16:41:30.373 11043-11931/com.biznumbers V/MixpanelAPI.DecideUpdts: No unseen triggered notifications exist, none will be returned.
2021-04-06 16:41:30.383 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing event for sending later (Thread 79871)
2021-04-06 16:41:30.384 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"event":"View","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707490,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","type":"Sales"},"$mp_metadata":{"$mp_event_id":"9d1274a2839f3b4d","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":2,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:31.318 11043-11420/com.biznumbers E/LOG-EVENT: MixPanel View > {"type":"Purchase"}
2021-04-06 16:41:31.319 11043-11420/com.biznumbers V/MixpanelAPI.DecideUpdts: No unseen triggered notifications exist, none will be returned.
2021-04-06 16:41:31.337 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing event for sending later (Thread 79871)
2021-04-06 16:41:31.337 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"event":"View","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707491,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","type":"Purchase"},"$mp_metadata":{"$mp_event_id":"cf9cd598c72459e1","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":3,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:32.309 11043-11341/com.biznumbers E/LOG-EVENT: MixPanel View > {"type":"Sales"}
2021-04-06 16:41:32.310 11043-11341/com.biznumbers V/MixpanelAPI.DecideUpdts: No unseen triggered notifications exist, none will be returned.
2021-04-06 16:41:32.320 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing event for sending later (Thread 79871)
2021-04-06 16:41:32.320 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"event":"View","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707492,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","type":"Sales"},"$mp_metadata":{"$mp_event_id":"b6644bf37d389b27","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":4,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:33.063 11043-11341/com.biznumbers E/LOG-EVENT: MixPanel View > {"type":"Sales Account"}
2021-04-06 16:41:33.070 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing event for sending later (Thread 79871)
2021-04-06 16:41:33.070 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"event":"View","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707493,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","type":"Sales Account"},"$mp_metadata":{"$mp_event_id":"e5e8c87d58c37a84","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":5,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:33.075 11043-11043/com.biznumbers V/MixpanelAPI.DecideUpdts: No unseen notifications exist, none will be returned.
2021-04-06 16:41:33.075 11043-11043/com.biznumbers V/MixpanelAPI.API: No notification available, will not show.
2021-04-06 16:41:34.238 11043-11043/com.biznumbers V/MixpanelAPI.DecideUpdts: No unseen notifications exist, none will be returned.
2021-04-06 16:41:34.238 11043-11043/com.biznumbers V/MixpanelAPI.API: No notification available, will not show.
2021-04-06 16:41:36.642 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing people record for sending later (Thread 79871)
2021-04-06 16:41:36.642 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"$add":{"$ae_total_app_sessions":1},"$token":"xxx","$time":1617707496641,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"271ff3c95c02627a","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":6,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:36.669 11043-11043/com.biznumbers E/LOG-EVENT: MixPanel shutDown > f.h.a.b.p@b3bdc8c
2021-04-06 16:41:36.675 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing people record for sending later (Thread 79871)
2021-04-06 16:41:36.675 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"$add":{"$ae_total_app_session_length":40.4},"$token":"xxx","$time":1617707496642,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"d84e70bb8f57b56e","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":7,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:36.698 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Queuing event for sending later (Thread 79871)
2021-04-06 16:41:36.698 11043-11330/com.biznumbers V/MixpanelAPI.Messages:     {"event":"$ae_session","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707496,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$ae_session_length":40.4},"$mp_metadata":{"$mp_event_id":"6c69e60c46329ad3","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":6,"$mp_session_start_sec":1617707456}} (Thread 79871)
2021-04-06 16:41:36.710 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Flushing queue due to scheduled or forced flush (Thread 79871)
2021-04-06 16:41:36.710 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Average send frequency approximately 18 seconds. (Thread 79871)
2021-04-06 16:41:36.711 11043-11330/com.biznumbers V/MixpanelAPI.Message: ConnectivityManager says we are online
2021-04-06 16:41:36.721 11043-11330/com.biznumbers V/MixpanelAPI.Message: Attempting request to https://api-eu.mixpanel.com/track?ip=1
2021-04-06 16:41:37.279 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Successfully posted to https://api-eu.mixpanel.com/track?ip=1:
[{"event":"Registration Completed","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707482,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","type":"Registration Completed"},"$mp_metadata":{"$mp_event_id":"d6b3bc0a0b1827df","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":0,"$mp_session_start_sec":1617707456}},{"event":"update info button clicked","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707485,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2"},"$mp_metadata":{"$mp_event_id":"4b46fffce914b7c","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":1,"$mp_session_start_sec":1617707456}},{"event":"View","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707490,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","type":"Sales"},"$mp_metadata":{"$mp_event_id":"9d1274a2839f3b4d","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":2,"$mp_session_start_sec":1617707456}},{"event":"View","properties":{"mp_lib":"android","$lib_version":"5.8.8","$os":"Android","$os_version":"10","$manufacturer":"OnePlus","$brand":"OnePlus","$model":"HD1901","$google_play_services":"available","$screen_dpi":420,"$screen_height":2290,"$screen_width":1080,"$app_version":"1.0.6","$app_version_string":"1.0.6","$app_release":"12","$app_build_number":"12","$has_nfc":true,"$has_telephone":true,"$carrier":"Jio 4G","$wifi":true,"$radio":"LTE","$bluetooth_version":"ble","token":"xxx","referrer":"utm_source=google-play&utm_medium=organic","utm_medium":"organic","utm_source":"google-play","user domain":"08AUNPB3276G1ZK","time":1617707491,"distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","type":"Purchase"},"$mp_metadata":{"$mp_event_id":"cf
2021-04-06 16:41:37.279 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Response was {"error":null,"status":1} (Thread 79871)
2021-04-06 16:41:37.279 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Not retrying this batch of events, deleting them from DB. (Thread 79871)
2021-04-06 16:41:37.308 11043-11330/com.biznumbers V/MixpanelAPI.Message: Attempting request to https://api-eu.mixpanel.com/engage?ip=1
2021-04-06 16:41:37.757 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Successfully posted to https://api-eu.mixpanel.com/engage?ip=1:
[{"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus"},"$token":"xxx","$time":1617707482237,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"ca77d98ddb5bc820","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":0,"$mp_session_start_sec":1617707456}},{"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","$phone":"+919876543210"},"$token":"xxx","$time":1617707482237,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"5c96269ebd01b44a","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":1,"$mp_session_start_sec":1617707456}},{"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","Sign up date":"2021-04-06"},"$token":"xxx","$time":1617707482238,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"e7c4b5f55e323e43","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":2,"$mp_session_start_sec":1617707456}},{"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","company":"BINDAL ENTERPRISES"},"$token":"xxx","$time":1617707485169,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"a5c0505667b26ae4","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":3,"$mp_session_start_sec":1617707456}},{"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","gst_no":"08AUNPB3276G1ZK"},"$token":"xxx","$time":1617707485169,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"9368fdcbf5881d1a","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":4,"$mp_session_start_sec":1617707456}},{"$set":{"$android_brand":"OnePlus","$android_app_version_code":"12","$android_app_version":"1.0.6","$android_os":"Android","$android_model":"HD1901","$android_lib_version":"5.8.8","$android_os_version":"10","$android_manufacturer":"OnePlus","$orgId":"08AUNPB3276G1ZK"},"$token":"xxx","$time":1617707485169,"$had_persisted_distinct_id":false,"$device_id":"9f3182f4-9247-486b-b003-1083dc1c9339","$distinct_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$user_id":"xLSAy863wqZgHfQDCpwyNkuK2uF2","$mp_metadata":{"$mp_event_id":"634f829cc748c7f0","$mp_session_id":"8aa70af1f0b5e587","$mp_session_seq_id":5,"$mp_session_start_sec":1617707456}},{"$add":{"$ae_total_app_sessions":1},"$token":"a8a74e4e8647ef
2021-04-06 16:41:37.757 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Response was {"error":null,"status":1} (Thread 79871)
2021-04-06 16:41:37.757 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Not retrying this batch of events, deleting them from DB. (Thread 79871)
2021-04-06 16:41:37.796 11043-11330/com.biznumbers V/MixpanelAPI.DChecker: Querying decide server, url: https://api-eu.mixpanel.com/decide?version=1&lib=android&token=xxx&distinct_id=xLSAy863wqZgHfQDCpwyNkuK2uF2&properties={"%24android_lib_version"%3A"5.8.8"%2C"%24android_app_version"%3A"1.0.6"%2C"%24android_version"%3A"10"%2C"%24android_app_release"%3A12%2C"%24android_device_model"%3A"HD1901"}
2021-04-06 16:41:37.797 11043-11330/com.biznumbers V/MixpanelAPI.Message: ConnectivityManager says we are online
2021-04-06 16:41:37.797 11043-11330/com.biznumbers V/MixpanelAPI.Message: Attempting request to https://api-eu.mixpanel.com/decide?version=1&lib=android&token=xxx&distinct_id=xLSAy863wqZgHfQDCpwyNkuK2uF2&properties={"%24android_lib_version"%3A"5.8.8"%2C"%24android_app_version"%3A"1.0.6"%2C"%24android_version"%3A"10"%2C"%24android_app_release"%3A12%2C"%24android_device_model"%3A"HD1901"}
2021-04-06 16:41:38.340 11043-11330/com.biznumbers V/MixpanelAPI.DChecker: Mixpanel decide server response was:
{"notifications":[],"automatic_events":true,"integrations":[]}
2021-04-06 16:41:38.341 11043-11330/com.biznumbers V/MixpanelAPI.DecideUpdts: New Decide content has become available. 0 notifications and 0 experiments have been added.
2021-04-06 16:41:38.343 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Flushing queue due to scheduled or forced flush (Thread 79871)
2021-04-06 16:41:38.343 11043-11330/com.biznumbers V/MixpanelAPI.Messages: Average send frequency approximately 17 seconds. (Thread 79871)
2021-04-06 16:41:38.347 11043-11330/com.biznumbers V/MixpanelAPI.Message: ConnectivityManager says we are online
2021-04-06 16:41:38.378 11043-11330/com.biznumbers V/MixpanelAPI.DChecker: Querying decide server, url: https://api-eu.mixpanel.com/decide?version=1&lib=android&token=xxx&distinct_id=xLSAy863wqZgHfQDCpwyNkuK2uF2&properties={"%24android_lib_version"%3A"5.8.8"%2C"%24android_app_version"%3A"1.0.6"%2C"%24android_version"%3A"10"%2C"%24android_app_release"%3A12%2C"%24android_device_model"%3A"HD1901"}
2021-04-06 16:41:38.380 11043-11330/com.biznumbers V/MixpanelAPI.Message: ConnectivityManager says we are online
2021-04-06 16:41:38.380 11043-11330/com.biznumbers V/MixpanelAPI.Message: Attempting request to https://api-eu.mixpanel.com/decide?version=1&lib=android&token=xxx&distinct_id=xLSAy863wqZgHfQDCpwyNkuK2uF2&properties={"%24android_lib_version"%3A"5.8.8"%2C"%24android_app_version"%3A"1.0.6"%2C"%24android_version"%3A"10"%2C"%24android_app_release"%3A12%2C"%24android_device_model"%3A"HD1901"}
2021-04-06 16:41:38.781 11043-11330/com.biznumbers V/MixpanelAPI.DChecker: Mixpanel decide server response was:
{"notifications":[],"automatic_events":true,"integrations":[]}
2021-04-06 16:41:38.782 11043-11330/com.biznumbers V/MixpanelAPI.DecideUpdts: New Decide content has become available. 0 notifications and 0 experiments have been added.

hi @iamkhan001 , it looks like there were some connection issues to Mixpanel server at that time. Do you still have the problem now?

Hi @zihejia , yes i'm still facing issues with events, I cannot see any event in mixpanel

hi @iamkhan001 , are you in the eu? What is your settings in AndroidManifest.xml?

hi @zihejia, I'm  from india.
here are my manifest settings for mixpanel
Manifest

    <meta-data android:name="com.mixpanel.android.MPConfig.EventsEndpoint"
        android:value="https://api-eu.mixpanel.com/track?ip=1" />
    <meta-data android:name="com.mixpanel.android.MPConfig.PeopleEndpoint"
        android:value="https://api-eu.mixpanel.com/engage?ip=1" />
    <meta-data android:name="com.mixpanel.android.MPConfig.GroupsEndpoint"
        android:value="https://api-eu.mixpanel.com/groups" />
    <meta-data android:name="com.mixpanel.android.MPConfig.DecideEndpoint"
        android:value="https://api-eu.mixpanel.com/decide" />
    <meta-data
        android:name="com.mixpanel.android.MPConfig.DisableViewCrawler"
        android:value="true"/>
    <meta-data
        android:name="com.mixpanel.android.MPConfig.EnableDebugLogging"
        android:value="true" />

    <receiver android:name="com.mixpanel.android.mpmetrics.MixpanelPushNotificationDismissedReceiver"/>

Helper class to post events
class MyEventLogger(private val context: Context) {

    companion object {

        @SuppressLint("StaticFieldLeak")
        private var instance: MyEventLogger? = null

        fun getInstance(context: Context) = instance ?: synchronized(this) {
            instance ?: MyEventLogger(context).also {
                Log.e(TAG,"CREATE OBJ MyEventLogger")
                instance = it
            }
        }
      }

private val mixpanel: MixpanelAPI = MixpanelAPI.getInstance(context, MIXPANEL_TOKEN)

fun setUser() {
     val user = Firebase.auth.currentUser
     user?.let {
                val people: MixpanelAPI.People = mixpanel.people
                mixpanel.alias(it.uid, null)
                mixpanel.identify(it.uid)
                mixpanel.people.identify(it.uid)

                people.set("\$email", it.email)
                people.set("\$phone", it.phoneNumber)
                people.set("Sign up date", MyDateTimeUtils.getDateToday())
    }
}

fun logEvent(eventName: String, type: String){

        val obj = JSONObject()
        obj.put("type", type)
        mixpanel.track(eventName, obj)

}

Hi @zihejia after changing api end point to  https://api.mixpanel.com/track?ip=1, it's working fine.
thanks for your support


Fixed OPENTOK-26801

Fixed OPENTOK-26801 Now build can be built from command line interface with ./gradlew assembleRelease

@ArdyTokbox I have tried to modify your branch, but I have not permissions. Please, see the PR: https://github.com/opentok/opentok-android-sdk-samples/pull/85 We cannot remove the lines/separators. These are being used by the archiving status bar.


Add helper methods to CommandResult

This adds the following helper methods to CommandResult to prevent lots of duplication in plugins:

CommandResult.successCount(int)
CommandResult.affectedBlocks(int)
CommandResult.affectedEntities(int)
CommandResult.affectedItems(int)
CommandResult.queryResult(int)

When should reach result type be returned? does this automatically set success? Is it possible to set affected entities, but for the command to still fail?

@ryantheleach These are simply helper methods.

success:
old: CommandResult.builder().successCount(count).build()
new CommandResult.successCount(1)
affected blocks:
old: CommandResult.builder().affectedBlocks(count).build()
new CommandResult.affectedBlocks(1)
... etc

Yes but should developers use them mutually exclusively? or is there times when you would want to use both in a builder? I don't understand it from reading the docs of the builder, and figured while you are editing the class you could provide some guidance to developers.

@ryantheleach Vanilla only updates one at a time, yes, but there isn't anything from preventing vanilla, mods, or plugins from updating multiple values at once.


updated URL in example to new mbed domain

The URL for the file used in the mbed HTTP Client example has changed from http://mbed.org/media/uploads/donatien/hello.txt to https://developer.mbed.org/media/uploads/donatien/hello.txt

Thanks, @dh1tw!


Group rectangles

16 berserkers found, but actually 7 is in inventory
Seems you don't group rectangles with cv2, do you?
For example:
def get_rectangles(image, template, THRESHOLD = 0.8):
    result = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED)
    yloc, xloc = np.where(result >= THRESHOLD)

    rectangles = []

    [ht, wt] = template.shape
    for (x, y) in zip(xloc, yloc):
        rectangles.append([int(x), int(y), int(wt), int(ht)])
        rectangles.append([int(x), int(y), int(wt), int(ht)])

    rectangles, weights = cv2.groupRectangles(rectangles, 1, 0.1)

    return rectangles

Could you explain what does it do exactly?
As far as I understand, it should eliminate possible overlapping rectangles?
It's also interesting that it's first time I'm seeing the algorithm detects the same inventory item as multiple matches. Could you provide a little bit more info about your setup?

yes, it is for groupping close rectangles
windows 10, i dont know what is correct scale rate for my window (1920x1040 paint says)

The support for the windowed version should arrive soon. Hope it will help it your case.

@antofa, I've added the implementation for rectangle grouping in 65bb088. Could you please take a look and validate that the code is correct? After that, I'll close this issue.


Use multiple user pools

If I wanted to use multiple User Pools in my application what would I do to implement that?

Hi @ghendo, I don't think this library supports that right now.  Can you tell us more about your particular requirements?  There may be other solutions that we could provide some guidance on.

Hi @ghendo, I don't think this library supports that right now. Can you tell us more about your particular requirements? There may be other solutions that we could provide some guidance on.

I am doing an application dot net core that has multiple sites in one app and would like to keep the users separate in different pools.

If I wanted to use multiple User Pools in my application what would I do to implement that?

Roll a custom abstraction and implementation around the IAmazonCognitoIdentityProvider in the AWS SDK. The IdentityProvider Client's constructor signature
public AmazonCognitoIdentityProviderClient (string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)

doesn't rely on any appclient or userpool settings; those values are set in the request object params in the individual client api calls. So it would be possible to do it consistent with dependency injection but not using the AspNetCore Identity abstraction. The CognitoUserStore relies on an injected UserPool configured in StartUp.

Hi,
This is currently not supported. In essence, the Identity membership system is designed to hit one source of data (one SQL database by default).
You could get around this, but you would have to do dual reads for a lot of the manager methods (FindByEmail etc).
Also you would have to do some arbitrage on where you want to do the writes.
as @tachyon1337 commented, one way is to implement your own IAmazonCognitoIdentityProvider and override the different methods we use in the stores layers, but it would be cumbersome. You will also need to do the same with the CognitoUserPool class.

Resolving, feel free to reopen if you have any other questions


tcp-keepalive not supported in EPEL redis

EPEL on CentOS 6 provides Redis 2.4.10 whereas it appears that the tcp-keepalive feature was added in Redis 2.8.
So I get this when I start Redis:
[root@centos-66-x64 ~]# /etc/init.d/redis start
Starting redis-server:
*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 55
>>> 'tcp-keepalive 0'
Bad directive or wrong number of arguments
                                                           [FAILED]

Feature added in this PR https://github.com/arioch/puppet-redis/pull/53

OK, looks like it would be too hard to support older versions of Redis.  I'll upgrade.


Warn when pyproject.toml exists but cannot be read

Fixed by https://github.com/cruft/cruft/pull/107


BREAKING: do not allow caching of non-GET requests or 5xx responses

This likely will not actually break anyone, but it is a change in contract.
ResponseBuilder now enforces that responses to any non-GET request, as well as 5xx
responses will not be cached, regardless of any earlier cache settings.

Coverage remained the same at 100.0% when pulling be7fadd74e01cf99bd0f6c8477149f9ece4308d6 on stop_caching_errors_and_non_gets into 33d32ef233273ec0f7f8f550bd343f0dd4699d34 on master.


Random crash running dave_demo.launch

It's very strange that the demo launches crash randomly with the following error msg.

gzserver: /home/woensug/uuv_ws/src/uuv_simulator/uuv_gazebo_plugins/uuv_gazebo_plugins/src/UnderwaterObjectPlugin.cc:209: virtual void gazebo::UnderwaterObjectPlugin::Update(const gazebo::common::UpdateInfo&): Assertion `(!std::isnan(linearAccel) && !std::isnan(angularAccel))&&("Linear or angular accelerations are invalid.")' failed.
Aborted (core dumped)

I see this crash when launching dave_demo.launch and dave_transient_current_demo.launch. I am sure this issue applies to every vehicle uploads using UUV Simulator's UnderwaterObjectPlugin.cc. It happens at both local machine installation and docker images.
This is something I've not seen before (in Ubuntu 18.04, ROS melodic, Gazebo9 environments). The part where UnderwaterObjectPlugin.cc applies ApplyHydrodynamicForces look fishy. Code block location
This is a log of time, flowVelocity, and link->RelativeLinearAccel().
Time : 1
FlowVelocity : 0.129224 0.482269 0
RelativeLinearAccel : -0.371587 0.063996 0.180227

Time : 1.002
FlowVelocity : 0.129227 0.482281 0
RelativeLinearAccel : -62430 19990.1 541.486

There is a sudden jump on vehicle's RelativeLinearAccel which is applied using `ApplyHydrodynamicForces(time, flowVelocity)
Still investigating...Not easy to debug, since it happens randomly.
Chane to see the crash (rate differs significantly without any reason)
dave_demo.launch : once out of 20 runs
dave_transient_current_demo.launch : once out of 5 runs

I've found a cure. But the cure it's fixing is something like a quantum mechanical behaviour of the code... out of my imagination.
The HydrodynamicModel::ComputeAcc function inside HydrodynamicModel.cc of UUV Simulator repo Link to the code take _velRel with this->link->RelativeLinearVel() and do its calculation and save it to this->lastVelRel. But the this->lastVelRel sometimes get resetted to zeros. Result in very large acceleration since the last velocity is zero.
Modifications made as a PR https://github.com/Field-Robotics-Lab/uuv_simulator/pull/2

@dtdavi1 The remedy is at https://github.com/Field-Robotics-Lab/uuv_simulator/pull/2

https://github.com/Field-Robotics-Lab/uuv_simulator/pull/2 has been merged.
Note: https://github.com/Field-Robotics-Lab/uuv_simulator/pull/2#pullrequestreview-734282778


[Feature Request] Transparent Spotify Window with Mica Background

this look .
like entirely see through,
I don't think this is possible, but if it's possible on discord, spotify which has basis in chromium must be able to.
I think such a workaround must be created at base spicetify itself.

Hey @Nimai-HK, thanks for the suggestion! A fully transparent Spotify window with a mica-like background sounds awesome. I've also tried exploring Discord themes for inspiration, but it seems like achieving full transparency with a custom background is a tricky one.
It's interesting that you've also tried Discord themes!  Could you share which ones you've looked at? Maybe we can compare notes and see if there are any common techniques used in those themes that we could potentially adapt.

I did it with better discord.. With a theme maker i found, it was something called luna create something idr..
I used it back in 2021..  back then it used to run on chromium base.
now i think better discord has it's own website for that https://bdeditor.dev/theme/materialdesign
and now it's using a standalone version with mica for everyone.

I'll just check through my chats, might be able to find something preserved from back then

this is not the see throught one, but all i did was to remove the background image part, and then change background colour format to Rgba and set it to transparent.. the theme already had a translucent blurred overlay or something.

i tryed it but its not working

well, thought so as well..
Know someone who might be able to do this?


How do I download all videos from certain channel if there is no playlist including all videos?

Thousands of videos so create my own playlist would take too much time.

use channel URL.


[package.json] Add test:unit:grep

Removed the change to package.json and instead just changed the documentation

@agamrafaeli Hey, that's like your 30th great PR on the project! Would you be interested in joining the maintainer group of the project @callemall/material-ui? I think that you deserve it. Let me now if you are interested.

@oliviertassinari would love to. What do you need from me?


Json company provider

added base data providers to enable out of the box json encoding for FastAPI in api usage.
extended results with intermediate results

In the course of checking variances between current benchmark data and the past, I note that Company AG has the following statistics:
ghg_s1s2: 104827858.636039
ghg_s3: 104827858.636039 (ignored)
base_year_production: 377380291.0897404
If one divides ghg_s1s2 by base_year_production to get emissions intensity, the result is 0.2778
Yet the claimed projected targets and intensities for 2019 are 1.6982474347547039.
The JSON file is very quiet about what units it is using, but we must assume that within a given company, the units are consistent.  Which would make me think that the base_year_production number is very wrong.  Am I missing something?


Xamarin.Android: add support

This PR allows the nuget package Google.Cloud.Speech.V1 to be used on the Xamarin.Android platform.
It relates to PR https://github.com/grpc/grpc/pull/15969

I was going to merge this with another commit to remove the project file change, but now I can't see why it's necessary.
FormatVersion explicitly handles null input, returning "" - the problem is just AppendVersion requiring a non-empty string. I'll look into how we actually want to handle unknown versions, and fix it either by returning a non-empty string from FormatVersion if it's passed null input, or by removing the constraint in AppendVersion.
Note that even when all of this works, we won't be ready to support Xamarin for Google Cloud Client Libraries. They may work in many cases, but they won't be supported until we've done more testing, documented an authentication strategy etc.

Closing this as #262 has now been merged.

Your alternative looks good too, thanks for following up.

Please note that in addition to the changes in #262 you still need to set the following to a valid path string in your main application code on Xamarin.Android as a workaround before using Google.Api.Gax to prevent an exception at https://github.com/aspnet/PlatformAbstractions/blob/rel/1.1.0/src/Microsoft.Extensions.PlatformAbstractions/ApplicationEnvironment.cs#L46 during initialization of field ApplicationEnvironment.ApplicationBasePath (since Path.GetFullPath(basePath), where basePath is null or "", throws):
AppDomain.CurrentDomain.SetData("APP_CONTEXT_BASE_DIRECTORY", Path.DirectorySeparatorChar.ToString());

See here https://github.com/Greenliff/grpc-xamarin-samples/blob/master/GrpcXamarinAndroidDemo/GrpcXamarinAndroidDemo/MainActivity.cs#L80.


Support the latest illuminate/container package

What
Enable Laravel 7.x support.
How
Allow the latest illuminate/container to be used in the composer.json file
Description
Literally no idea if this is going to cause errors within this package, and if it does I will be happy to fix them of course.

Thanks!


[Branding Api] Issue with image updates in checkout branding upsert.

Please list the package(s) involved in the issue, and include the version you are using
checkoutBrandUpsert
Describe the bug
Image updates for checkout branding returns invalid_or_missing_media_image for some images. It seems like this happens due to some checks on image size(width/height) but there is no information on this in the docs.
Steps to reproduce the behavior:

Switch to unstable Admin API version
Run checkoutBrandingUpsert mutation(for imageMediaId one of the autopopulated images in development store when created with test data can be used).

    mutation checkoutBrandingUpsert($checkoutBrandingInput: CheckoutBrandingInput!, $checkoutProfileId: ID!) {
      checkoutBrandingUpsert(
            checkoutBrandingInput: $checkoutBrandingInput
            checkoutProfileId: $checkoutProfileId
        ) {
             userErrors {
                field
                message
            }
        }
    }

with variables
    {
      "checkoutProfileId": "gid://shopify/CheckoutProfile/123",
      "checkoutBrandingInput": {
        "customizations": {
          "header": {
            "logo": {
              "image": {
                "mediaImageId": "gid://shopify/MediaImage/456"
              }
            }
          }
        }
      }
    }

Expected behavior
It should update the checkout logo successfully
Screenshots

👋 hey there folks - are you by chance uploading an SVG? we don't support this file format

Hey hey, no we are trying to upload a png file.
On Fri, 14 Jul 2023 at 2:40, jun @.***> wrote:

👋 hey there folks - are you by chance uploading an SVG? we don't support
this file format
—
Reply to this email directly, view it on GitHub
https://github.com/Shopify/ui-extensions/issues/1055#issuecomment-1635059278,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHSOWGRLXUS2ZMASMTLDSRDXQCBN3ANCNFSM6AAAAAAZ4UNVPI
.
You are receiving this because you commented.Message ID:
@.***>


RC failsafe boundary condition

When the RC failsafe is set to 0 seconds (and set to loiter in my case), the copter stops reacting to RC input entirely.

@agribov is it switching to loiter immediately? That would cause it to stop reacting to RC input.

Closing due to inactivity. If you're still experiencing this issue please reopen with more information (logs, etc).


[Bug]: sudden error: Dynamic ESS: Battery level unknown

Contact Details
<EMAIL_ADDRESS>VRM portal ID
c0619ab31cc4
Country / region
Netherlands (nl)
B max
42
TB max
6
FB max
6
TG max
16
FG max
16
Battery costs
0.025
Buy price
(p+0.13)*1.21+0.02
Sell price
(p+0.13)*1.21-0.02
feed-in possible
yes
feed-in control
None
Version
0.1.7 and Venus-OD 3.11
What happened?
I get the error code on the VRM site : Dynamic ESS error code: Dynamic ESS: Battery level unknown. VRM shows the correct percentage and Watts and current are moving. Same on the Cerbo. Also on NODE-Red everything show connected. How can this happen? Things seem to be working normal.

When did it happen?
19/10/2023 12:27  (Visible in Alarm LOGS)
Relevant log output
No response
Screenshots
![DESCRIPTION](LINK.png)

I’m getting the same issue. Just started.

This should not be an alarm. We are fixing that. You can ignore it.

It should be now fixed.

Yes, it is gone.

Closing this issue.


Unable to upload to Storage_v1 API

Attempting to upload a file through the gem to the storage api results in a Google::Apis::ClientError: parseError: This API does not support parsing form-encoded input. error.
storage.insert_object(bucket_name, nil, { name:'test_test.tar.gz.gpg', upload_source: File.open(file_path,'rb')})

is the command that I am trying to run. This line appears to be setting the content-type to form-encoded
Which is trigger right above it because the body is empty, which is empty because here
Thanks for any help.

Whoops guess I should have added this in the initial comment. @sqrrrl

FWIW, should be able to work around it by specifying the name in the body instead of query param.
storage.insert_object(bucket_name, { name: 'test_test.tar.gz.gpg' }, upload_source: File.open(file_path,'rb'))

Thank you that will work!! I owe you a  🍺

Looks like this issue is resolved.
I'll add for any future search results to use https://github.com/GoogleCloudPlatform/google-cloud-ruby for the Cloud Storage API


Extension is not working

Hi,
when debugging this code I can't get the images to display
The extension doesn't recognize the images in my code and when manually adding an expression nothing is displayed and the extension says Not ready for the specific expression
I've ran the following code
import numpy as np

# gradient image
N = 100
img = np.arange(N*N).reshape(N,N).astype(np.float32)

print("done")  # put a breakpoint here and try to view `img

These are the logs I'm getting
"[Debug]" "Breakpoint hit"
"[Debug]" "Check setup is okay or not"
"[Debug]" "Setup check failed" "'''"
"[Debug]" "Running setup... tries left:" 4
"[Debug]" "Run module setup code"
"[Debug]" "Run viewables setup code"
"[Debug]" "Check setup is okay or not"
"[Debug]" "Setup check failed" "'''"
"[Debug]" "Running setup... tries left:" 3
"[Debug]" "Run module setup code"
"[Debug]" "Run viewables setup code"
"[Debug]" "Check setup is okay or not"
"[Debug]" "Setup check failed" "'''"
"[Debug]" "Running setup... tries left:" 2
"[Debug]" "Run module setup code"
"[Debug]" "Run viewables setup code"
"[Debug]" "Check setup is okay or not"
"[Debug]" "Setup check failed" "'''"
"[Debug]" "Running setup... tries left:" 1
"[Debug]" "Run module setup code"
"[Debug]" "Run viewables setup code"
"[Debug]" "Check setup is okay or not"
"[Debug]" "Setup check failed" "'''"
"[Debug]" "Running setup... tries left:" 0
"[Debug]" "Run module setup code"
"[Debug]" "Run viewables setup code"
"[Debug]" "Check setup is okay or not"
"[Debug]" "Setup check failed" "'''"

System info:
debugging on remote ssh
Ubuntu 22.04 on both laptop and remote machine
VSCode: 1.95.3

Probably the same as #103
This is something to do with vscode, I think. I still wasn't able to work around it.


Feat/1.0 wip/node data

This PR
This PR changes block node storage so that block nodes do not, themselves, have to be unique, immutable, and unable to store their own data. Now block nodes can behave somewhat more like block entities, instead relying on their associated unique-data types for seeing if two block nodes are the same or not.
Associated Issues
This PR fixes #18.

Oop, still need to make sure debug-rendering is now looking at node unique-data hash-code instead of node hash-code.


Repalce not found

Any idea what this error means?
shell : {
    test : {
        options : {
            async: true
        },
        cmd: 'java -version'
    }
}

Here is the error:
Cannot call method 'replace' of undefined

This isn't reproducible against 0.3.6.  What platform were you using?  Please re-open if you have a reproducible case.


[ZEPPELIN-1746] Flaky test: PySparkInterpreterTest

What is this PR for?
PySparkInterpreter (and PySparkInterpreterMatplotlibTest, SparkInterpreterTest, SparkSqlInterpreterTest) test does not terminate SparkInterpreter after test end.
In the beginning, keeping SparkInterpreter alive was designed to prevent create/destroy SparkInterpreter multiple times in various tests, because it takes some time.
However, that is somehow misbehaving and getting problems like

starting another SparkInterpreter before one SparkInterpreter terminates
Does not finish PySparkInterpreter process explicitly cause py4j client somehow creates a lot of connection attempt, that consumes all capacity of systems port open, and make next SparkInterpreter start fail.

This PR terminates SparkInterpreter after test class finishes, to prevent above behavior.
What type of PR is it?
Hot Fix
Todos

[x] - Terminate SparkInterpreter after each test class

What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1746
How should this be tested?
CI becomes green
Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

Since many CI fails with this error, i'm merging it to master as a hotfix.


The size of an item dragged from an CtrlItemSlot is not the same as when dragged from an CtrlInventoryGrid

When dragging your item from slot to slot, or back to the inventory grid I think the size of the item should be what is set (width and height) in the protoset (.i.e the same as when dragging item from the inventory grid).
(Original issue: https://github.com/peter-kish/gloot/issues/167)

But what I can do is to introduce field_dimentions to CtrlItemSlot and make it work similar to CtrlInventoryGrid. Then the size of the slot would depend in the item size (from the protoset) and the field dimensions (which could make the icon behavior modes obsolete).

You could do that, however I think what you have done is good (provided you don't want to do the extra work to make that happen). Because now I can just calculate the slot sizes as multiples of a single cells height and width in the inventoryGrid and it should be roughly the same...

Alright, then I'm closing this for now. I'll reconsider introducing CtrlItemSlot.field_dimensions in v3.0 (right now I'm mostly focusing on making v2.x more stable).

@peter-kish After more thought:

Then the size of the slot would depend in the item size (from the protoset) and the field dimensions (which could make the icon behavior modes obsolete).

Nah, I wouldn't do this (item should still scale its image to the size of the slot; icon scaling is not in vain). Just use the field dimension for the size whilst dragging away from the slot (maybe with a more descriptive name). So basically field dimensions x width and height of the item in protoset with some sort of fall through if width and height are missing.
Field dimensions whilst dragging would be useful for the case in which you have differently sized weapons for example a one handed might be 1wx3h and two handed might be 2wx3h and shield might be 4x4. Where as you wouldn't want the slot size changing based on the item size, but while dragging you would want to match size when dragging from InventoryGrid.

the size of the dragged item will depend on which CtrlInventoryGrid you are dragging it from.
True, however I think its unlikely someone would have differently sized InventoryGrids. But, yeah set the field dimension on the slot is probably the wiser way to do it...

(right now I'm mostly focusing on making v2.x more stable).
Yeah, stability is probably more important. maybe reopen this issue or make a different issue and slap it with low priority. It would be a nice to have eventually.


React ref union types cause false errors

Search Terms
react ref union type
Suggestion
Currently React refs do not work when you applying it to different elements depending on some condition. I'd like to not have Typescript errors for this case
Use Cases
Sometimes we need to conditionally render different elements and attach refs to them:
function Button({ href }: { href: string }) {
    const ref = React.useRef<HTMLAnchorElement | HTMLButtonElement>()
    if (href) {
        return
//               Type 'RefObject<HTMLAnchorElement | HTMLButtonElement>' is not assignable
//               to type 'RefObject<HTMLAnchorElement>'.
    }
    return <button ref={ref}></button>

}

This code is valid Javascript, but reports an error in Typescript.
Playground example
I think, this is also related to the general covariance issue: https://github.com/microsoft/TypeScript/issues/10717#issuecomment-461977080
But I am wondering if there could be a more simple solution to this particular case

https://github.com/Microsoft/TypeScript/issues/21759 could solve this, as when passing a ref object to React.createElement, only the write side is consumed.

Solved my issue via React.useImperativeHandle hook:
function Button({ href }: { href: string }, ref: React.Ref<{focus(): void}>) {
    const ref = React.useRef<any>()
    React.useImperativeHandle(ref, () => ({focus: () => ref.current && ref.current.focus}))
    if (href) {
        return
    }
    return <button ref={ref}></button>

}


World Wide Wrestling RPG 2nd Ed - Nav buttons styled as tabs with player chosen color

Changes / Comments
This minor change styles the three page navigation buttons as tabs. These tabs adopt whatever color is set on the Settings tab.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[x] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


Not rendering on iOS 16

Downloaded the sample code, built it and ran it on an iOS device with iOS 16.3.1 and it doesn't show any of the progress bars.

I tried to reproduce the issue on an iPhone 8 running iOS 16.3.1 and couldn't reproduce the issue, it works well for me. Can you provide more details?

Hi @fekberg , did you manage to run the sample in the meanwhile? Does the issue still occur?

@fekberg Haven't heard back from you on this yet. I've not encountered the problem you're describing.

I was running it on an iPhone 14 with that iOS version, which is now iOS 17.
Sorry, haven't been working on the project for a while and can't remember what I did on iOS. I think it was due to the control being wrapped in another control, or something like that.  You can also tell me at Techorama next month 😉


Metrics (4/4)

related to #124
This PR contains several specific metrics
	Health records *prometheus.GaugeVec
	StatusPerIngressHosts *prometheus.GaugeVec
	StatusFailover *prometheus.GaugeVec
	StatusRoundRobin *prometheus.GaugeVec
	StatusGeoIP *prometheus.GaugeVec
	ZoneUpdateTotal *prometheus.CounterVec
	ErrorTotal *prometheus.CounterVec
	ReconciliationTotal prometheus.Counter

Demo
make destroy-full-local-setup deploy-full-local-setup upgrade-candidate deploy-prometheus
# wait
make stop-test-app
# wait
make start-test-app
# wait

k8gb_gslb_error_total

k8gb_gslb_healthy_records

k8gb_gslb_reconciliation_total

k8gb_gslb_status_failover

k8gb_gslb_status_roundrobin

k8gb_gslb_status_per_ingress_hosts

Infoblox metrics:

k8gb_infoblox_heartbeats_total
k8gb_infoblox_heartbeat_errors_total
k8gb_infoblox_zone_updates_total
k8gb_infoblox_zone_update_errors_total

Signed-off-by: kuritka<EMAIL_ADDRESS>

After today talk with @somaritane , @k0da I extended this PR with new infoblox metrics + tests:

k8gb_infoblox_heartbeats_total

k8gb_infoblox_heartbeat_errors_total

k8gb_infoblox_zone_updates_total

k8gb_infoblox_zone_update_errors_total

k8gb_gslb_zone_update_total - REMOVED

@somaritane , naming changed by your recommandations


Improve ConfigDrive to store network information

ConfigDrive / cloud-init supports a network_data.json file which can contain network information for a VM.
By providing  the network information using ConfigDrive to a VM we can eliminate the need for DHCP and thus the Virtual Router in some use-cases.
An example JSON file:

{
    "links": [
        {
            "ethernet_mac_address": "52:54:00:0d:bf:93",
            "id": "eth0",
            "mtu": 1500,
            "type": "phy"
        }
    ],
    "networks": [
        {
            "id": "eth0",
            "ip_address": "<IP_ADDRESS>",
            "link": "eth0",
            "netmask": "<IP_ADDRESS>",
            "network_id": "dacd568d-5be6-4786-91fe-750c374b78b4",
            "routes": [
                {
                    "gateway": "<IP_ADDRESS>",
                    "netmask": "<IP_ADDRESS>",
                    "network": "<IP_ADDRESS>"
                }
            ],
            "type": "ipv4"
        },
        {
            "id": "eth0",
            "ip_address": "2001:db8:100::1337",
            "link": "eth0",
            "netmask": "64",
            "network_id": "dacd568d-5be6-4786-91fe-750c374b78b4",
            "routes": [
                {
                    "gateway": "2001:db8:100::1",
                    "netmask": "0",
                    "network": "::"
                }
            ],
            "type": "ipv6"
        }
    ],
    "services": [
        {
            "address": "<IP_ADDRESS>",
            "type": "dns"
        }
    ]
}

In Basic Networking and Advanced Networking zones which are using a shared network you wouldn't require a VR anymore.

More information:

https://cloudinit.readthedocs.io/en/latest/topics/datasources/configdrive.html
https://cloudinit.readthedocs.io/en/latest/topics/network-config.html

I tested this with this cloud-init configuration under Ubuntu 18.04

root@ubuntu-test:~# cat /etc/cloud/cloud.cfg.d/99_cloudstack.cfg
system_info:
  default_user:
    name: root
  package_mirrors:
    - arches: [i386, amd64]
      failsafe:
        primary: http://ubuntu.apt-get.eu/ubuntu
        security: http://security.ubuntu.apt-get.eu/ubuntu

disable_root: false

cloud_config_modules:
 - emit_upstart
 - snap_config
 - ssh-import-id
 - locale
 - [ set-passwords, always ]
 - grub-dpkg
 - apt-pipelining
 - apt-configure
 - ntp
 - timezone
 - disable-ec2-metadata
 - runcmd
 - byobu

datasource:
  None: {}
datasource_list:
  - ConfigDrive
root@ubuntu-test:~#

Files on the CD-Rom:

root@ubuntu-test:~# find /mnt/cdrom/
/mnt/cdrom/
/mnt/cdrom/openstack
/mnt/cdrom/openstack/latest
/mnt/cdrom/openstack/latest/meta_data.json
/mnt/cdrom/openstack/latest/network_data.json
root@ubuntu-test:~#

I generated this ISO manually on a non-CloudStack environment to test it, but we could store all the network information we have from a VM inside the ConfigDrive.

@wido yes ideally that's the use of config drive feature. I would see this as a bug, if currently it's not possible to share/send the network (ip and dns) currently. If you do decide to implement the fix, please open PR for 4.11 branch.

@rhtyd Yes, it would be great! It would allow for much larger scaling without the need of DHCP. That removes the VR in many use-cases.
I haven't got ConfigDrive to work yet (offerings which wouldn't work...), but from the code I saw it only generates a empty network_data.json file.
Happy to work on this and write against 4.11

Hi, I'd be interested as well.

This is still interesting. But @GabrielBrascher and me have been working on other things and haven't been able to give this more attention.
With this (as mentioned) there would be no need for a Virtual Router in many cases.

but no milestone to put to it still, @wido ?

Not yet @DaanHoogland. I'd like to keep this open for future reference. Might be that somebody else wants to pick this up before we have time.

@wido is there any idea how you plan to implement this without a virtual router. this will be interesting for us because of the future use of TF we will lost the VR.

@svenvogel Not sure if this is what you are asking, but the DHCP server would not longer be needed as the IP addressing details will be supplied to the VM via the configdrive ISO, cloud-init/scripts will read them and do the rest of the config.

@svenvogel and @NuxRo Indeed. With ConfigDrive and network information there is no more need for a DHCP server (thus Virtual Router) in a network.
From the local drive cloud-init can fetch all the required network information and configure the network interface accordingly.

this issue is not implemented yet in 4.18.0

Especially relevant to Edge Zones.

In progress by @vishesh92 at https://github.com/apache/cloudstack/pull/9329


⚠ Turnos 24x7 has degraded performance

In b581534, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 998 ms

Resolved: Turnos 24x7 performance has improved in 0a58fef.


Add .editorconfig and .gitattributes

Adds .editorconfig and .gitattributes.
I have no personal preference if you decide that xml should be 4 vs 2 spaces or the continuation_indent_size. I grabbed these from the maven docs.
TODO
After base files are approved:

[ ] Update existing pom.xml

Can one of the admins verify this patch?