Add link to RSE Con 22 workshop

What does this PR do?
Adds a link to a Quarto workshop on the RSECon'22
Links:

Slides: https://warwickcim.github.io/quarto-workshop/slides/slides.html#/title-slide
Repo with use cases and discussion: https://github.com/WarwickCIM/quarto-workshop

Requirements for your Awesome item list

[x] Only has awesome items. Awesome lists are curations of the best, not everything.
[x] Does not contain items that are unmaintained, has archived repo, deprecated, or missing docs. If you really need to include such items, they should be in a separate Markdown file.
[x] Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
[x] Has consistent formatting and proper spelling/grammar.
- The link and description are separated by a dash.
Example: - [AVA](…) - JavaScript test runner.
- The description starts with an uppercase character and ends with a period.
- Consistent and correct naming. For example, Node.js, not NodeJS or node.js.
[x] Doesn't use hard-wrapping.
[x] Your item(s) fit into an existing sections. (if you think a new section is needed, please open a discussion first).
[x] Add your new item to the bottom of the list in a section.
[x] If a duplicate item exists, discuss why the new item should replace it.
[x] Check your spelling & grammar.
[x] The item must follow this format:- [item name](https link) - Description beginning with capital, ending in period.

[x] Be sure to have read the contributing guidelines.

Thanks for your conribution.

Thanks for your contribution.

To you, for putting this together!


Allow dayPickerProps as prop on DayField

This is needed to be able to disable weekend days in the dayField datepicker calendar, and may be useful for other customizations down the line.

PR: https://github.com/exhi/hoist-react/pull/458

🌮


Code of conduct

(Prettier has done it again - one moment..)

And fixed. :) The .prettierrc.yml file is in the src folder, so the rules aren't applied to README.md on save (moving prettierrc.yml to root works).

Thank you ❤


New Feature : add a route for changing Relay status

route:
/relay/:adr/:part/:status

Near the end


API

This turned out really nice ^^
I created a new API class which inherits from the base Store class
Before closing #148 we should merge #146, rebase this branch and update the CLI :smile:

Nice work!!
Can you do the rebase? Next feature is to make use of this API for the command line tool?

I think we could push this to pip now under a beta flag, no?


Mail content is parsed as file attachment

Describe the bug
Email content from some senders are parsed as file attachment. In this case email body is empty and email has 2 file attachments with no name. One is for text body, another is for html body.
Expected behavior
Mail body should be parsed correctly.
Screenshots
Here is the data of the mail that causes this issue:
mail-data.txt
Desktop / Server (please complete the following information):

OS: Ubuntu 19.04
PHP: 7.3
Version. Package version is 2.5.0

Additional context
Some emails are parsed correctly.

Please update to v5.1 and give it another try.
If you are currently using an older version below v5.0, please read the breaking changes leading up to v5.1 before upgrading.
Best regards,


Including Special Entitlements during Provisioning Profile creation

New Issue Checklist

[X] Updated fastlane to the latest version
[X] I have read the Contribution Guidelines

Issue Description
Currently when creating Provisioning Profiles (either automatically using match or manually using sigh). Profiles are created with "Default" entitlements, which work for a majority of developers. However, for the few that rely on using Special Entitlements  (Such as the Network Extension Entitlement), we have to avoid fastlane regenerating provisioning profiles.
After some experimentation, modifying the params sent in create_provisioning_profile! in portal_client, I was able to create a provisioning profile with the correct entitlements.
As seen in multiple issues ( #9227 ,  #3471 , #4548 ) this seems like it would be a welcomed change to fastlane

This looks like a reasonable addition profile generation, is that something you'd want to take on? It sounds like you already have some code as a proof of concept, maybe it wouldn't be too difficult to turn that into a PR? We have a sweet getting started guide on your FirstPR if you haven't submitted before

psss… @fastlane-bot comments aren't the only things that count as activity ;)

The functionality was implemented in #9912 and released in version 2.55.0.
Give it a try! 😉

That's so awesome, thanks again everyone @thelvis4
@joeybaker hehe, yah :) the bot didn't know about the PRs :P


docs: run a specific test

@WenyXu Thanks for contributing to the docs. @evenyag Please take a look.


Fix: use message.source instead of message.ruleId

I noticed this when iterating through the results of my analysis.
intensify, profanities etc. all use source, so I adjusted this for the sake of consistency.

Thanks, merging this in a sec!

Fixed, thanks again.
Unfortunately, node-hun still breaks all the things. Slowly working on a pure JS spell checker but that’ll take a while.


Add support for SCSS inline comments

Sass has both inline and block comments. https://sass-lang.com/documentation/syntax/comments

Thanks for the contribution!


rc1 -> release

Just wondering if the release candidate can turn into an official release.
We've been using this for a while, and haven't seen any issues.
Is anything keeping a release from happening?

@larssn - Haha, no, apart from not really maintaining this myself for years.  I've just gone ahead an published it.
Thanks!


convert cla-manager-designee to cla-manager once signing process is complete

Summary
Before user signs cla we assign cla-manager-designee role to that user
This is temporary role for user.
Once signing process is complete we should assign cla-manager role to the user
and cla-manager-designee role should be removed.
Background
Step 2.3.2 and <IP_ADDRESS> in Table 1 of PRD
https://confluence.linuxfoundation.org/display/PROD/Corporate+Console+for+EasyCLA+V2
Acceptance Criteria
The "done" criteria when this feature or problem is resolved. Such as:

User should be assigned to role of cla-manager once signing process is complete
All the stale entries of cla-manager-designee should be removed.
cla-manager role in acs should be assigned for all project of cla-group

@prasannamahajan , please provide a ETA.

ETA: 25th June

Verified below scenarios from LFX portal

cla-manager-designee who has signed CLA is given cla-manager role to the project and cla-manager-designee role is removed for the project for the user
cla-manager-designee who has signed CLA is given cla-manager role to the project and cla-manager-designee role is removed for the project for the user and cla-manager-designee role for other projects for the user is not removed
cla-manager-designee role is removed for the project for other users when one of the cla-manager-designee signs CLA
cla-manager-designee role is removed for the project for other users and  cla-manager-designee role is not removed for other projects for the user when one of the cla-manager-designee signs CLA


Non-percent-encoded unicode URLs are broken in PDFLaTeX

I described the problem on stackexchange.
Briefly: I need to insert the following URL
https://ru.wikipedia.org/wiki/SLAM_(метод)
without percent-encoding. For some reasons, I can't use XeLaTeX. I used the flag --nouri-encode and got the following result
 https://ru.wikipedia.org/wiki/SLAM_(РёРҳСЂР«Рұ)
I even disabled the \url command to be sure it's biber
\renewcommand{\url}[1]{#1}
and the result remained the same.

As I tried to explain in the comments on tex.sx it is imho "not biber's fault".

Now when I checked the .bbl file, I see it's OK... But the URL is included in some unusual way...
    \entry{Wiki:SLAM}{incollection}{}
      \list{language}{1}{%
        {russian}%
      }
      \list{location}{1}{%
        {США}%
      }
      \list{organization}{1}{%
        {Wikimedia Foundation, Inc.}%
      }
      \field{sortinit}{2}
      \field{sortinithash}{0aa614ace9f3a40ef5a67e7f7a184048}
      \field{labeltitlesource}{title}
      \field{booktitle}{Википедия~"--- свободная энциклопедия}
      \field{day}{23}
      \field{month}{5}
      \field{title}{SLAM (метод)}
      \field{urlday}{22}
      \field{urlmonth}{2}
      \field{urlyear}{2017}
      \field{year}{2016}
      \field{dateera}{ce}
      \field{urldateera}{ce}
      \verb{url}
      \verb https://ru.wikipedia.org/wiki/SLAM_(метод)
      \endverb
    \endentry

This here is really the wrong place to discuss this things. This is not a biber problem. So close the issue and move the discussion to a better place.

I still don't understand why biber generates  \verb{url} instead of \field{url}, because in the latter case the solution to my problem could be much easier...

\field{url}  makes the handling of your special url easier. But quite a lot of urls (e.g. all the one which uses a %) would simply explode.


Onboarding UI adjustments + use doLogout server action instead of fetch

Problem solved
Short description of the bug fixed or feature added

PR-Codex overview
This PR primarily focuses on refactoring the logout functionality across various components by replacing direct API calls with a centralized doLogout function. It also includes some UI adjustments and enhancements.
Detailed summary

Removed direct API call to /api/auth/logout in favor of doLogout() in multiple components.
Updated styles for various UI elements, including AccountForm and OnboardingChoosePlan.
Adjusted layout and class names for better responsiveness and appearance.
Added Aurora component for visual effects in the LoginAndOnboardingPage.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

#5480  👈 (View in Graphite)
main

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


Add subschema titles to ErrorDetails

Having such details on reported errors allows to use them
on localized error messages/templates for giving better error
context to caller/user.
As an example we're using this like this:

func (l locale) ConditionThen() string {
	return `Must validate "{{ if .thentitle }}{{ .thentitle }}{{ else }}then{{ end }}" as "{{ if .iftitle }}{{ .iftitle }}{{ else }}if{{ end }}" was valid`
}

func (l locale) NumberAllOf() string {
	return `Must validate all subschemas {{ if .subtitles }}{{ range .subtitles }}"{{ . }}"{{ end }}{{ else }}(allOf){{ end }}`
}

// etc...

I didn't include in the PR any modifications to DefaultLocale to preserve default behavior, but I could include that if requested.

This might fix #214

First off thank you for your PR!
I'm looking at this with the discussion in #228 in the back of my head regarding errorMessage. If we're considering propagating fields like errorMessage, why not do the same for other fields like $comment, title and description? That'll give schema authors a lot more information on where an error came from.
Your PR takes quite a different approach and from the looks of it. I understand the need for extra information in the ErrorDetails() and using the title of the subschema is a decent way of doing it. The fundamental problem is that there is no API to retrieve nested errors and all the errors are just put in a linear array and the user has to interpret which errors belong together. With that in mind however until we make a new API (the upcoming draft-08 basically requires one with it's new outputting directives) stuffing ErrorDetails() with more information is the way to go.
I have a few points of feedback on your PR:

If title is not present it will just put in a nil value. If you just put in the title only when it's present users can write more idiomatic code instead of having to write nil checks.
The updated locale is a nice trick, but I don't think it should be done by default. As "title" is a core keyword it is used a lot in schemas. Users might not expect their errors to change whether a "title" is present or not. Not everyone using "title" in their schema will use it for the specific purpose you are using it for.
For the sake of consistency: If we add the titles of subschema for *Of and if/then/else, I think it's weird not to have the title of the main schema for all errors.
In my mind subtitles are part of movies. It might be a language thing, but I'd go for a less ambiguous term.


Remove Test.Util.Classify in favour of Test.StateMachine.Labelling.

Description
The Test.Util.Classify module contains practically the same code as Test.StateMachine.Labelling from quickcheck-state-machine (see the source) . This PR removes the Test.Util.Classify module, and makes test modules import Test.StateMachine.Labelling instead.
Checklist

Branch

[ ] Commit sequence broadly makes sense
[ ] Commits have useful messages
[ ] The documentation has been properly updated
[ ] New tests are added if needed and existing tests are updated
[ ] Any changes affecting Consensus packages must have an entry in the appropriate changelog.d directory created using scriv. If in doubt, see the Consensus release process.
[ ] Any changes in the Consensus API (every exposed function, type or module) that has changed its name, has been deleted, has been moved, or altered in some other significant way must leave behind a DEPRECATED warning that notifies downstream consumers.
[ ] If this branch changes Network and has any consequences for downstream repositories or end users, said changes must be documented in interface-CHANGELOG.md
[ ] If serialization changes, user-facing consequences (e.g. replay from genesis) are confirmed to be intentional.

Pull Request

[ ] Self-reviewed the diff
[ ] Useful pull request description at least containing the following information:

What does this PR change?
Why these changes were needed?
How does this affect downstream repositories and/or end-users?
Which ticket does this PR close (if any)? If it does, is it linked?

[ ] Reviewer requested

bors r+

bors r+


fix(performance): missing linked asyncIds - user tracerObj for linking

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Pods in daemonset should have grace period reduced.

Otherwise, it can take a long time for the daemonset to stop, and there's no real reason it needs to hang out for a long time.

Pull Request Test Coverage Report for Build 470161356

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.797%

Totals

Change from base Build 426546521:
0.0%

Covered Lines:
1137

Relevant Lines:
1606

💛  - Coveralls

Pull Request Test Coverage Report for Build 470161356

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.797%

Totals

Change from base Build 426546521:
0.0%

Covered Lines:
1137

Relevant Lines:
1606

💛  - Coveralls

Looks good to me!

Looks good to me!

I think you're right Tomo, trapping SIGTERM doesn't buy a whole lot here.
However, there is an improvement with the graceperiodseconds set lower, before adding grace period seconds...
[centos@kube-singlehost-master multus-cni]$ time kubectl delete pod kube-multus-ds-amd64-hx582 -n kube-system
pod "kube-multus-ds-amd64-hx582" deleted

real	0m36.297s

After adding it...
[centos@kube-singlehost-master multus-cni]$ time kubectl delete pod kube-multus-ds-amd64-g5hzq -n kube-system
pod "kube-multus-ds-amd64-g5hzq" deleted

real	0m17.937s

I think you're right Tomo, trapping SIGTERM doesn't buy a whole lot here.
However, there is an improvement with the graceperiodseconds set lower, before adding grace period seconds...
[centos@kube-singlehost-master multus-cni]$ time kubectl delete pod kube-multus-ds-amd64-hx582 -n kube-system
pod "kube-multus-ds-amd64-hx582" deleted

real	0m36.297s

After adding it...
[centos@kube-singlehost-master multus-cni]$ time kubectl delete pod kube-multus-ds-amd64-g5hzq -n kube-system
pod "kube-multus-ds-amd64-g5hzq" deleted

real	0m17.937s

Sorry for late comment but how about to change not only amd64 also ppc/arm?

Sorry for late comment but how about to change not only amd64 also ppc/arm?

Thanks for the review and spotting the missing sections! Added to the missing sections.

Thanks for the review and spotting the missing sections! Added to the missing sections.


[BUG] Environment Check Script Fails To Perform All Checks

Describe the bug (🐛 if you encounter this issue)
The Environment Check Script appears to exit early before all checks have been performed.
To Reproduce
Steps to reproduce the behavior:

curl -sSfL https://raw.githubusercontent.com/longhorn/longhorn/v1.4.1/scripts/environment_check.sh | bash
Actual output:[INFO]  Required dependencies 'kubectl jq mktemp' are installed.
[INFO]  Hostname uniqueness check is passed.
[INFO]  Waiting for longhorn-environment-check pods to become ready (0/3)...
[INFO]  All longhorn-environment-check pods are ready (3/3).
[INFO]  Cleaning up longhorn-environment-check pods...
[INFO]  Cleanup completed.

Expected behavior
All checks performed and output indicates actual environment state.
Log or Support bundle
N/A
Environment

Longhorn version: v1.4.1
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): N/A
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: K3s v1.25.7+k3s1

Number of management node in the cluster: 1
Number of worker node in the cluster: 2

Node config

OS type and version: Both latest snapshots, openSUSE Tumbleweed and openSUSE Micro OS
CPU per node: N/A
Memory per node: N/A
Disk type(e.g. SSD/NVMe): N/A
Network bandwidth between the nodes: N/A

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): Baremetal
Number of Longhorn volumes in the cluster: N/A

Additional context
I spent some time trying to debug the script. All checks seem to run and produce output when I modify the script in the following ways:

Insert set -E at line 2
Add an error handling function before Main logics.
Insert trap  '__error_handing__ $? $LINENO' ERR before trap cleanup EXIT
After the modifications above the script cannot be run successfully when piped into bash as done in the docs (because of the error handling code). When called directly (ex: ./check_script.sh) errors are handled, and it appears that all checks are performed.

I am seeing the same results on a host where iscsid is not yet running, as well as, one where Longhorn is already operating without issue.
Modified Script (extension changed because GitHub disallows .sh)
modified_environment_check.txt

@derekbit
I don't have a fix. I am not really sure what the problem is, nor do I know if the modifications I made really help in any way.
I provided my modifications in hopes that someone with more bash scripting experience can understand environment_check.sh and the modifications I made to the script, and discern what needs doing.
I could move my modifications into a PR, but like I said in the ticket, the inclusion of my modifications just results in errors related to the error handling code I added when the script is piped into bash so they wouldn't help when the script is used as documented on the docs site.

Test steps:
Running the check script by curl -sSfL <link to the script> and verify that it performs all the check similar to the test at  https://github.com/longhorn/longhorn/pull/6909#issuecomment-1765357894

The backported issue for 1.3.4 is not created by the bot. @roger-ryao Could you please take care of this when validating the issue?

Verified on master-head 20231020

longhorn master-head https://github.com/longhorn/longhorn/commit/15fae1ba47fa2d73bad045307cdb33ed3c25f233

The test steps
https://github.com/longhorn/longhorn/issues/5653#issuecomment-1765365063
Result Passed

[x] All checks have been performed.
[x] Update the example result messages for using the Environment Check Script on website

https://github.com/longhorn/website/pull/788

> curl -sSfL https://raw.githubusercontent.com/longhorn/longhorn/master/scripts/environment_check.sh | bash
[INFO]  Required dependencies 'kubectl jq mktemp sort printf' are installed.
[INFO]  All nodes have unique hostnames.
[INFO]  Waiting for longhorn-environment-check pods to become ready (0/3)...
[INFO]  All longhorn-environment-check pods are ready (3/3).
[INFO]  MountPropagation is enabled
[INFO]  Checking kernel release...
[INFO]  Checking iscsid...
[INFO]  Checking multipathd...
[INFO]  Checking packages...
[INFO]  Checking nfs client...
[INFO]  Cleaning up longhorn-environment-check pods...
[INFO]  Cleanup completed.


improved plz...

Make the splits more smooth and similar to vanilla, that part was more "obedient", that was not part was not shiver a little, I think so that it is necessary to add a maximum of 4-5 lines of code or remove some!! do not say that splits are similar to vanilla(they are like 65%) I know what you fantasy, luka, megabyte can do better!
I can give a slow mo video of a split of vanilla and MO-E, to view the details of how the split
This is the only drawback to MO-E bad split...
Please improve the splits, please...

@DeadLord1337 Do you want MultiOgar-Edited to simulate the latest update's lag?

@ZfsrGhS953 more detail do not understand a bit :D if you mean that the update will affect the performance that I somehow without a difference

@DeadLord1337 can you provide a GIF of vanilla splits vs mo-esplits?

@AlexHGaming hm no gif will be difficult easier for me to record video and then slow it down to fill here streamable.com

Vanilla:
https://streamable.com/4sj84
https://streamable.com/650l2
https://streamable.com/cqg26
Mo-E:
https://streamable.com/g3s3y
https://streamable.com/8vmwm
https://streamable.com/yowqn

when members of TYT clan used to post their god like game play (pun) people used to ask me how they do their splits so smoothly. And they were on the agario client. What I found was we all play at highest resolution but they drop their display resolution so they can get these smooth splits. Try it.

@cowpits All also I changed the screen resolution in the config file to 800x480, all the same, changed the screen resolution in Windows, too, all exactly the same. How can the screen resolution actually affect the physics division lol

I see videos with smooth splits on agar.io client and other people post vids on agar.io client but they don't look as smooth. I learned it was because of screen resolution. So laugh if you will, just look at youtube videos and you'll see what I mean.

@cowpits you may be right, but I don't believe, must still improve splits to Mo-E.
compare pop split vanilla (Macro fast double split) and Mo-E
Vanilla:
https://streamable.com/47g20
https://streamable.com/92tmb
Mo-E:
https://streamable.com/f0ra8
https://streamable.com/q27u8
I meant that in a Mo-E fast pop splits (Macro double split) pieces seem to disappear, it was in all versions of the megabyte and the rest of the developers are not smart enough to fix it and did not pay attention to this, it can be considered a bug. Where the pieces disappear... lol
Myself already half a year trying to fix this bug, but I'm not well versed in node...

You're taking the word "splits" out of context. You're talking about Popsplits, Pushsplits, etc. Those are just 'tricks'. Splitting, is splitting your cell, and I don't find any issue with that.

Nevertheless, I will try 'fixing' the 'splits'.

@Fan7asy i usually do the same thing with like a min split size of 100, how did you do it?

@Fan7asy hmm I like it. But can you please do the pop split so that you have 17K and the 10K enemy (I hope that you have changed the code, not splitVelocity xD)
as here https://streamable.com/47g20

@DeadLord1337 Have you thought that the special effects on the video can speed it up or slow it down? Next time try to find an unedited video.

@ZfsrGhS953 Now there are very few those who make pop split through macros, all make it slowly. and about the effects in the video, I don't know... they all do lol. this is a video with vanilla speed I slow it down on youtube

@cowpits Trying play at (75-100)fps for smoother gameplay

Luka's the best

@Megabyte918 why duplicate?

@DeadLord1337
#179
#260
#263
#314
#588
#664

Savage!

#52


NPM Package does not export the Validator variable

We cannot use this with NPM as it does not export the variable/constructor.

Yes, I was following the Bootstrap npm package's lead which also doesn't export its plugins as CommonJS modules. You're expected to require('bootstrap') / require('bootstrap-validator'), which will attach them to jQuery.fn as a side-effect. That means that jQuery is expected to be on window, which won't happen if you're also loading it via CommonJS.
To get it working, you'd need this in your app's entrypoint:
var jQuery = window.jQuery = require('jquery')
require('bootstrap')
require('bootstrap-validator')

I agree that it's not ideal and kinda weird now that npm is widely being used for client-side packages, but one of the goals of this plugin is to keep it as congruous with Bootstrap's core plugins as I can. Unfortunately, they aren't planning UMD builds for v3 (twbs/bootstrap#14755). When this plugin eventually gets rewritten for v4 parity, I'll include a UMD build.


Not rendered properly in new  chrome version [76.0.3809.132]

ng-confirmations version : 0.4.7
Google chrome version : 76.0.3809.132 (Official Build) (64-bit)
In latest chrome browser 'ng-confirmations' does not t render properly. This was working perfectly with chrome 75.0.3770.142.

horizontal positioning: Dialog is appearing with 0 left margin
When view port is changed, Dialog height also changes up to 50%

Attaching screenshot of   https://jaspero-ng-confirmations.stackblitz.io/

Any resolution around this issue?

I fixed it applying following patch
.jaspero__confirmation{
position: inherit !important;
}


Github didn't recognize *.cc as C++ code

The source code files in this repository have the extension *.cc but Github doesn't seem to recognize that extension as C++ code.
So if we didn't find a way to say that *.cc is C++ code, maybe will be better that we change the extension of our source files to *.cpp. But this also implies that we need to edit the makefile and the CMakeLists.txt to not break that compiling system.

This issue was solved after some changes:

It was changed the default branch from master to develop. It's important to mention that no C++ code was committed yet on the master branch. So I believe that Github only was recognized the default branch (master at that time), but even with the change of the default branch to develop made no difference.
Only when it was committed a new changes to the now new default branch (develop) that GitHub started to recognize the source code as C++ code. There is another detail to mention, the latest commit that triggers Github to recognize the project as C++ code was a change in the README.md file that includes the name C++ on the file.

I believe that the important steps that made the difference was:

Have some C++ code in the default branch.
A new commit on the default branch to trigger Github re-analyze the code on the default branch.


Doesn't work with D3 v4.

If link to v4 of D3 with
<script src="https://d3js.org/d3.v4.min.js"></script>
get an error and no graphs displayed for Getting started sample.
Safari 10.0.1 on OSX 10.11.6 error message:
generateColor — c3.min.js:4:24593
TypeError: undefined is not an object (evaluating 'c.scale.category10')

Firefox 49.0.2:
TypeError: c.scale is undefined
i.generateColor()   c3.min.js:4
i.initParams()      c3.min.js:1
i.init()            c3.min.js:1
d()                 c3.min.js:1
k.generate()        c3.min.js:1
<anonymous>         index.html:12

Hi @pyotr777, just wanted to give you a heads up that this is a known issue and work is being done to make it compatible with D3 v4: https://github.com/c3js/c3/issues/1648

Thanks! Looking forward!


Add follow organization and fix the logic of following page

Maybe we can fix user card tmpl in #24319?
Or maybe a list is better here

3 following but 2 users displayed:

There's a bug in isUserVisibleToViewerCond

The conds in isUserVisibleToViewerCond confuse me.
Maybe this cond means user.id In viewer.ID ?

And why INNER JOIN?

As isUserVisibleToViewerCond added in #20220, we need to dynamically calculate the count of followers and following,
maybe User.NumFollowers and User.NumFollowing is unnecessary now.

Can you make the button just plain basic button without color? I think that red/green draws way to much attention for such an action.

Can you make the button just plain basic button without color? I think that red/green draws way to much attention for such an action.

Done. Also removed the icon.
Now it is similar to github.

@lunny
I changed my mind.
Remove User.NumFollowers and User.NumFollowing should be in another PR.
Because this change will remove many codes which are not related to this PR.
So do this in anohter PR is better.

Pushed a tweak.


[Crashlytics]Fix crashlytics unit test directory

Change to copy for all resources to maintain the directory structure. Related to issue #10623
Testing
Testing on both 5.3 and 5.6, passed unit tests
#no-changelog

Hey @paulb777, sorry tagged you before before the pr is ready. I might know the issue why pod does not work because I forget change renamed directory for pod spec. Let me play around with it more and I'll make it ready for review once I passed all unit tests


MUMUP-2109 : kvstorage for features

Create frame constant for keys
Add check to keyValueService to see if KV is activated
Add in announcement (Bucky) features last seen id saving/fetching
Add in popup features last seen id saving/fetching

:+1:


Import from tarballs using reading with transparent compression.

As the command line usage worked for all commands, I checked the test case itself and realised, that we need to open the test files using mode 'w+b' with the additional '+' for updating (reading and writing). Local test are now working again.


Question and feature request: Should PlatformJobService has own ExecutorService?

I found that PlatformJobService and PlatformAlarmServiceExact has own Executors.newCachedThreadPool(JobProxy.Common.COMMON_THREAD_FACTORY) but they use JobExecutor which submits jobs in its own ExecutorService. Is it necessary? Finally there is created new thread which creates another new thread.
Feature request:
To properly write tests using Espresso we need to synchronize all concurrent invocation. With Espresso >=3.0.0 we can use IdlingThreadPoolExecutor but there is no simple way to inject it in android-job. While there are 3 independent ExecutorSerivce it is even more complicated. There could be single ExecutorService provided in JobConfig , defaultly Executors.newCachedThreadPool(JobProxy.Common.COMMON_THREAD_FACTORY). Or some factory to provide ExecutorService but in my opinion if there is cached thread pool we need only single instance of ExecutorService.

I like the idea, I'll take a look at this.

I've released a snapshot build with the change. Could you give it try and let me know if that works for you?
repositories {
    jcenter()

    maven {
        url 'https://oss.sonatype.org/content/repositories/snapshots/'
    }
}

dependencies {
    compile 'com.evernote:android-job:1.2.1-SNAPSHOT'
}

It works. Thanks

Version 1.2.1 has been released.


Possible key generation scheme issue with [journal:nopunct]

Hello,
I had been using [authors3][year][journal:nopunct] as my key scheme for awhile now.  With pubgin version 1.6.43, I just noticed that the keys are only generated as if the scheme was [authors3][year].  I don't know how long this has been like this, but I've just upgraded to zotero <IP_ADDRESS> and the problem still seems to be there.
Any suggestions?
thanks!
D

Can you right-click such a reference and post the resulting debug ID (after clicking through) here?

I've never used the "error report" system before - I just did as you said and the ID came up as:
2DH5SZ37

I think I did this for an entry where the journal is correct.  Here's one where the journal is not included in the key:
KMDAICUW

Bugger. It seems I have misread the Jabref specs back when I started.

I have a few other issues open that I'm going to bundle in the next release, if you're in a hurry you can grab https://github.com/retorquere/zotero-better-bibtex/releases/download/builds/zotero-better-bibtex-1.6.43-circle-2129.xpi

Awesome! Thanks so much...
On Wed, Apr 6, 2016 at 11:19 AM, retorquere<EMAIL_ADDRESS>wrote:

Closed #474
https://github.com/retorquere/zotero-better-bibtex/issues/474.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/retorquere/zotero-better-bibtex/issues/474#event-617156256

--
DM Bortz
Department of Applied Mathematics
University of Colorado
Boulder, CO 80309-0526
http://mathbio.colorado.edu


Implement PostgreSQLAdapter#schema_search_path=

The current PostgreSQLAdapter uses the config to known the schema_search_path.
Is there a known problem to implement over JDBC the same dynamic search_path management than the C PostgreSQLAdapter ?
If not, ... we'll try to submit a patch.

I don't think there is any problem—just lack of knowledge or expertise, most likely! We'd sure appreciate a patch!

We're working on it ;)

We begin to implement dynamic search_path management on :
git://github.com/dryade/activerecord-jdbc-adapter.git
We tell you when we finish


Tables not tables

See https://github.com/nf-core/nf-co.re/pull/456#issuecomment-663571102

This breaks the ToCs and all of the IDs because we're not using headers any more, but gives a proof of concept for the alternative layout.
I prefer it I think. What do you think @mashehu?

Merging so that @mashehu can continue on it..


Create module1.py

I added a new module with an add function to be able to add 2 numbers

This function needs som validation of the input, what is x is not provided


Live view: ArgumentError diff from 1.8.5 to 1.9.3 shows wonky formatting

Right now it looks like:
The value constructor's message parameter's changed from default: true to default: false
There should be a word after "parameter's".

Fixed by #26


UploadFileToAzureFile missing headers.

Which version of the SDK was used?
0.6.0
Which platform are you using? (ex: Windows, Linux, Debian)
Ubuntu Linux 18.04
What problem was encountered?
Calling UploadFileToAzureFile() in the same manner as in the example (https://godoc.org/github.com/Azure/azure-storage-file-go/azfile#example-UploadFileToAzureFile), gets an error response indicating that some mandatory headers were missing:
azure-storage-file-go@v0.6.0/azfile/zc_storage_error.go:42
===== RESPONSE ERROR (ServiceCode=MissingRequiredHeader) =====
Description=An HTTP header that's mandatory for this request is not specified.
RequestId:7b298b92-501e-00c0-18eb-ed0033000000
Time:2020-02-28T03:58:06.6661551Z, Details:
   Code: MissingRequiredHeader
   HeaderName: x-ms-blob-type
   PUT https://REDACTED.blob.core.windows.net/agent-file-transfer/new.file?timeout=61
   Authorization: REDACTED
   User-Agent: [Azure-Storage/0.6.0 (go1.13.8; linux)]
   X-Ms-Cache-Control: [no-transform]
   X-Ms-Client-Request-Id: [6c72d2d8-74f4-47dd-58ca-3bf4e985dd48]
   X-Ms-Content-Disposition: []
   X-Ms-Content-Encoding: []
   X-Ms-Content-Language: []
   X-Ms-Content-Length: [3135]
   X-Ms-Content-Type: []
   X-Ms-Date: [Fri, 28 Feb 2020 03:58:05 GMT]
   X-Ms-File-Attributes: [None]
   X-Ms-File-Creation-Time: [now]
   X-Ms-File-Last-Write-Time: [now]
   X-Ms-File-Permission: [inherit]
   X-Ms-Meta-Createdby: [REDACTED]
   X-Ms-Type: [file]
   X-Ms-Version: [2019-02-02]
   --------------------------------------------------------------------------------
   RESPONSE Status: 400 An HTTP header that's mandatory for this request is not specified.
   Content-Length: [301]
   Content-Type: [application/xml]
   Date: [Fri, 28 Feb 2020 03:58:05 GMT]
   Server: [Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0]
   X-Ms-Client-Request-Id: [6c72d2d8-74f4-47dd-58ca-3bf4e985dd48]
   X-Ms-Error-Code: [MissingRequiredHeader]
   X-Ms-Request-Id: [7b298b92-501e-00c0-18eb-ed0033000000]
   X-Ms-Version: [2019-02-02]

How can we reproduce the problem in the simplest way?
I haven't actually tried the literal example code, but I suspect it will fail as well.
Have you found a mitigation/solution?
No.

Cancel that, incompetence.  This is why embedded systems engineers shouldn't be allowed online...

Out of curiosity, what was the solution for this? I keep getting: 400 The value for one of the HTTP headers is not in the correct format.

Ah, from memory, because I didn't notice that Azure File storage and Azure Blob storage were different things with different APIs, so I was calling a File API function against a Blob URL, or something like that?

@edwinhayes do you by chance have some example code for working with blobls? I am trying to copy a file into a blob container.. perhaps the same thing you were trying to do.

Not that's open sorry.  Working solution looks basically like this though:
blobURL := azblob.NewBlockBlobURL(u, azblob.NewPipeline(creds, azblob.PipelineOptions{}))
_, err = azblob.UploadFileToBlockBlob(c, f, blobURL,azblob.UploadToBlockBlobOptions{})

This can happen, when using the blob SDK and configuring the dfs endpoint of your storage account. Make sure you use the right SDK with the right endpoint. I have seen this happen when using "mystorage.dfs.core.windows.net" instead of "mystorage.blob.core.windows.net" in combination with the Azure Storage SDK. The dfs endpoint only works with the Azure data lake SDK.


Blank section when PDF is open

Context & versions
dev.gov.tools Chrome
Steps to reproduce

Open PDF and first thing I see is a blank section

Actual behavior
Blank section on the home page
Expected behavior
Proposal cards - Dashboard

@ValMBO @vpaunovic This is the environment we created based on our govtool-ui wrapper (https://github.com/IntersectMBO/govtool-ui), for testing the PDF package. We did not do the entire govtool design, but only the "Proposed governance actions" page. Michal is working on an implementation in the current govtool where all pages are visible (https://dev-sanchonet.govtool.byron.network/)

Fantastic! thanks guys for the explanation - I will leave it open until Michal finish with the integration.

It is already done on dev, test and staging


Status cancelled is not displayed

Status cancelled is not displayed

@lirand84 thanks for reporting. Do you know if the HVV Integration exposes this information? If haven't seen any canceled connections. If you see one, could you check the state? (Go to http://homeassistant:8123/developer-tools/state and search for sensor.departures_at_YOUR_STATION) Besides delay I haven't seen much state information yet.

Hello, I will check that as soon as a bus is cancelled. HVV provides this information, as can be seen in the screenshot.

Sure, but it needs to be exposed by the HVV Integration. https://github.com/nilstgmd/hvv-card is just an UI for that integration. Let's check the state, I also keep an eye open for these instances.

I opened a Bug to add the fields canceled & extra to the HVV Integration service:  home-assistant/core/issues/104869

Created a pull request home-assistant/core/pull/105030

@nilstgmd my changes are merged into the dev branch of Home Assistant.


Releases for 1.8.0 and 1.8.2 do not contain the compiled SDK

The releases for the SDK 1.8.0 and 1.8.2 do not contain the compiled SDK but the compiled EmberPlusViewer.
The 1.6.2 release does contain the compiled SDK and tools etc.

Yes, with the exception of the Ember+ Viewer, which is only available in binary form, we no longer provide precompiled tools and/or libraries.
Building either locally should be trivial, now that the libraries come with proper Cmake build descriptions.


Kube-VIP split brain v0.6.3

Describe the bug
Kube-VIP is getting split brain when managing the cluster's VIP - resulting in two host machines being assigned ownership of the same IP.
To Reproduce
In my specific scenario, I am running 2 instances of kube-vip v0.6.3:
After further investigation, it appears that this does not only occur when running two kube-vip stacks; this will happen any time that kube-vip tries to handover control of the cluster.

Run kube-vip as normal

containers:
        - args:
            - manager
          env:
            - name: vip_arp
              value: "true"
            - name: port
              value: "6443"
            - name: vip_interface
              value: enp24s0f0
            - name: vip_cidr
              value: "32"
            - name: cp_enable
              value: "true"
            - name: cp_namespace
              value: kube-system
            - name: vip_ddns
              value: "false"
            - name: svc_enable
              value: "true"
            - name: vip_leaderelection
              value: "true"
            - name: vip_leaseduration
              value: "5"
            - name: vip_renewdeadline
              value: "3"
            - name: vip_retryperiod
              value: "1"
            - name: address
              value: <IP_ADDRESS>
            - name: prometheus_server
              value: :2112
          image: ghcr.io/kube-vip/kube-vip:v0.6.3

Let kube-vip start up
Verify that the nodes claiming leadership in the kube-vip logs show that the ip a controls the IP address.
Manually kubectl delete pod on the kube-vip pod that is controlling one of the deployments.
Run ip a on all of your hosts in the cluster and verify that two hosts are controlling the same IP address:

Host 1:
4: enp24s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global enp24s0f0
       valid_lft forever preferred_lft forever
    inet <IP_ADDRESS>/32 scope global enp24s0f0
       valid_lft forever preferred_lft forever

Host 2:
4: enp24s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global enp24s0f0
       valid_lft forever preferred_lft forever
    inet <IP_ADDRESS>/32 scope global enp24s0f0
       valid_lft forever preferred_lft forever

Also can verify that the kube-vip logs on host 1 and host 2 both indicate that they think they are the leader:
Host 1 kube-vip logs (after host 1 was deleted):
time="2023-11-16T21:42:19Z" level=info msg="Starting kube-vip.io [v0.6.3]"
time="2023-11-16T21:42:19Z" level=info msg="namespace [kube-system], Mode: [ARP], Features(s): Control Plane:[true], Services:[true]"
time="2023-11-16T21:42:19Z" level=info msg="prometheus HTTP server started"
time="2023-11-16T21:42:19Z" level=info msg="Starting Kube-vip Manager with the ARP engine"
time="2023-11-16T21:42:19Z" level=info msg="beginning services leadership, namespace [kube-system], lock name [kube-vip-enp24s0f0], id [tgrm-ic-qa1-1]"
I1116 21:42:19.125472       1 leaderelection.go:245] attempting to acquire leader lease kube-system/kube-vip-enp24s0f0...
time="2023-11-16T21:42:19Z" level=info msg="Beginning cluster membership, namespace [kube-system], lock name [plndr-cp-lock], id [tgrm-ic-qa1-1]"
I1116 21:42:19.125820       1 leaderelection.go:245] attempting to acquire leader lease kube-system/plndr-cp-lock...
time="2023-11-16T21:42:19Z" level=info msg="Node [tgrm-ic-qa1-2] is assuming leadership of the cluster"
I1116 21:42:19.141591       1 leaderelection.go:255] successfully acquired lease kube-system/kube-vip-enp24s0f0
time="2023-11-16T21:42:19Z" level=info msg="starting services watcher for all namespaces"
time="2023-11-16T21:42:19Z" level=info msg="[service] adding VIP [<IP_ADDRESS>] for [kube-system/rke2-ingress-nginx-controller]"
time="2023-11-16T21:42:19Z" level=info msg="[service] synchronised in 17ms"

You can see after node 1 restarted, at 21:42:19 host 1 thinks it got the lease with: "successfully acquired lease kube-system/kube-vip-enp24s0f0".
However, The host 2 kube-vip logs:
time="2023-11-16T20:54:15Z" level=info msg="Starting kube-vip.io [v0.6.3]"
time="2023-11-16T20:54:15Z" level=info msg="namespace [kube-system], Mode: [ARP], Features(s): Control Plane:[true], Services:[true]"
time="2023-11-16T20:54:15Z" level=info msg="prometheus HTTP server started"
time="2023-11-16T20:54:15Z" level=info msg="Starting Kube-vip Manager with the ARP engine"
time="2023-11-16T20:54:15Z" level=info msg="beginning services leadership, namespace [kube-system], lock name [kube-vip-enp24s0f0], id [tgrm-ic-qa1-2]"
I1116 20:54:15.133469       1 leaderelection.go:245] attempting to acquire leader lease kube-system/kube-vip-enp24s0f0...
time="2023-11-16T20:54:15Z" level=info msg="Beginning cluster membership, namespace [kube-system], lock name [plndr-cp-lock], id [tgrm-ic-qa1-2]"
I1116 20:54:15.133762       1 leaderelection.go:245] attempting to acquire leader lease kube-system/plndr-cp-lock...
time="2023-11-16T20:54:15Z" level=info msg="new leader elected: tgrm-ic-qa1-1"
I1116 20:54:15.151491       1 leaderelection.go:255] successfully acquired lease kube-system/plndr-cp-lock
time="2023-11-16T20:54:15Z" level=info msg="Node [tgrm-ic-qa1-2] is assuming leadership of the cluster"
time="2023-11-16T20:54:15Z" level=info msg="Gratuitous Arp broadcast will repeat every 3 seconds for [<IP_ADDRESS>]"

We can see "Node 2 is assuming leadership of the cluster" at 20:54:15 but at 21:000 or later, there are no logs indicating that Node 2 recognizes that host 1 re-claimed the lease. Node 2 continues to think it is in control of the lease.
Finally, we can verify that node-3 also thinks that node-1 re-joined the cluster but node-2 was not aware:
Host 3 kube-vip logs:
time="2023-11-16T20:54:55Z" level=info msg="Starting kube-vip.io [v0.6.3]"
time="2023-11-16T20:54:55Z" level=info msg="namespace [kube-system], Mode: [ARP], Features(s): Control Plane:[true], Services:[true]"
time="2023-11-16T20:54:55Z" level=info msg="prometheus HTTP server started"
time="2023-11-16T20:54:55Z" level=info msg="Starting Kube-vip Manager with the ARP engine"
time="2023-11-16T20:54:55Z" level=info msg="beginning services leadership, namespace [kube-system], lock name [kube-vip-enp24s0f0], id [tgrm-ic-qa1-3]"
I1116 20:54:55.774253       1 leaderelection.go:245] attempting to acquire leader lease kube-system/kube-vip-enp24s0f0...
time="2023-11-16T20:54:55Z" level=info msg="Beginning cluster membership, namespace [kube-system], lock name [plndr-cp-lock], id [tgrm-ic-qa1-3]"
I1116 20:54:55.774609       1 leaderelection.go:245] attempting to acquire leader lease kube-system/plndr-cp-lock...
time="2023-11-16T20:54:55Z" level=info msg="Node [tgrm-ic-qa1-2] is assuming leadership of the cluster"
time="2023-11-16T20:54:55Z" level=info msg="new leader elected: tgrm-ic-qa1-1"

The last 2 lines show that node-3 saw node 2 become the leader, but then immediately after (once qa1 came back online), node 3 saw host 1 take control of the lease.
Note: This ends up resulting in us getting regular timeout and stream disconnected broken pipe issues.
For example, while doing a docker push command, if kube-vip has a split brain, the docker push will fail with:

use of closed network connection

Or, if using k9s, we will get various other errors like:

😡 [list watch] access denied on resource "grafana":"v1/pods"

Or,

😡 Post "https://<IP_ADDRESS>:6443/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": read tcp <IP_ADDRESS>:33010-><IP_ADDRESS>:6443: read: connection reset by peer

Or, while streaming logs with kubectl logs -f, we can only stream the logs for less than a second before getting

error: read tcp <IP_ADDRESS>:55986-><IP_ADDRESS>:6443: read: connection reset by peer

Expected behavior
Kube-VIP should NOT have a split brain...
Environment (please complete the following information):

OS/Distro: Ubuntu 22.04
Kubernetes Version:  1.26.3+rke2r1
Kube-vip Version: 0.6.3

Kube-vip.yaml:
# This file was generated
# Generated from the documentation here: https://kube-vip.io/docs/installation/daemonset/

# Steps:
# 1. Add the RBAC rules from https://kube-vip.io/manifests/rbac.yaml
# 2. Use Version v0.5.12
# 3. `alias kube-vip="docker run --network host --rm ghcr.io/kube-vip/kube-vip:$KVVERSION"`
# 4. `kube-vip manifest daemonset --interface $INTERFACE --address $VIP --inCluster --controlplane --services --arp --leaderElection --taint`
#    Where:
#    --address is the Kubernetes API floating IP
#    --interface is the network interface to control (enp1s0 for the testbed)
#        Note: I left both these generic and filled them with ansible template variables
#    --inCluster Required as a daemonset
#    --taint Only runs on controlplanes
#    --arp Use arpping to control the leader
#    --services Also act as an in-cluster LoadBalancer
#    --leaderElection Perform leader election to select a master
#
# 5. This will dump a Manifest to the console. Append that with the RBAC rules above to create this file.
apiVersion: apps/v1
kind: DaemonSet
metadata:
  creationTimestamp: null
  labels:
    app.kubernetes.io/name: kube-vip-enp24s0f0
    app.kubernetes.io/version: v0.5.12
  name: kube-vip-enp24s0f0
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: kube-vip-enp24s0f0
  template:
    metadata:
      creationTimestamp: null
      labels:
        app.kubernetes.io/name: kube-vip-enp24s0f0
        app.kubernetes.io/version: v0.5.12
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: node-role.kubernetes.io/master
                    operator: Exists
              - matchExpressions:
                  - key: node-role.kubernetes.io/control-plane
                    operator: Exists
      containers:
        - args:
            - manager
          env:
            - name: vip_arp
              value: "true"
            - name: port
              value: "6443"
            - name: vip_interface
              value: enp24s0f0
            - name: vip_cidr
              value: "32"
            - name: cp_enable
              value: "true"
            - name: cp_namespace
              value: kube-system
            - name: vip_ddns
              value: "false"
            - name: svc_enable
              value: "true"
            - name: vip_leaderelection
              value: "true"
            - name: vip_leaseduration
              value: "5"
            - name: vip_renewdeadline
              value: "3"
            - name: vip_retryperiod
              value: "1"
            - name: address
              value: <IP_ADDRESS>
            - name: prometheus_server
              value: :2112
          image: ghcr.io/kube-vip/kube-vip:v0.6.3
          imagePullPolicy: IfNotPresent
          name: kube-vip
          resources: {}
          securityContext:
            capabilities:
              add:
                - NET_ADMIN
                - NET_RAW
      hostNetwork: true
      serviceAccountName: kube-vip
      tolerations:
        - effect: NoSchedule
          operator: Exists
        - effect: NoExecute
          operator: Exists
  updateStrategy: {}
status:
  currentNumberScheduled: 0
  desiredNumberScheduled: 0
  numberMisscheduled: 0
  numberReady: 0
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-vip
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  name: system:kube-vip-role
rules:
  - apiGroups: [""]
    resources: ["services", "services/status", "nodes", "endpoints"]
    verbs: ["list","get","watch", "update"]
  - apiGroups: ["coordination.k8s.io"]
    resources: ["leases"]
    verbs: ["list", "get", "watch", "update", "create"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: system:kube-vip-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:kube-vip-role
subjects:
  - kind: ServiceAccount
    name: kube-vip
    namespace: kube-system

Additional context
The lease in kubectl get lease also shows that node 1 holds the lease, yet host 2 is still controlling the IP.

Potentially a duplicate of https://github.com/kube-vip/kube-vip/issues/665

Update: I just did some more investigation and it turns out that we are hitting this issue much more often than we originally thought we were. I've updated the original post. It also turns out that this is not only an issue when deploying 2 kube-vip, this is an issue for EVERY deployment of kube-vip and causes kube-vip to be unstable and unreliable for a production setting!

Very peculiar, the separate leases should ensure that one kube-vip instance ignores the other. I'll need to update the testing to generate the same configuration.

I think i figured out the real issue.
It's not that there is a split-brain -- it's that there are two different leases.
There is one lease for the control plane, and there is one lease for the service masters. If two different VIPs get control of each lease, then it is game over.
As an attempt to naturally fix the issue, I just restarted one of the kube-VIP instances that was in contention for the IP address, but when it restarted I found this:
Node [gx-k8s-testbed-node-1] is assuming leadership of the cluster
new leader elected: gx-k8s-testbed-node-2

And kubectl get leases:
kube-system       plndr-cp-lock                                    gx-k8s-testbed-node-1                                                            200d
kube-system       plndr-svcs-lock                                  gx-k8s-testbed-node-2                                                            200d

I think that both leases are advertising the kube-vip IP address from the owner of the lease. plndr-cp-lock makes node-1 think it has control of the IP address for the control-plane and therefore it advertises the IP address. But plndr-svcs-lock makes node-2 think it has control of the IP address to ingress incoming service traffic and so it also advertises the IP address, resulting in 2 hosts advertising the same IP address.

Yes, this appears to be the issue.
I manually edited one of the leases to make both lease owners the same. I ran kubectl edit lease plndr-svcs-lock -n kube-system (which was held by node-2) and changed the lease YAML to change the holder identity to node 1:
spec:
  holderIdentity: gx-k8s-testbed-node-1

And after this got applied, my cluster was fixed and I was no longer getting timeouts or stream disconnects.

Same here. I've been hoping that the maintainers get to this but haven't seen any priority put on this. I'm surprised more people are being hit by this...

I wish I could help diagnose it but I'm not even sure where to start.

Hi @QuinnBast @comminutus
I think it's intentional that service and control plane logic use different leases since they are two set of functionalities, and it can help distribute the IP load on different hosts between these two functionalities.
BTW, since this commit you should be able to configure your service lease name https://github.com/kube-vip/kube-vip/commit/e41abf0f88ef3556c3400abfb68572559ba1fe0a to the same name as you control plane lease name, using svc_leasename variable or plndr-svcs-lock flag. It's in 0.6.4 and 0.6.3. I still have concern that once you delete the service, the logic will also try to remove that IP from the VM, then it might impact the control plane HA. Not sure have you tried that.

Is there any reason why there are two leases, or, more importantly, why each lease is broadcasting the IPs at L2? I guess the answer to this is because the service lease needs to handle CIDR pools and/or DHCP so would need to broadcast IPs at L2 for newly assigned IPs from the pool.

Yes, service type lb's ip is also broadcast through L2 if you configure ARP mode.

Maybe we can make it so that the service lease doesn't do an L2 advertisement for IPs that match the --address CLI/env param if it exists? This should prevent clobbering the control plane IP

How do you allocate IP to service type loadbalancer though, do you use kube-vip-cloud-provider? The problem of using kube-vip-cloud-provider is that it's just responsible to blindly assigning ip to service type lb from a pool, it doesn't care about what's the control plane endpoint. Even though kube-vip can stop advertising that IP, it still need to inform kube-vip-cloud-provider that it shouldn't allocate that IP to that service, instead of just stoping advertising twice. This sounds more like a hack. instead of proper fix.
Supporting same IP address shared between control plane HA and services I think it would be more complicated than that. Since you need to think how many services will you create, do they all share the same VIP? Then if there are multiple services, how can k8s route the traffic to correct backend pod, especially if they share the same port. Also how to take care of deleting service would need some different logic to skip deleting VIPs like I mentioned above.
So rather than claiming support it, we should explicitly state that this is not supported, since there are many implications if enabling it. I think you can just use svc_leasename variable or plndr-svcs-lock flag to achieve the same goal for now if you really want to use same IP for service and control plane endpoint
And we could also do either of followings:

Ask user not to include the control plane endpoint inside the pool of kube-vip-cloud-provider in kube-vip-cloud-provider doc.
if kube-vip-cloud-provider selects an ip that's used by control plane endpoint advertised by kube-vip, let kube-vip make an annotation/condition on the service, indicating that that IP is invalid, please reselect. Then kube-vip-cloud-provider could choose a different ip. Keep that IP in a cache so it could skip it next time when selecting IPs. If user doesn't use kube-vip-cloud-provider to allocate
add a new field exclude-cidr-global or exclude-iprange-global to configmap of kube-vip-cloud-provider so that user could add control plane endpoint directly in that group, without having to change their existing cidrs or ipranges settings.

What's your thought cc @thebsdbox ?

This is enlightening @lubronzhan , I didn't realize this configuration wasn't really supported.  I'll have to rethink the few clusters I maintain with this configuration and see if I can rebuild them to separate out the control plane IP from the service(s) IP(s).

Good point about the kube-vip-cloud-provider. I don't use this component so I'm not really sure about the implications of using this.
Typically the workflow for my clusters is to just do something like this:
type: Service
spec:
    kind: LoadBalancer
    loadBalancerIP: <MyFloatingIPAddress>

Where I manually specify the ladBalancerIP on each of the services in my cluster. In my case, MyFloatingIPAddress is also the IP of the control plane. We make sure to ensure that services exposed on these IPs don't use the same ports. I would say that if people are using kube-vip-cloud-provider to allocate IP addresses from a pool or CIDR range, then this isn't an issue for them, as they can just make the cloud-provider's pool or CIDR range exclude the control plane IP, as having a pool of IPs to allocate from means they probably wouldn't have a need to share the control plane and service IPs anyway (though correct me if I'm wrong, I don't really know what kube-vip-cloud-provider does).

since this commit you should be able to configure your service lease name https://github.com/kube-vip/kube-vip/commit/e41abf0f88ef3556c3400abfb68572559ba1fe0a to the same name as you control plane lease name, using svc_leasename variable or plndr-svcs-lock flag. But I assume it might not work since you can't start two leases with same names.

This could be the solution, honestly. I will try this out and as long as it doesn't fail when attempting to create the second lease with the same name then I think this should work. If it does fail when attempting to create the new lease, maybe the fix is to just do something like this:
if (svc_leasename in k8s.getLeases()) {
   // skip creation of the lease
} else {
  k8s.createLease(svc_leasename)
}

So the only way this would ever be supported is on a single node.. otherwise you end up in a position where the control plane IP and the single services IP end up on different hosts. Creating an IP address conflict :-(

Even if they both reference the same lease?
Currently if both leases are assigned the same host there are no issues. Issues only happen if the two leases have different hosts.

@QuinnBast this is what is odd to me too.  Why is it not supported if when both leases are held by the same server, everything works fine?

Hi @QuinnBast @comminutus
In our code we have 2 different goroutines for controlplane HA and service type LB separately by default. each goroutines will start create a different lease, so these two processes are acting separately. And if the kube-vip acquires the lease and becomes the leader, it will add that ip to the node's NIC, advertising that IP using GARP, if you are using ARP mode. If it lose the lease, the kube-vip will just stand by, not advertising any IP, and will also remove the IP from the node's NIC
The case Dan mentioned would work it's only because having a single node will make sure the single kube-vip will acquire lease and act as leader to advertise IP for control plane HA and service type LB on the same Host (node/VM). Even if you
If you have multiple nodes, for example n1, n2, n3, kube-vip on n1 might acquire the lease for control plane HA and advertise ip <IP_ADDRESS> on n1, at the same time, kube-vip on n2 might acquire the lease for type LB service, and advertise ip <IP_ADDRESS> on n2, it will also create iptables rules to help route traffic to the backend pod. Then if you tries to reach the service type LB, the traffic might goes to the control plane HA VM n1 instead of n2, which doesn't have the relative iptables rules to help route traffic to backend pod created by kube-proxy, or even the port doesn't match since you have 6443 for control plane endpoint but might have 443 for your service type LB.
Hope above explanation helps.

The problem with that is that the leases and who owns/controls the lease is controlled by Kubernetes, not kube-vip.
I'm not too familiar with goroutines (or go in general) but in other languages you can run some logic in the main thread before your coroutines are spawned and you can also potentially pass some context to each spawned thread. Could we not add a flag or env variable that checks if an end user would like the IPs shared and if set, then the goroutines share the lease?
Something like this:
if(env.shouldShareLease) {
   leaseRef = "plndrSvcLck";
   launch serviceGoroutine(leaseRef);
   launch controlPlaneGoroutine(leaseRef);
} else {
   launch serviceGoroutine("svcLck");
   launch controlPlaneGoroutine("cpLck");
}

For example

Yeah that's doable.
Just found out little bit hacky stuff here https://kube-vip.io/docs/usage/kubernetes-services/. I guess we can just expose some configuration then up to the user not to shoot on their own feet (for example deleting one of the service, which might impact other service when removing the vip)

Is there a fix for this issue? I'm running kube-vip with both Control Plane and Service IP functionality using the same IP and when leader election happens, sometimes, these locks end up on different nodes.

There is a workaround:
kubectl get leases -n kube-system

If the holder of plndr-cp-lock is different than plndr-svcs-lock:
kubectl edit lease plndr-svcs-lock -n kube-system

Change the holder identity to be the same holder as the other lease:
spec:
  holderIdentity: gx-k8s-testbed-node-1

But a fix hasn't been implemented yet. I would contribute but I don't know Go :upside_down_face:

Kube-vip will keep

Service LB
CP LB

separate.
If you want to use both you need at least 2 IPs.
Wontfix

If this is the case, you should definitely document this or put a warning somewhere, because this was one of the main reasons we switched to Kube-vip in the first place - we thought it could handle clusters using a shared IP address for both LoadBalancers.

If this is the case, you should definitely document this or put a warning somewhere, because this was one of the main reasons we switched to Kube-vip in the first place - we thought it could handle clusters using a shared IP address for both LoadBalancers.

Strongly agree with this. The issue shouldn't be closed without a documentation update at the least.

Clarify in docs how kube-vip can and cannot be used.


[Github] feat: changed MailerTransportLoader to use transport factory for local transport type

1. Why is this change necessary?
Setting the message queue has no effect if "local" is set for mail transport.
2. What does this change do, exactly?
Use specific factory to create transport.
3. Describe each step to reproduce the issue or behaviour.
set "local" for mail transport, set message_bus in config. Send mail. See it is sent directly.
4. Please link to the relevant issues (if any).
https://github.com/shopware/shopware/issues/4685
5. Checklist

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

Imported from Github. Please see: https://github.com/shopware/shopware/pull/4700

[public] Shopware automated response: This issue is linked to the internal issue: NEXT-38429
[created from NEXT-38429, comment 497701]


Add imperative features

This is to add support for mutable local variables (mut let), mutable fields (mut val), and while loops (while ... do ...). Reassignment is given syntax set x = t, which clearly distinguishes it from equations, which use a single =.

@chengluyu Thanks for the helpful review! I'll merge when the conversations are resolved. I've answered all of them.


A mirror station has removed bad  "#standWithXXXX"

Hello, Alibaba mirror station has resumed synchronization, and removed the stupid remarks that impose personal will on someone
"#standWithXXXX"

Thank you!

Translation for english speakers.
Global configuration
All projects will use this mirror address:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

To undo this change:
composer config -g --unset repos.packagist

Project configuration
This method will only make the project in the current directory, make sure you have a composer.json file.
composer config repo.packagist composer https://mirrors.aliyun.com/composer/

To undo this change:
composer config --unset repos.packagist


Attempt to run *BSD CI in VMs.

@devnexen, I've disabled the OpenBSD job for now because a load of tests fail.  If there's an update to the OpenBSD PAL that fixes them, that would be great.  I've disabled NetBSD because it doesn't run in xhyve and the qemu host is painfully slow: I have up watching it after 25 minutes.  Here is the run with both enabled.  It might eventually produce output for NetBSD, we can maybe do compile-only testing (or maybe exclude the perf tests?) if that doesn't take too long.  We may also get NetBSD-on-xhyve support soon (apparently 9.x boots on bhyve with UEFI mode, so should work, in theory).

@devnexen, I've disabled the OpenBSD job for now because a load of tests fail. If there's an update to the OpenBSD PAL that fixes them, that would be great. I've disabled NetBSD because it doesn't run in xhyve and the qemu host is painfully slow: I have up watching it after 25 minutes. Here is the run with both enabled. It might eventually produce output for NetBSD, we can maybe do compile-only testing (or maybe exclude the perf tests?) if that doesn't take too long. We may also get NetBSD-on-xhyve support soon (apparently 9.x boots on bhyve with UEFI mode, so should work, in theory).

Thanks for trying it, I ll have a look when I get the chance


Correctly retain indices for DataFrame.merge()

As discussed in #438, this PR correctly retains the indices of the merged DataFrames.
Resolves #438.

Codecov Report

Merging #457 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #457      +/-   ##
==========================================
+ Coverage   93.28%   93.32%   +0.03%
==========================================
  Files          29       29
  Lines        3694     3714      +20
==========================================
+ Hits         3446     3466      +20
  Misses        248      248

Impacted Files
Coverage Δ

databricks/koalas/frame.py
94.9% <100%> (+0.14%)
:arrow_up:

Continue to review full report at Codecov.

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

@rxin Can you code review and accept this PR soon? There are some function based merge to be completed.

cc @ueshin and @HyukjinKwon
I'm at a conference for the next couple days.

Let me take a look. Today is a release date so probably I will get this in today.


Alternative URLs for Regions

Migrate to RegionSlug, remove Region.slug
Make tests green, fix the factories
Added db seeds
Add RegionSlugs to active admin
Closes #565

Noticed some issues while manually testing. Will commit these fixes soon.

Thank you for your PR, this looks really solid :smile: See comment above :smile:

Just scrolled by & this looks really cool. Thanks @gill0r! :cake:

Solid Work, @gill0r :smile: Thank you so much! :heart: Looking forward to more contributions :smile_cat:


Add Get User by Name Endpoint

https://github.com/ariesprayoga/swagger-java-sample-app/blob/master/src/main/java/com/wordnik/swagger/sample/resource/UserResource.java

Closed by #60


Bullets stripped from lists in Projects and Posts

Good morning! When I put a  in a project, the bullets are stripped out of the list items:
http://move.engineering.asu.edu/project/shane-underwood/
Is the list style defined by the theme? Or is this some WP oddity?

Looks like a Divi Builder oddity?
From inspecting the element, I can see that there are two styles that are setting the list-style to none:

I'm not sure that the best solution for this would be. Is there a way to change this behavior in Divi?

Thank you! Should have taken that step myself! I'll look into it. I'm trying out the Divi builder on some pages with this theme, because we have lots of sites built in Divi, and the non-coders who edit their own pages are very familiar with it, and are not really able to edit straight html effectively, so we want to introduce some consistency when people go to edit their sites. Thanks!


[Event Request] C90 OnBeforeUpdPostingDescriptionOnInvoice

I refer to my old Request
I quote AlexanderYakunin

We don't have this code in latest version, please check you request

If I misinterpreted something, I am truly sorry. The latest Version I know of is the RTM Version of the Microsoft Dynamics 365 Business Central – 2019 Spring Release (Version CH). Where the function "UpdPostingDescriptionInvoice" exists.
Thanks for clarification & Kind regards

This is CH specific, please always provide country code if ask is not for W1.


Dump loaded langs from hir

Here a two places where it should be dump:

inside dump_hirfile;
inside from_ast.cpp.

Good idea, although the wording of the messages needs a little tweaking - and the dump_hirfile output should include the path as well as the name.

@thepowersgang any suggestion for name tweaking ?

@thepowersgang here it is


Documentation fixes

Details inside the commits.
Overall: cleanup and harmonization.
Added more recipes from existing draft docs.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "5.all-ur-proxy-are-belong-to-us" git@github.com:dmp42/distribution.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Squashed commits.

A nit.

Nits addressed.

@RichardScothern added mirror.md as a recipe - tweaked it a bit.
Separate commit for that.

LGTM

@dmp42 needs a rebase

@aaronlehmann all nits addressed (but the env var discussion), and rebased.


ResizeObserver loop limit exceeded

Raygun report https://app.raygun.com/crashreporting/258s6a2/errors/4690696297 has more details about the error

See How to find and fix script errors with Raygun · Raygun Docs


need for ui.Image image data type for flutter channel

need for ui.Image image data type for flutter channel which can get converted to bitmap in android.

Hi @abhishekove
Can you please elaborate your proposal? It is not clear what you are proposing.

The new data type should be added to the flutter platform channel so that image can be easily passed and recieved instead converting them to Uint8List and recieve it as a byte array and convert to bitmap and same again. My request is to add a new data type as it can be recived as a bitmap on the android side.

Cc @dnfield

There are a few challenges to this:

A ui.Image is not backed by an android.graphics.Bitmap.
It is backed by an SkImage, but from a Skia revision that is almost certainly different than the revision of that any Android device uses natively.
There is probably no good way to let Java code on Android ask the engine for the SkImage anyway.

There might be some way to do what you're looking for, but it would really help to have a use case for it to make sure we'd be meeting the use case(s).

It would be helpful to have some more details about the needs here.  Images of that size in any quantity will be tough to work with on some mobile devices that have little ram.

@abhishekove can you please share more details on what you are trying to achieve? What exactly you are trying to do and why?

I am trying to do edge detection in flutter and I am using java with tflite model to do so with the use of OpenCV.

You'll probably have the best luck with a platform view rather than trying to shunt the bytes all over.


train_segmentation: in get_num_samples(), variable samples_weight can be referenced before assignment

https://github.com/NRCan/geo-deep-learning/blob/8d85078a1aeae791244807660c5cd5119cca7d83/train_segmentation.py#L132
Should this variable be set to None at top of function?

solved in current version


Una guía sencilla en español para crear un Pull Request y colaborar.

I think it is important to have here a guide in Spanish on how to make a Pull Request and how people can know how they can start collaborating.

See https://github.com/github/opensource.guide/pull/434

Hi @hgm1284! As @m1guelpf mentioned, a Spanish translation is already in progress over at #434. I'd encourage you to take a look and get involved if it's of interest.


[ssr] Async route definition isn't compatible with SSR mode

Version
4.0.0-beta.12
Reproduction link
https://github.com/JounQin/serverless-study/blob/master/src/router.ts#L11
Steps to reproduce

run yarn dev, works as expected with .then(Comp => Comp.default)
remove .then(Comp => Comp.default), [Vue warn]: Component  is missing template or render function. will be logged from @vue/server-renderer, and no route content will be server rendered, and client side route will do the job

What is expected?
Without .then(Comp => Comp.default), the async route on sever should also work
What is actually happening?
Inconsistent between client and server

Seems related to: https://github.com/vitejs/vite/issues/764

This is an upstream bug as commented in the linked issue. I added a test at 65c18db

@posva The test case seems different, the issue is caused by Promise<{default: Component}>.


Different flows for data loading in admin entity listing

Description
Any entity listing in the admin like the customer listing or manufacturer listing has different ways to load data. This results in different problems. E.g. you have a customer listing that is empty. Using the demo-data command to fill up demo customers and then click on a column header to trigger a re-sorting. The sorting triggers a search. The search results in an now filled list and an update-records event. Without a listener on the update-records event to update the total state in the customer-list you get a filled listing but still have the displayed empty state as they depend on the count <sw-empty-state v-if="!isLoading && !total" :title="$tc('sw-customer.list.messageEmpty')"></sw-empty-state>

Every entity listing suffers from this as the sorting change triggers the doSearch method (as other events do as well). This uses the the assigned repository and the already existing criteria and context on the assigned items. This means the wrapping sw-customer-list needs to assign the first resultset to the sw-entity-listing and then never has to change anything anymore to work. Instead sw-customer-list uses the initialization method getList, that one is forced to use by the listing-mixin, multiple times to re-initialize the entity listing. As a third party dev you will look at it and think that getList ist the way to assign data. So one is fooled into being able to change the API resultset by adding calculated data to the entities. The hidden doSearch does not trigger getList and therefore the manually added calculated data is missing on e.g. sorting. As well the API search is the only data you can display. There is no simple way to alter the search API resultset.
Possible Solution
My personal conclusion is: there is just a single way to implement getList:
getList() {
    this.isLoading = true;
    this.repository.search(this.criteria, Shopware.Context.api).then(items => {
        this.total = items.total;
        this.items = items;
        this.isLoading = false;

        return items;
    }).catch(() => {
        this.isLoading = false;
    });
}

This means you only have to supply a default critera and a repository. Calculating the changes that are done from the UI should be part of the criteria computation as that one can change. Maybe a change for the listing mixin.
There are multiple ways to change the data from the search call:

One can use a service decorator or custom api service implementation for the repository
One can add runtime calculated fields to the entity definition
One can add columns in the listing and override their display template and use modifiers or custom components that display different values in that column

The update-records event is not suitable to change the items as it is triggered on an item change.

Which way to go? Adding utility to make it easier to build the methods like getList or make doSearch less hiddenly used and give control over it in the listing-mixing? I know that this is a result of the mixture of different components in either class-hierarchical, DOM-hierarchical and mixin usage. But this results in a super strange way to handle listings.

Hey Joshua,
thanks for your great ideas. We also think there is optimization potential in the admin entity listing.
We think it will be a good idea to implement the listing logic more inside the entity-listing component so that the initial getList call is not needed anymore. You control the listing from the outside with different properties and the listing updates reactively to the changes.
I will create a ticket for this and we will evaluate which solution will be the best.

I am experiencing that sub-components which are not pages are working really good with
Component.register('component-list', {
    template: `
<sw-entity-listing
    v-if="items"
    :items="items"
    :repository="repository"
    :showSelection="false"
    :showSettings="true"
    :columns="columns"
    :isLoading="!isLoading"
    :showActions="false"
>
    <template #column-createdAt="{ item }">
        {{ item.createdAt | date({ hour: '2-digit', minute: '2-digit' }) }}
    </template>

    <template #pagination>
        <sw-pagination
            :page="page"
            :limit="limit"
            :total="total"
            :total-visible="7"
            @page-change="onPageChange">
        </sw-pagination>
    </template>
</sw-entity-listing>
    `,
    mixins: [
        Mixin.getByName('listing')
    ],

    data() {
        return {
            items: null,
            total: 0,
            isLoading: true,
            disableRouteParams: true
        };
    }
});

Are there any flaws in there by chance or can that be part of the docs later? ;)


[zh-cn] sync case-studies/daocloud

[zh-cn] sync case-studies/daocloud

This Chinese version is exactly identical with the blog I wrote and published on DaoCloud doc website in about Feb 2023. See: https://github.com/DaoCloud/DaoCloud-docs/pull/869
@my-git9

hmmm, it's not suitable to close if reviewers has put many efforts here. Respect comes from each other.

hmmm, it's not suitable to close if reviewers has put many efforts here. Respect comes from each other.

sorry for that, I will continue to work on this

@my-git9 You can have a try to co-authored with @Michelle951. Also, respect the above comments.

co-authored

OK, let me know how to do it, thanks!

@Michelle951  Hi, I set the co-authored with you, do you support this form and can you check if the information is correct?

/approve

Thanks. IMO, it's time to merge now.
/lgtm

@Michelle951 Hi, I set the co-authored with you, do you support this form and can you check if the information is correct?

LGTM. Thanks


introduce --database.old-system-collections option.

Scope & Purpose

Added startup option --database.old-system-collections to toggle automatic
creation of system collections _modules and _fishbowl, along with their
internal usage. These collections are useful only in very few case, so it
is normally not worth to create them in all databases.
The _modules collection is only used to register custom JavaScript modules,
for which there exists no API, and _fishbowl is used to store the temporary
list of Foxx apps retrieved from the Github Foxx store.
If the option value is true (to ensure downwards-compatibility, but the
default will change from v3.8 onwards), the two collections will not be created
for any new database. The _fishbowl collection will still be created dynamically
when needed. If the option value is true, the collections will be created
regularly as before.
The default value for the option will change to false in v3.8, meaning the
collections will not be created there by default.
Any functionality related to the _modules system collection is deprecated
and will be removed in ArangoDB v3.9.
Two side effects of when this option is turned on are:

there will no be iteration over all databases at server startup just to check
the contents of all _modules collections.
less collections/shards will be around for deployments that create a large
number of databases.
Already existing _modules and _fishbowl system collections will not be
modified by this PR, even though they will likely be empty and unused.

Don't iterate over all databases as server startup in order to initialize the
routing information. This is not necessary, as the routing information is
global and not tied to a specific database.

[x] :hankey: Bugfix
[x] :pizza: New feature
[ ] :hammer: Refactoring
[x] :book: CHANGELOG entry made
[ ] :muscle: The behavior in this PR was manually tested
[x] :computer: The behavior change can be verified via automatic tests

Backports:

[x] Backports required for: 3.6

Testing & Verification

[ ] This change is a trivial rework / code cleanup without any test coverage.
[x] This change is already covered by existing tests, such as shell_server, shell_client, http_server.
[x] This PR adds tests that were used to verify all changes:

[x] Added new integration tests (i.e. in server_parameters)

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/11964/

Tests blue


[Event Request] codeunit 6501 "Item Tracking Data Collection" OnUpdateTempSummaryWithChangeCalcCurrentPendingQuantity

Hello,
Is it possible to add the following Event:
            if ChangedEntrySummary."Serial No." <> '' then begin
                TempGlobalEntrySummary."Current Pending Quantity" := SumOfSNPendingQuantity;
                TempGlobalEntrySummary."Current Requested Quantity" := SumOfSNRequestedQuantity;
            end else
                TempGlobalEntrySummary."Current Pending Quantity" := ChangedEntrySummary."Current Pending Quantity" -
                  TempGlobalEntrySummary."Current Requested Quantity";

            // DINNL <<
            OnUpdateTempSummaryWithChangeCalcCurrentPendingQuantity(ChangedEntrySummary, TempGlobalEntrySummary);
            // DINNL >>
            TempGlobalEntrySummary.UpdateAvailable();
            TempGlobalEntrySummary.Modify();
        end else begin
            TempGlobalEntrySummary := ChangedEntrySummary;
            TempGlobalEntrySummary."Entry No." := LastEntryNo + 1;
            TempGlobalEntrySummary."Serial No." := '';

[IntegrationEvent(false, false)]
local procedure OnUpdateTempSummaryWithChangeCalcCurrentPendingQuantity(ChangedEntrySummary: Record "Entry Summary" temporary; var TempGlobalEntrySummary: Record "Entry Summary" temporary)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Live Stream not playing?

For some reason each time i attempt to Download / Play a livestream it starts but doesn't play anything
No errors were really thrown either

no idea if its even supported or not


Buttons flow over search results and other elements

Now, it's using css from nette.org (.wiki navigation) and I have in a plan change this design
@paveljanda Some idea where to place this "navigation"

Well, i would put the Language "toggler" simply to the header or footer, because all user are used to do so there.
And the Profile/Action buttons to the (header)[http://getbootstrap.com/components/#navbar] - again, because users are ussed to.


Add a function to construct all tests

Well, as I said in the main uproxy repo, I'm sorry that this function is
so ugly.  Grunt sucks, and I am totally unable to think of a better way
to do this...I'd appreciate any suggestions though :).
TODO: move to gulp.
BTW, I do get to simplify this somewhat if I always assume that the rootDir is 'src' (true for uproxy and uproxy-lib).  Thoughts on that?

  I think it is easier to understand what's going on in this version, and easier to deal with using it, but I don't LOVE the idea of loosing that level of genericism.
diff --git a/src/build-tools/common-grunt-rules.ts b/src/build-tools/common-grunt-rules.ts
index 29d3032..792a500 100644
--- a/src/build-tools/common-grunt-rules.ts
+++ b/src/build-tools/common-grunt-rules.ts
@@ -223,20 +223,20 @@ export class Rule {
    * rootDir is the directory under which the layout will match what this file
    * expects for paths being passed in (i.e. under devBuildPath).
    *
-   * getTests('src', gruntConfig);
+   * getTests('', gruntConfig);
    *   This adds tests for all the directories under src/ and browserifies all
    *   spec files within those directories.
-   * getTests('src', gruntConfig, 'generic_ui/scripts');
+   * getTests('generic_ui/scripts', gruntConfig);
    *   This adds tests for all the directories under src/generic_ui/scripts and
    *   browserifies spec files within those directories.  All paths will be
    *   relative to src/.
-   * getTests('src', gruntConfig, undefined, ['integration-tests']);
+   * getTests('', gruntConfig, ['integration-tests']);
    *   This adds tests for all the directories under src/ and browserifies all
    *   spec files within those directories.  Any directories named
    *   "integration-tests" will not be examined.
    */
-  public getTests = (rootDir :string, gruntConfig :{[c :string] :{[t :string] :Object}},
-                     current?:string, ignore?:string[], coverage?:boolean) => {
+  public getTests = (dir :string, gruntConfig :{[c :string] :{[t :string] :Object}},
+                     ignore?:string[], coverage?:boolean) => {
     if (typeof ignore === 'undefined') {
       ignore = [];
     }
@@ -245,26 +245,22 @@ export class Rule {
       coverage = false;
     }

-    if (typeof current === 'undefined') {
-      current = '';
-    }
-
-    var dir = path.join(rootDir, current);
+    var absoluteDir = path.join('src', dir);

     var tasks :string[] = [];
     var childTasks :string[] = [];

-    var files = fs.readdirSync(dir);
+    var files = fs.readdirSync(absoluteDir);
     for (var f in files) {
       var file = files[f];
       if (ignore.indexOf(file) !== -1) {
         continue;
       }

-      var stats = fs.statSync(path.join(dir, file));
+      var stats = fs.statSync(path.join(absoluteDir, file));
       if (stats.isDirectory()) {
         childTasks = childTasks.concat(
-            this.getTests(rootDir, gruntConfig, path.join(current, file), ignore, coverage));
+            this.getTests(dir, gruntConfig, file), ignore, coverage));
         continue;
       }

@@ -273,7 +269,7 @@ export class Rule {
         continue;
       }

-      var loc = path.join(current, match[1]);
+      var loc = path.join(dir, match[1]);
       var browserifyName = loc + 'Spec';
       var browserifyRule = this.browserifySpec(loc);

@@ -287,8 +283,8 @@ export class Rule {
     }

     if (tasks.length) {
-      var testName = current;
-      var testRule = this.jasmineSpec(current);
+      var testName = dir;
+      var testRule = this.jasmineSpec(dir);

       if (coverage) {
         testName += 'Cov';

Thanks for looking at this!
I agree getTest's args are complex. I think you'd have more luck abstracting it more. Essentially, you want a simple function that returns (as an array of strings) src/*/*.spec.js:
Then you could write something like:
taskManager.add 'browserifySpecs', [
  'base'
].concat(Rule.browserifySpec spec for spec in Rule.getTests())

taskManager.add 'unit_test', [
  'browserifySpecs'
].concat(Rule.jasmineSpec spec for spec in Rule.getTests())

Make sense?

That makes sense, I personally like the more abstract idea of being able to say "I want to build and run a test for ___" and being able to then just do a single function call to set all of that up.

I think it would be clearer again if we combined Rule.browserifySpec and Rule.jasmineSpec, then we could have:
taskManager.add 'unit_test', [
  'base'
].concat(Rule.buildAndRunSpec spec for spec in Rule.getTests())

Related issue:
https://github.com/uProxy/uproxy/issues/1741

So...I'm hoping to make master the default branch soon. If you've no objections, I'm going to close this -- please re-open on master when it's ready, would love to have this in.

Yup, that's fine.  Sorry about the delay here.
On Fri, Dec 4, 2015 at 4:44 PM, trevj<EMAIL_ADDRESS>wrote:

So...I'm hoping to make master the default branch soon. If you've no
objections, I'm going to close this -- please re-open on master when it's
ready, would love to have this in.
—
Reply to this email directly or view it on GitHub
https://github.com/uProxy/uproxy-lib/pull/300#issuecomment-162090392.

No worries, hope to see this again on the other side.