Problems with editChatInviteLink after API 5.4 update

Hi.
Thanks for new API update! Neat new features :)
While working to incorporate the changes into python-telegram-bot, I've noticed that the update seems to have introduced problems with editChatInviteLink: passing member_limit or name has unexpected effects on the existing settings for the invite link.
Example:

create a new invite link, pass chat_id and member_limit
edit the link, pass the parameters chat_id, invite_link and name. Expected result: the member_limit set in step 1 still holds an the name is added. Actual result: the member_limit is deleted and the name is applied
edit the link again, pass chat_id, invite_link and member_limit. Expected result: the name set in step 2 still holds and the member_limit is added. Actual result: Neither name nor member_limit are applied

Another example:

create a new invite link, pass chat_id and member_limit
edit the link, pass chat_id, invite_link and a different member_limit. Expected result: the new member_limit is applied. Actual result: The member_limit is deleted

A third example:

create a new invite link, pass chat_id and member_limit
edit the link, pass chat_id, invite_link and a creates_join_request=True. Expected result: the new member_limit is removed and creates_join_request is applied. Actual result: The member_limit is set to 1 and creates_join_request is not applied

I'm not sure what to make of this and would be happy for a response :)

The method editChatInviteLink doesn't support partial edits, all invite link parameters are replaced by this method. Value of a nonspecified parameter is changed to its default value.
Other mentioned issues was fixed in Bot API 5.4.1: member_limit and creates_join_request can be edited correctly now.


Error

The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.
  Please see the install instructions at:
     https://pillow.readthedocs.io/en/latest/installation.html

  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> Pillow
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

try newest release https://github.com/nadermx/backgroundremover/releases/tag/v0.2.1


Removed user_id from time_entry

The idea here is that time entries should derive their user from their tasks.
The idea of a time entry belonging to a user whom the task does not belong to is
void unless tasks can be shared, but not owned, by other users.

I've decided against this feature.


Godot closes directly after launching

Hello Ppl,
Suddenly my Godot has got an Issue with launching.
When i start it, the console (cmd) opens and 3 seconds later the console and godot closes down.
The main Godot Exe wont even open - only the console windows opens up.
Graphics driver is updated, it worked before, and it is the Godot Version 3.2.3 for 64 Bit.
Thanks for your help!!!

Hi, there is an issue template. Please edit your issue and provide the required information. I will reopen when this is done.
Also, without information on the message, a video, or a reproduction project, there's no way we can solve the issue.


bugfixes + UI impovements

bugs:

icapslogo now aligns with title textbox (I made it slighty bigger)
moved layouts for news pages (they now only apply to content in the news section)

improvements:

reduced the opacity to the icaps logo; I think it looks better, slightly see-through
reduced the sizes of the default h1/h2/h3/h4 elements. each one is now the size of the previous one (i.e., h1=h2, h2=h3 etc). I think this is better, as h1 was really large before and especially ugly when the page contains a smaller amount of text

Here's another possible variant for improving the logo/title (I see every past edition had problems with this)

Hi @dharabor the website renders correctly and I think the changes you have made to styles are very sensible.

No worries, @dharabor. I do not have an opinion on that one :) My only observation is that the banner could be smaller, beautiful as Melbourne evening sky is. On Full HD laptops I am not sure how much of the video is visible (on my 4K desktop monitor I can only see half of the Youtube video).
Feel free to send another PR anytime. Also, let's make official that for changes that do not affect the layout of the site (content etc.) we do not need to go through the review process. Those changes should not break the website and should be safe to apply directly.


chain starting is running indefinitely without creating the chain

Hi,
I am running Eris 0.12.0 version on Ubuntu 14.04. I have run 'eris init' and downloaded the images. 'eris chains make' runs without any error. But when I start the chain, it is running indefinitely with the error.
Directory missing                 destination=/home/eris/.eris/chains/simplechain
error=Container interactive-e7c1e1b6-9ef2-4f1e-8ef6-ac54c3fc8256 exited with status 1

I am behind the corporate proxy and configured /etc/default/docker with proxy details. I am using 'Eris CLI Version: 0.12.0 (002c63e)'. I have given all (777) permission to /home dir. Not sure if this is a problem with directory creation. Could somebody help on this ?

thank you for reporting.  This looks like an issue with the tooling (github.com/eris-ltd/eris-cli) and not the actual blockchain, but should be simple enough to resolve here.  Can you report back what the results are if you run
eris chains make tester --chain-type=simplechain
eris chains start tester
eris ls

thanks Ben

Hi @benjaminbollen ,
I am still getting the same error.

Can you please let me know if there is a workaround for this?

Can you try running eris clean -ya before (WARNING, will wipe your .eris folder).  Perhaps there are lingering docker containers from an earlier version of eris.

Hi @benjaminbollen , Thanks for your reply. I cleaned .eris and uninstalled eris and docker and installed them again. But I am still getting the same error. One thing i noticed while running the 'eris chains start' command is that, eris keys image is picking the tag 'latest' instead of '0.12.0'. I am running this without docker-machine.

I ran the 'chains start' command twice and it has created 2 'eris data' containers. But they are not in running status. Can you please help in resolving this issue?

@sathishmanoharan when creating a chain for the first time, the --init-dir flag is required on eris chains start. After that, you can start | stop your chain without the flag. However, if you remove both the chain and its data container then you'll need the --init-dir flag again.

Hi, @zramsay, I tried init-dir flag. But I am getting the same error. I was able to start the chain in windows 10 without the init-dir flag. Can you please look into this issue?

Hi @sathishmanoharan,
Im sorry to find this is not resolved for you; can we outline the reproducible environment ?  You are working on ubuntu 14.04 (linux) (and the problem is not occuring on Windows 10 - referenced above), correct?
Can you try either an absolute path; or otherwise start the relative path from ./eris/chains/, ie just try
eris chains make tester2 --chain-type=simplechain
eris chains start tester2 --init-dir=tester2
eris ls
eris chains logs -f tester2

Hope that helps
Ben

Hi @benjaminbollen , Thanks for your reply. I was able to resolve this error today. I had to run the 'eris data rm' command to remove all the data containers. (there were few 'keys' and 'chain-name' containers). Then I started the chain using 'eris chains start' and it started fine. I haven't deployed the contracts to the chains yet. I will try that tomorrow. Hopefully it should be fine.
I followed the steps in the tutorial. Are you able to infer what is going wrong with this information?

Glad you got this hurdle cleared.  I tried reproducing but without success.  It is possible that old containers failed to get cleared and clogged the creation of the new chain.  We have the issue logged for future reference to get to reproducibility.
You may additionally get help from our community on slack.monax.io if you encounter any problems with the contract tutorials.


entrypoint.command has inconsistent documentation

I noticed the example uses:
entrypoint:
  command: ...

However, here is talks about the child element cmd.  I suspect the latter should just be command.

Yeah, I think that's just a mistake on my part from looking at the code.


ARROW-5: Fix error when run maven install

Currently when we run maven install,  we'll get:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.drill.tools:drill-fmpp-maven-plugin:1.4.0:generate (generate-fmpp) on project vector: Execution generate-fmpp of goal org.apache.drill.tools:drill-fmpp-maven-plugin:1.4.0:generate failed: Plugin org.apache.drill.tools:drill-fmpp-maven-plugin:1.4.0 or one of its dependencies could not be resolved: Failure to find org.freemarker:freemarker:jar:2.3.24-SNAPSHOT in http://repository.apache.org/snapshots was cached in the local repository, resolution will not be reattempted until the update interval of apache.snapshots has elapsed or updates are forced
Reason is: the freemaker.version that takes effect is the one defined by drill-fmpp-maven-plugin 's dependency drill-root(which is 2.3.24-SNAPSHOT), rather than the one defined by arrow-java-root(which is 2.3.21).
This PR adds explicit dependencies on fmpp and frermaker for drill-fmpp-maven-plugin, making the fmpp.version and freemaker.version defined by arrow-java-root to take effect.

hi @jacques-n @wesm , would you mind taking a look at this when you have time? Thanks.

It looks like drill-fmpp-maven-plugin 1.5 is available now.  Can you look and see if updating to that plugin fixes the issue?
https://repository.apache.org/#nexus-search;gav~~drill-fmpp-maven-plugin~1.5.0~~

Sure. Updating to 1.5.0 does make mvn install complete without errors, since freemaker.verion is now specified as 2.3.1 in drill-root-1.5.0.pom.
However, fmpp.version/freemaker.version specified in arrow-java-root still don't take effect by this simple updating. Seems like we should either make changes in this PR's first commit to make fmpp.version/freemaker.version take effect, or drop the fmpp.version/freemaker.version  in arrow-java-root because it would be some kind of misleading.
@jacques-n thoughts please?

Let's just remove the fmpp/freemarker version numbers.

Sure. Issued two more commits, and updated this PR's summary as well. Mind taking another look please?

Looks good. Will merge shortly. Thanks for the PR.

Thanks for reviewing this!

Thanks for fixing :+1:


Increasing rabbitmq nofiles limit to 65k

Bugfix for #558

:+1: rebase needed

Thanks, rebased

:+1:


install sphinx test dependencies in all CI testing jobs

should fix CI failures appearing in e.g. #1770

hmm, all the pytest jobs pass now, but the build-site jobs all fail with:
Theme error:
setting ablog.inject_templates_after_theme occurs in none of the searched theme configs

not sure if it's related or coincidence, will look tommorow if possible unless someone else has time to look first.

Right so for now we might want to pin our Sphinx version until there is a fix in Ablog for >= 7.3

🤔 So the last two changes fix our CI for docs and the Read the docs build but, of course, break when we try and install the "dev" Sphinx version from GitHub https://github.com/pydata/pydata-sphinx-theme/actions/runs/8741568491/job/23987894819?pr=1772#step:5:76

🤔 So the last two changes fix our CI for docs and the Read the docs build but, of course, break when we try and install the "dev" Sphinx version from GitHub https://github.com/pydata/pydata-sphinx-theme/actions/runs/8741568491/job/23987894819?pr=1772#step:5:76

One way to get the CI to pass is to revert the pin in pyproject.toml, and add an extra step in the doc build workflow to downgrade sphinx after the initial package install is done.  But: we do kinda need the pin in pyproject.toml to avoid breaking user sites that use ablog so I guess we either:

let the "sphinx-dev" job fail for a while
change it to not actually test sphinx dev, and hopefully remember to change it back later

Sorry about ablog, I am in the process of patching it and doing a release when/if my CI passes.

Ok I can try with the upcoming tag in Ablog.
Actually testing against dev helps identify breaking changes against Sphinx. So it served it's purpose even if it gave us a bit of a headache.
As I am working on the CI improvements I see a path here:

Pin the Sphinx version we use in pyproject.toml - this way we ensure we do not break things for users (might need to do this for other dependencies too to avoid compatibility issues moving forward)
Separately in CI - I can add a workflow that runs every so often to try and bump our dependencies and run tests and build against those bumped versions - if this works then we can safely upgrade our dependencies avoiding breaking changes for our users

WDYT @drammock

Yeah a periodic bump test sounds good. Thanks @trallard

But so we then keep in the failing dev test? Or hope/ wait until it works with new ablog version

I am logging off but I can try with the newest Ablog or try a quick fix to uninstall/install the Dev sphinx version while the bigger CI overhaul gets finished

OK everything is passing except CodeCov upload now!  @trallard @Carreau ready for review/merge.


Buffer for sending the transactions

We will add the buffer for the sending of the transactions.
This model must be inside of the each account (means in newly created CommonAccount) and then also in the layer over the accounts same as in the VEDrivers AccountHandlers and WalletHandlers.
This will merge all sending transaction (incl. NFTs) under one commands. This will simplify the calls from the UI. We should do this beofre the refactoring of the Blazor UI.

Here is the sketch of the buffer usecase from top view.
Sketch of the buffer
We talked with @darosh about create some example how to for example this sketch write/draw with the Mermaid

Mermaid in GH is on GH roadmap (added 7 days ago)
https://github.com/github/roadmap/issues/372
Alternative workaround using GH Actions
https://nielsvaneck.com/post/2021-01-31-render-md-mermaid-a-github-action/

On Tue, Jan 18, 2022 at 10:48 PM fyziktom @.***> wrote:

Here is the sketch of the buffer usecase from top view.
Sketch of the buffer
https://ipfs.infura.io/ipfs/QmSJFw1pTF9JYVS6egbfcTHLmghXaU1Dik5HSuDnPvWARb
We talked with @darosh https://github.com/darosh about create some
example how to for example this sketch write/draw with the Mermaid
https://mermaid-js.github.io/mermaid/#/
—
Reply to this email directly, view it on GitHub
https://github.com/fyziktom/VirtualEconomyFramework/issues/34#issuecomment-1015864335,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACIS2F7Z74DZZ5VKE3LNUTUWXNZDANCNFSM5L2H3A5A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

thanks :)
I will explore it. Now I am using the rendering addon to firefox. Link and example in this issuse: https://github.com/fyziktom/VirtualEconomyFramework/issues/44


Function to update a shopping cart in bulk

As a System Administrator
I need a quick way to edit the entire contents of a certain shopping cart
So that I can easily control shopping carts when I want to
Details and Assumptions

per prof: Updating with PUT /shopcarts/{customer_id} can also accept a list of items that replaces the current list.  Again, a useful call for bulk updates.
Input should be a list of attributes like {item_id, name, price, quantity}

Acceptance Criteria
Given valid customer_id
And shopcarts {customer_id} currently has some items in it
When we call PUT /shopcarts/{customer_id} with a list of attributes like {item_id, name, price, quantity}
Then service returns code 200 OK
And service returns message a list of attributes like {item_id, name, price, quantity} for the items now in the shopcart {customer_id}

@yjjw you assigned yourself this despite there being 3 others stories before this in the Sprint backlog. Could you please unassigned this and assign to yourself the top one in the sprint backlog, per Scrum? Thank you


Application menu shows beta tag icon (safari)

Please do not disclose security vulnerabilities as issues. See our security policy for responsible disclosures.

Describe the bug
The top bar is showing part of the beta tag when text is truncated in Safari
Not a problem i Chrome
To reproduce

Naviget to https://vms.mysystem.axis.com in the Safari browser

Result: The Beta icon is truncated in the application menu
Screenshots

Environment
https://vms.mysystem.axis.com in the Safari browser

we no longer show beta icon, so i close this


Vulkan 1.0.2 version unsupported?

Hello. GLFW does not support AMD Vulkan 1.0.2 version?
Also, I think vulkan-1.dll not detected in Windows.
Used: Visual Studio 2015.

GLFW should work fine with Vulkan 1.0.2. The relevant differences with 1.0.3 are extremely minor.

Does GLFW report any error?

How can I see error with Vulkan support?
I see that surface can't be created.

Aha! You forget in documentation of Vulkan add:
        if (!glfwInit()) {
		return 0;
	}


Dpl 766 custom alert message

Traction message refactoring to allow html message display using tailwind styling

enable_custom_alert feature flag to flip between bootstrap( blert) and html alert message
compatibility with all existing bootstrap features supported

Looks good, very seamless from the old alert. One small optional comment. Also Id be inclined to make the text slightly darker / more distinct from the background. But I have colour seeing issues anyway so probably worth a second opinion 😆

Thank you , Ben. I will try with a darker version, we are inclusive :)

Looks good, very seamless from the old alert. One small optional comment. Also Id be inclined to make the text slightly darker / more distinct from the background. But I have colour seeing issues anyway so probably worth a second opinion 😆
Done. Hope that's better now


Displaying error message when the password doesn't meet the requirements at the registration page

The error message displayed on the registration page when the password doesn't meet the requirements was updated.

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


Fix email selector for K000383

Final fix for K000383, probably should've tested it first before sending the first PR but should be working now. Sorry for the mass of PRs.

No prob, thanks for the fixes!


TESTS.md: make image links relative

See #313

@morrme Thanks for doing this work.  However, I think the relative pattern that you want in this case is not ./some-file-name.png but rather /some-file-name.png (no dot.)
This is because the browser needs to resolve the file relative to the site root, where the dot syntax would be for resolving in a filesystem.
I don't have the exercism.io webapp installed locally, but I'm pretty confident you will need to make this change.  Let me know if you think otherwise.  I should be able to find some time to install the app and try your changes locally.

When I delete the dot, the image does not render (the left is the current code, the broken link on the right is the result of the change):

When I add the dot, it returns.

OK, I think I should try to stand up the exercism UI app locally and see what happens.  Let me try this and I'll report my findings.

OK, I'm having a bear of a time setting the exercism.io UI app up locally.  But, I found a solution that should work for both the local filesystem and the web, EG:
img/SolutionExplorer.png

No dot, no slash.  I believe this will work bc of the structure.  Shall we try that?

Woohoo!  Thanks @morrme ! 🥇

Thanks @morrme for this contribution!!


[QUESTION] Why do you naming decorator @Controller for path ?

hello, this project is so impressive to me and I think this project can be help improved productivity for Typescript. Cheer your project.
I have a question about some terminologies like @Controller.
Why did not use @Path for api mapping ? is there any something reasons ?

That is maybe originated from Controller of 'MVC pattern'.
Many people use this word as 'API Layer' but Controller of MVC means the layer which has business codes like Service Layer.
In my opinion, Spring Framework makes worse this confusions when java was major Programming Language (previous Oracle-Google legal war). That bad influence until nowadays although .
It is reason maybe avoiding confusions why JAX-RS specified @Path as API Mapping annotations (decroator in Typescript).
I hope to know you have any something reasons.
If there is no some important reasons, I think It is maybe good following JAX-RS terminologies

Hello @Overfacto,
I think, I won't have a satisfying answer for your question.
Many framework use this terminology to declare a class that is responsible to mapping client request to a service (Nest.js, node-decorators, routing-controllers, etc...). It's really common, and  I guess you already ask this question to the authors of theses frameworks also :)
But I understand this word can be confusing (but your are the first it ask about that).
Today, Ts.ED use the this term to:

declare a path and a class which will be mapped with Express routing,
declare nested controller,
register the class in the DI as controller (it's a bit different from a pure provider in a Ts.ED sense),
handle client request,
return a response.

So, based on theses given sentences, Controller word is not bad, I agree not the better, but better than @Path which is just responsible to declare a path and cannot be used to summarize the different actions accomplished by the Ts.ED Controller.
And right now, I agree, is really easy to use this work to identify the concept when I need explain something in the documentation. But, I'm aware for an alternative which will summarizes correctly this feature.
See you :)

@Romakita  Ok, I got it. I was surfing about nestjs, and then found they use it too.
I can accept that terminology because of popularity..
I cheer you.


Implement "sgit status" sub-command

There is a need to have a command that will print out a specific status command that simulates the same kind of features that "git status" do but limited a bit.
Procedure that should be done

git fetch on all repos to update the current remote that is tracked
Go through each repo and check if there is new commits on the remote vs where the local repo is. Check if the repo is dirty. Print these texts on stdout.

This was implemented in #27. We merged the old list and made a new status command to mimic git commands much better


LSP Disabled inside comments

Hi,
Currently LSP features are disabled inside comments.
Is there a config to enable lsp hover/doc/completion inside comments ?
For example in cpp files with clangd :
#ifdef DEBUG
std::cout << "DEBUG" << std::endl;
#endif

Using hover on cout will not print doc. All LSP features are disabled.

I don't think neovim disables the LSP on comments, is more likely your LSP doesn't return anything meaningful when the line is part of a comment. You will have to visit the documentation of the LSP you are using to know if is possible to enable its features in comments.

Thanks.
I see nothing on clangd documention.
I can't find on neovim docs something related to LSP being disabled inside comments.
I asked on clangd Discord, i'll update as soon as I get a response and post it here. Might be helpfull for someone in need.


version_conflict_engine_exception handling

We are piloting a kakfa CDC pipeline that sinks data to an opensearch cluster.  With key.ignore=false, the connector uses the kafka offset as the _version in OS.
A change stream might look like this,
Offset 0 - { "id": 1, "field": "a" }
Offset 1 - { "id": 1, "field": "b" }
Offset 2 - { "id": 1, "field": "c" }
Offset 3 - { "id": 1, "field": "d" }

We expect opensearch to reach a steady state of { "id": 1, "field": "d", "_version": 3 }, and under normal operation it does.    If a later offset has already been written to OS, OS will respond with version_conflict_engine_exception, and the connector will never succeed.
For example, if offsets 0-3 were written to OS but not committed to kafka, upon restart the connector will throw:
OpenSearch exception [type=version_conflict_engine_exception, reason=[1]: version conflict, current version [3] is higher or equal to the one provided [0]]]

There is already a config for behavior.on.malformed.documents.  One potential path is to add a config behavior.on.version.conflict with the same options for fail, ignore, warn.  In our case we could ignore or warn on the conflict, and let the connector recover.
My main concern with using such a feature, is it could be masking more serious version conflict issues that cause data corruption.
Has anyone run into similar issues, and if so, how did you handle them?

Hey everyone,
I think behaviour.on.version.conflict ignore should be safe with key.ignore false. Since the offset is used for the version they should arrive in relative order and it should be safe to ignore that error for smaller offsets/versions then what has arrived in opensearch. In fact doing so is the only way i can see to guarantee idempotent behaviour in this case.
This applies only for the case where the connector uses the offset as version though. In fact im thinking we should use that as default behaviour for key.ignore=false. Wdyt?

100% Completely agree. I can't speak to the key.ignore=true case, but this would fix our issues. Agree on it being the default behavior as well, though adding behaviour.on.version.conflict as an option in any case is still nice.

For key.ignore=false I think ignore or warn make sense as a default behavior.  At least, I can't think of any cases where we'd want to fail.
I'd advocate for setting warn as a default instead of ignore.  Reason being you should only see conflicts if something has failed.  Even if the system recovers by overwriting the conflicts, the warning is a clue that something didn't work quite right.
Changing the default solves this use case, a configurable option might be nice if other folks want the flexibility.  Either for a key.ignore=true use case or if they'd prefer the hard failure and manual recovery.

Yeah that would work for us!

And just to be clear, behaviour.on.version.conflict does not exist yet correct? It is behavior that @stebl is suggesting be added.

That is correct

Hello everyone,
Any plans to release this fix?

@andrew00x release is here [1], the connector moves to OpenSearch 2.0.1, if you need 1.3.x support, we could release the suitable 1.x version as well.
[1] https://github.com/aiven/opensearch-connector-for-apache-kafka/releases/tag/v2.0.1

@reta Would this work with OS 1.3?
AWS managed OS still only supports up to 1.3. For this reason, I think you should release this fix for 1.3 as well.

@kandji-alex please check the 1.x branch [1], thank you
[1] https://github.com/aiven/opensearch-connector-for-apache-kafka/releases/tag/v1.1.0


🎛 Migrate updateFooterSaveWarning to a Stimulus Controller w-messages

ℹ Part of the Stimulus  🎛 RFC 78

Is your proposal related to a problem?
In client/src/entrypoints/admin/page-editor.js there is an ad-hoc JavaScript implementation attached to the HTML wagtail/admin/templates/wagtailadmin/pages/_unsaved_changes_warning.html to show a warning if there are unsaved changes in the UI.
It would be good to have this code implemented as a Stimulus controller, so that there is no longer this window.updateFooterSaveWarning approach to make it more flexible and more testable.
Describe the solution you'd like
Given the HTML in wagtail/admin/templates/wagtailadmin/pages/_unsaved_changes_warning.html...
{% load wagtailadmin_tags i18n %}

w-unsaved#update">

            {% blocktrans trimmed %}You have unsaved edits{% endblocktrans %}
            {% blocktrans trimmed %}You have unsaved comments{% endblocktrans %}
            {% blocktrans trimmed %}You have unsaved edits and comments{% endblocktrans %}

{% trans 'Save the page before leaving' %}

The existing behaviour should be preserved 100% compared to client/src/entrypoints/admin/page-editor.js.
As for the window.updateFooterSaveWarning, this should be changed to be a document dispatched event, so that the JS snippet in wagtail/admin/templates/wagtailadmin/pages/create.html (and edit.html) changes to;
            enableDirtyFormCheck(
                '#page-edit-form',
                {
                    confirmationMessage: '{{ confirmation_message|escapejs }}',

                    {% if has_unsaved_changes %}
                        alwaysDirty: true,
                    {% endif %}
                    commentApp: window.comments.commentApp,
                    callback: (formDirty = false, commentsDirty = false) => document.dispatchEvent('w-unsaved:update', new CustomEvent({ detail { commentsDirty, formDirty }})),
                }
            );

Controller specification

class hidden - replaces the hard-coding of footer__container--hidden in the js - see https://stimulus.hotwired.dev/reference/css-classes
target edits - label target element for edits being dirty
target comments - label target element for comments being dirty
target all - the label element if all items are flagged
method update (maybe a better name) this essentially just does the update as per the current JS implementation
Values - we could store the two dirty checks as values if we want, we may want to use a data attribute to store 'active' or 'visible' though.

Describe alternatives you've considered

Leave as is.

Additional context

This is part of a larger goal to migrate to Stimulus.
Longer term, this will set us up to tackle enableDirtyFormCheck probably as part of the same controller, from there we can make it easier to tackle #8453
Not a good first issue but good for anyone semi-confident with Jest testing, JavaScript and who has taken the time to read the Stimulus docs in full.
This is also part of a larger goal to avoid wagtail/admin/templates/wagtailadmin/pages/_editor_js.html being used everywhere and minimise global usage in JS See #2936
Might be able to take a look at fixing #7188 in this issue or at least getting closer
See https://github.com/wagtail/wagtail/tree/main/client/src/controllers for existing controller implementations

I'm researching the thing and have started working for the issue.

@suyash5053 go for it, you will need to read up on Stimulus and also look at how we have implemented other controllers in the src/controllers folder.
Start small and work your way towards the goal, please ask questions on this issue if you get stuck. Even if that means putting code snippets with questions in the issue.
Importantly, make sure you understand how the existing code is used in full so you can reproduce the behaviour before and after. Hence why we want to add unit tests - so we can have more confidence on functionality in the future.

Hey @lb- , Can you tell me where can I find other stimulus controllers code?

Hey @lb- , Can you tell me where can I find other stimulus controllers code?

https://github.com/wagtail/wagtail/tree/main/client/src/controllers

Can I create a new Controller for this?

@Hussain0520 you will need to dig into some docs and code to work that out, here's some recommendations for reading.

Stimulus documentation (do read the whole thing if you haven't yet) https://stimulus.hotwired.dev/
Wagtail's Stimulus controller creation guide - https://docs.wagtail.org/en/latest/contributing/ui_guidelines.html#stimulus
Watch the webinar about Stimulus in Wagtail - Introduction to Stimulus in Wagtail for contributors (video)
Read through the changes in this PR for a bit of a look at what's involved https://github.com/wagtail/wagtail/pull/10062/files or https://github.com/wagtail/wagtail/pull/10182/files

Hope that helps.

Is there any other option apart from creating a new Controller? Like which implemented controller i can use for this implementation.

@Hussain0520  ok did  bit of a mock idea, I think this could work. Please note I have NOT tested, this, if you are keen it will be up to you get this functional in a PR.
The HTML would look similar to w-messages usage in wagtail/admin/templates/wagtailadmin/base.html
{% load wagtailadmin_tags i18n %}

w-messages#add w-unsaved:hide@document->w-messages#clear"
    data-w-messages-clear-delay-value="1050"
    data-w-messages-clear-param="true"
    data-w-messages-show-class="footer__container--visible"
    >

    {% trans 'Save the page before leaving' as generic_save_page_message %}
    <template data-w-messages-target="template" data-type="edits">

            {% blocktrans trimmed %}You have unsaved edits{% endblocktrans %}

{{ generic_save_page_message }}

    </template>
    <template data-w-messages-target="template" data-type="comments">

            {% blocktrans trimmed %}You have unsaved comments{% endblocktrans %}

{{ generic_save_page_message }}

    </template>
    <template data-w-messages-target="template" data-type="all">

            {% blocktrans trimmed %}You have unsaved edits and comments{% endblocktrans %}

{{ generic_save_page_message }}

    </template>

Observe we have three templates; for the three variants of message (aka warning) to show), we also have where to put the content (in the data-w-messages-target="container"). Additionally we have a global event listener added data-action="w-unsaved:update@document->w-messages#add" so that other code can 'trigger' the message.
The styling would probably need to be revised to allow for a 'showing' class instead of a 'hiding' class.
As for the controller  in client/src/controllers/MessagesController.ts, it would need some added functionality.

add method will need to be able to pull out whether it should clear from the event detail AND event params (read up on Stimulus action params).

const { clear = event.params.clear || false, text = '', type } = event?.detail || {}; (this should get you close)
Additionally, will need to handle the delayed clearing of things.

Likely need a new clearDelay value that defaults to 0 (backwards compatibility), then this would be changed in the value.
Need to ensure that the hidden attribute on the container target can be conditionally added/removed based on content changes.
The clear method would need some solid work, probably needs to return a promise so that new additions can be done after clearing is completed. It would also need to ensure the right classes are removed (see show class).

Finally, the callback would need to now dispatch an event, here is a rough idea of what this could look like.
                    callback: function(formDirty, commentsDirty) {
                        const anyDirty = formDirty || commentsDirty;
                        const allDirty = formDirty && commentsDirty;
                        // one of edits, comments, all
                        const type = allDirty ? 'all': 'comments' ; // etc - need to work this out.
                        const detail = { type };
                        document.dispatchEvent(new CustomEvent( anyDirty ? 'w-unsaved:show': 'w-unsaved:hide',  { detail } ));
                    }

An alternative approach is to put a replace of the current global updateFooterSaveWarning in the messages controller afterLoad method. This way we can just replace this completely correctly later when enableDirtyFormCheck is done.

@lb- I'll look into it and get back to you

Hey @lb- , so I went through the documentation and the existing controllers and this is what I was able to make. Tell me if its aligned to the issue and that my understanding of the problem is proper.
`import { Controller } from '@hotwired/stimulus';
export class DempController extends Controller {
static targets = ["edits", "comments", "all"];
static classes = ["hidden"];
initialize() {
this.hiddenClass = this.hasHiddenClass ? this.hiddenClass : "hidden";
this.update = this.update.bind(this);
this.enableDirtyFormCheck();
}
enableDirtyFormCheck() {
const { confirmation_message, has_unsaved_changes } = this.data;
enableDirtyFormCheck("#page-edit-form", {
confirmationMessage: confirmation_message,
alwaysDirty: has_unsaved_changes,
commentApp: window.comments.commentApp,
callback: (formDirty = false, commentsDirty = false) => {
const detail = { commentsDirty, formDirty };
this.update(new CustomEvent("w-unsaved:update", { detail }));
},
});
}
update(event) {
const { commentsDirty, formDirty } = event.detail;
if (commentsDirty && formDirty) {
this.showAll();
} else if (commentsDirty) {
this.showComments();
} else if (formDirty) {
this.showEdits();
} else {
this.hideAll();
}
}
showEdits() {
this.showTarget("edits");
}
showComments() {
this.showTarget("comments");
}
showAll() {
this.showTarget("all");
}
hideAll() {
this.hideTarget("edits");
this.hideTarget("comments");
this.hideTarget("all");
}
showTarget(target) {
this.findTarget(target).classList.remove(this.hiddenClass);
}
hideTarget(target) {
this.findTarget(target).classList.add(this.hiddenClass);
}
}`

@Hussain0520 - sorry but that controller code is not really close to the goal.
Please have another read of my comment above. As per your idea of simply reusing an existing controller, I think this could work with the MessageController.
I recommend taking a look at the message controller code and usage, and at the example HTML above. Give it another go and see if it makes sense.
Additionally, this code should no call enableDirtyFormCheck - that will be a different controller in the future.
Thanks for giving this a go and getting some feedback, hope this direction helps you out a bit.

Okay @lb- thanks for the feedback, I'll take a look at it again and try to implement my code in existing messagecontroller of the demo  HTML code you provided yesterday. I might require some time but I'll get back to you asap.

Hey @lb- , here is my new code can you check and tell me the corrections and if there is any progress.
import { Controller } from "stimulus";

export default class extends Controller {
  static targets = ["container", "template"];
  static values = { clearDelay: Number };

  connect() {
    document.addEventListener(
      "w-unsaved:update",
      this.add.bind(this),
    );
  }

  add(event) {
    const { clear = event.params.clear || false, text = '', type } = event?.detail || {};
    const template = this.templateTarget.querySelector(`[data-type="${type}"]`);
    const message = template.content.cloneNode(true);
    message.querySelector("p").textContent = text;
    this.containerTarget.appendChild(message);

    if (clear) {
      setTimeout(() => {
        this.clear().then(() => {
          this.add(event);
        });
      }, this.clearDelayValue);
    }
  }

  clear() {
    return new Promise((resolve) => {
      this.containerTarget.classList.remove("footer__container--visible");
      setTimeout(() => {
        this.containerTarget.innerHTML = "";
        this.containerTarget.hidden = true;
        resolve();
      }, this.clearDelayValue);
    });
  }

  show() {
    this.containerTarget.hidden = false;
    this.containerTarget.classList.add("footer__container--visible");
  }

  hide() {
    this.containerTarget.classList.remove("footer__container--visible");
    this.containerTarget.hidden = true;
  }

  handleEvent(event) {
    const { formDirty, commentsDirty } = event.detail;
    const anyDirty = formDirty || commentsDirty;
    const allDirty = formDirty && commentsDirty;
    const type = allDirty ? "all" : commentsDirty ? "comments" : "edits";
    const detail = { type };
    const eventName = anyDirty ? "w-unsaved:show" : "w-unsaved:hide";
    document.dispatchEvent(new CustomEvent(eventName, { detail }));
  }
}

@Hussain0520 great stuff. This is getting closer, a few points of note.

You should not need to add he event listener yourself on connect, this is something that stimulus can do with data-action attributes (in the html)
HandleEvent method - this should not be a an instance method but rather something that gets created by the afterLoad static method. See here for a similar approach https://github.com/wagtail/wagtail/blob/main/client/src/controllers/ProgressController.ts#L53 or see my other PR code that is similar also in preparing a global window.foo function https://github.com/lb-/wagtail/blob/feature/10100-stimulus-taggit/client/src/controllers/TagController.ts#L49
A reminder that you won't be creating a new controller but rather enhancing the existing MessagesController https://github.com/wagtail/wagtail/blob/main/client/src/controllers/MessagesController.ts

Next steps are probably to start seeing if you can get this controller modification working with the html changes also in your local Dev environment.

Are there any steps I need to follow for local dev env setup?

@Hussain0520
See section 5 here https://github.com/wagtail/wagtail/issues/10070
Or see specific docs for development set up here https://docs.wagtail.org/en/latest/contributing/developing.html
Please reach out on Slack if you need support #new-contributors - O that this issue can stay focused on the specific solution.

What's the slack channel name?

Hey @lb- does it code align with the changes that you mentioned after the previous version of the code?
`import { Controller } from '@hotwired/stimulus';
export default class extends Controller {
static targets = ["container", "template"];
static values = { clearDelay: Number };
static afterLoad() {
window.handleUnsavedEvent = (event) => {
const { formDirty, commentsDirty } = event.detail;
const anyDirty = formDirty || commentsDirty;
const allDirty = formDirty && commentsDirty;
const type = allDirty ? "all" : commentsDirty ? "comments" : "edits";
const detail = { type };
const eventName = anyDirty ? "w-unsaved:show" : "w-unsaved:hide";
document.dispatchEvent(new CustomEvent(eventName, { detail }));
};
}
add(event) {
const { clear = event.params.clear || false, text = '', type } = event?.detail || {};
const template = this.templateTarget.querySelector([data-type="${type}"]);
const message = template.content.cloneNode(true);
message.querySelector("p").textContent = text;
this.containerTarget.appendChild(message);
if (clear) {
  setTimeout(() => {
    this.clear().then(() => {
      this.add(event);
    });
  }, this.clearDelayValue);
}

}
clear() {
return new Promise((resolve) => {
this.containerTarget.classList.remove("footer__container--visible");
setTimeout(() => {
this.containerTarget.innerHTML = "";
this.containerTarget.hidden = true;
resolve();
}, this.clearDelayValue);
});
}
show() {
this.containerTarget.hidden = false;
this.containerTarget.classList.add("footer__container--visible");
}
hide() {
this.containerTarget.classList.remove("footer__container--visible");
this.containerTarget.hidden = true;
}
}
`

PR up for full implementation of this https://github.com/wagtail/wagtail/pull/10835


make: *** No rule to make target 'install'.  Stop.

Hi
hi team.when trying to install libpostal,it failed and told me "make: *** No rule to make target 'install'.  Stop."
I am installing in dockefile
RUN git clone https://github.com/openvenues/libpostal &&
cd libpostal &&
make distclean &&
/bin/bash bootstrap.sh &&
./configure --disable-data-download --datadir=/data/ &&
make -j4 &
make install &&
libpostal_data download all /data/ &&
ldconfig

You're missing a second ampersand

If you want to end execution on the first failure, it's cleaner to use set -e in bash at the top of your script and get rid off all the &&

Hi, I'm also getting an identical message, installing via terminal with a MacOSX M1 machine when I try and execute "make distclean."

Hello @missinglink , I am using this for a long time. Recently I am upgrading all my stuff to Ubuntu 22.04. I am also using libpostal within a docker so an automated script is needed. When I got all the errors then I started R&D using a fresh Ubuntu Image. I got few answers here also
R&D 1: using make j4
OS: Ubuntu 22.04
Script:
mkdir /opt/libpostal_data
git clone https://github.com/openvenues/libpostal.git
cd libpostal
make distclean
./configure --datadir=/opt/libpostal_data
make -j4
make install

Result:
make distclean returning

make: *** No rule to make target 'install'. Stop.
make j4 returning

If I use make j4 again it is still returning the same error.

R&D 1: using make j2
OS: Ubuntu 22.04
Script:
mkdir /opt/libpostal_data
git clone https://github.com/openvenues/libpostal.git
cd libpostal
make distclean
./configure --datadir=/opt/libpostal_data
make -j2
make install

Result:
make distclean returning

make: *** No rule to make target 'install'. Stop.
make j2 returning

If I run make j2 after the first error then the installation is successful.
R&D 1: using make j1
make j1 also producing the same result as make j2
Please if you have time pay attention to this matter.

see https://github.com/openvenues/libpostal/pull/605


app:compileflutterBuildDebugArm FAILED

I'm not sure what happened, but I've been unable to get the app to run for the last couple of days. It builds and runs fine for ios. I've been trying to fix this for 2 days and I'm worn out. I really need some help.
Steps to Reproduce
Trying to run an existing app on Android using flutter version v1.7.8+hotfix.3. I'e tried with v1.8.1, which had the same result
Log files attached.
flutter_analyze.txt
flutter_doctor_v.txt
flutter_run_verbose.txt
gradlew_assembleDebug_info.txt
pubspec_yaml.txt

Run flutter app

@pyetti does this happen even after a clean build (after flutter clean?)?

Hi Jonah,
I've tried flutter clean many times. I've also tried changing the version of gradle, changing versions of the packages in using, and all kinds of random changed in build.gradle.

and all kinds of random changed in build.gradle.

If you've made arbitrary changes to your build.gradle we're likely going to need an example project with this problem so it can be debugged.

I attached the build.gradle and gradle.properties files I'm using. The changes have only been to versions of plugins and compile/minimum sdk.
app_build_gradle.txt
build_gradle.txt
gradle_props.txt
gradle_wrapper_props.txt
gradlew_assembleDebug_info.txt

I created an app and pushed to https://github.com/pyetti/please_work. It has the same setup with the exception of apply plugin: 'com.google.gms.google-services' being commented out in app/build.gradle. I would need to push google-services.json for that to work

I uploaded a gradle scan to https://scans.gradle.com/s/qr7g6qos5je2w

I fixed it. This is pretty embarrassing. At some point I deleted the the two dots in rootProject.buildDir = '../build' in the project/build.gradle file. A weekend of pain over two dots. A day per dot. That's a bummer.
Maybe someone can work on that error messaging. IOException maybe?


Add logo to README

It would be nice if the logo is added to the README and therefore also the documentation landing page :)

Hello, I believe I can help you with this issue? Can you assign me to this?


Cloudant Egress Does not Work

using...
istio 0.2.12
kubectl 1.8.x
minikube 0.23.0
I've applied the EgressRule to allow access to *.cloudant.com from the mesh. I can curl to HTTP specifying port 443 inside the pod shell.
curl http://70d5a96b-b80f-4e87-a0bf-fc22053d6a2d-bluemix:55e07c44dbe7d359ddc1ecc36599ce0b586b6db3d3820bd2dafde31499076928@70d5a96b-b80f-4e87-a0bf-fc22053d6a2d-bluemix.cloudant.com:443
I get the below, so egress rule looks like it worked.
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"IBM Cloudant","version":"6365","variant":"paas"},"features":["geo","scheduler"]}
However, in Node.JS app when inserting record into Cloudant database that I have initialized with kube secrets like the following...
var cloudant = Cloudant({
"username": process.env.CLOUDANT_USERNAME,
"password": process.env.CLOUDANT_PASSWORD,
"host": process.env.CLOUDANT_HOST,
"port": process.env.CLOUDANT_PORT,
"url": process.env.CLOUDANT_URL
});
I am getting the following error...
Error: write EPROTO<PHONE_NUMBER>80704:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:797
I have tried every combo for the url when initializing Cloudant with HTTPS and HTTP, and specifying the 443 port and not. Nothing seems to work.

Looks like wildcards for EgressRules requires quotes (i.e. "*.cloudant.com") according to YAML LINT. Should probably update the documentation to indicate such.

I'm getting the following console.log when initializing cloudant like above when I use the http:// preface in the url. Looks like this is happening before the request gets to the envoy. As a result, envoy is sending as https:// url, which does not seem to work.
WARNING: You are sending your password as plaintext over the HTTP; switching to HTTPS

@vadimeisenbergibm ^^^

@brentcty as you noted, the client library switches to https ( TLS origination on the client), which is not yet supported by Istio egress rules. Before this support is added in Istio, you can call Cloudant directly - see https://istio.io/docs/tasks/traffic-management/egress.html#calling-external-services-directly .

Thank you. I would hate to lose out on the istio auditing and tracing. If I am able to configure Cloudant client libs to use an HTTP server, what address would I give it? The address of the egress service?  with port 80?

@brentcty note that egress service does not function as HTTP Proxy. It intercepts tcp traffic by iptables. So you cannot use it a HTTP proxy. The only solution I see currently is calling Cloudant directly - https://istio.io/docs/tasks/traffic-management/egress.html#calling-external-services-directly.

Unfortunately, direct is not working either. I am running in minikube and issue the following command
kubectl apply -f <(istioctl kube-inject -f install/app.yml --includeIPRanges=<IP_ADDRESS>/24)
I go into the app shell, and...
curl http://httpbin.org/headers
and I get nothing. I am using auto initializer if that matters.

@brentcty I do not know how kube-inject works with istio initializer. @ayj - any comment on this?
I would remove initializer and try to perform kube-inject.

Both automatic (initializer) and manual (kube-inject) injection methods have no effect if the input resource already has a sidecar injected. This is determined by the presence of sidecar.istio.io/status annotation.
You can try disabling automatic injection for the specific workload and using kube-inject instead. Override the default automatic injection policy by adding the sidecar.istio.io/inject: "false" annotation to your deployment, e.g.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: myapp
  annotations:
    sidecar.istio.io/inject: "false"
spec:
  replicas: 1
  template:

See https://istio.io/docs/setup/kubernetes/sidecar-injection.html#overriding-automatic-injection for details.

Thanks, @ayj !


Only inline BinaryExpression if both operands completely known

This fixes #75, where one (or both) operands was either TRUTHY or FALSY but not a known value (i.e. arrays with unknown values, and object literals)

Thank you! Not totally sure what TRUTHY and FALSY are for (I inherited this codebase from a younger version of myself, he's not a very good programmer), they should probably be retired completely. Will look into that


Show cursor pointer when hovering on lightbox

Hey, I just made a Pull Request!
Change the cursor to be pointer when hovering over image on lightbox. See video below.
:heavy_check_mark: Checklist

[X] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[X] Screenshots attached (for UI changes)
[X] All your commits have a Signed-off-by line in the message. (more info)

https://github.com/backstage/backstage/assets/8207549/94148bd1-6d81-4d20-b939-6862c18e13fd

Nice thanks!


Bump dependencies to resolve CVES

Hi @jlloyd-widen ,
Looking at dependabot securities, the cryptography and certifi need to be bumped to resolve several CVES that have been raised on them.
It is probably best to bump the Meltano SDK at the same time.
Issue:
I tried a poetry update to bring in the latest dependencies with a view of raising a PR for this. It looks however that the dependencies update doesn't appear to finish in the poetry resolver. A poetry update command spins and never completes.
I don't know if you have had this issue before? Are you able to patch the pyproject.yaml and re-generated a poetry.lock file resolving these issues please?
I'm not sure if you have enable dependabot securities on your Repo but it is probably a good idea so there is visibility of vulnerabilities in the poetry.lock file.
Thank
Steve

Thank you @jlloyd-widen for quickly resolving this. Much appreciate 👏.


[Bug]: No error handling for invalid inputs or edge cases like negative numbers, in timer.

🐞 Bug Report
📋 Description
The timer  lacks clear feedback when starting, pausing, or resetting, leading to user confusion. Additionally, there's no visual cue or alert for invalid inputs like negative numbers.
⚙ Steps to Reproduce
Steps to reproduce the behavior:

Open the app.
2.Enter a negative number in the counter or timer.
3.Attempt to start or reset without feedback.

✔ Expected Behavior
A clear, visible indicator showing successful actions and handling of invalid input.
❌ Actual Behavior
No feedback is provided, leaving the user unaware of the app's state.
📷 Screenshots

@Paramveer Singh, please assign me this issue , under gssoc-extend

🐞 Bug Report
📋 Description
The timer lacks clear feedback when starting, pausing, or resetting, leading to user confusion. Additionally, there's no visual cue or alert for invalid inputs like negative numbers.
⚙ Steps to Reproduce
Steps to reproduce the behavior:

Open the app.
2.Enter a negative number in the counter or timer.
3.Attempt to start or reset without feedback.

✔ Expected Behavior
A clear, visible indicator showing successful actions and handling of invalid input.
❌ Actual Behavior
No feedback is provided, leaving the user unaware of the app's state.
📷 Screenshots

@paramveer Singh, please assign me this issue , under gssoc-extend

All the Best!!


Function 2 skeleton - Calculate weakness

Create a skeleton and documentation for the calculate_weaknesses function.

Completed with https://github.com/UBC-MDS/pokehelpyer/pull/13.


Resolve focus issues affecting multiple components

Let's focus on recording and implementing all component fixes here. Ideally focus outlines should appear when using tabbed navigation. We should do a full audit to find all issues before fixes are started.
Known Issues
Segment Item
<Segment.Item> - no visible focus (Zag's own example matches this)
See also: https://github.com/skeletonlabs/skeleton/issues/3027

Switch
<Switch> -  shows focus state on click in the active or inactive states

Slider
<Slider> - showing double focus and focus is square and doesn't match handle on iOS/Safari browsers
See also: https://github.com/skeletonlabs/skeleton/issues/2853

Ratings
<Ratings> - shows focus state on mouse click

Find More?
Report them in the comments below please. Gifs or screenshots appreciated!

Just noting the Segment Item is working as expected. The focus state is just less obvious due to the default classes. See my full explanation shared here:

https://github.com/skeletonlabs/skeleton/issues/3027#issuecomment-2536949450

Unfortunately I don't think we can improve the Ratings component. This operates by setting a tabindex based on focus. There appears to be no way to differentiate between tab focus and click focus to provide different styles.
Generally speaking, focus states are quite difficult to work with in Zag, especially when trying to manipulate these through utility classes. We should aim to provide this feedback to them at some point in the future.


Documentation for MatAccordion

Describe the bug
No doc for MatAccordion.
@lindespang Thanks for creating MatAccordion, and if it is possible, could you provide some example how to use it?

I did not create it (however I might have the last edit on it). Is there nothing on www.matblazor.com demo website on it? Something specific you want to know?

Sorry, I saw your name in the commit history. No doc on the site, I want to create one. I spend a half an hour to figure out what does it work, but I failed. That is the reason I created this ticket. I need an example to start with.

The MatAccordion usses MatExpansionPanel. The MatExpansionPanel has a documentation on the demo website.
Does this demo help you?

Uhh, thanks, yes. I didn't look around what we have.
I close this issue down. Sorry for being clumsy. :)


Add explanation about pylint to the docs

Fix for pylint errors has been made in PR #11, intended to be merged soon. (i.e. will merge this one although Travis fails.)


[Android] Fix xwalk_app_runtime_java.jar's location in the app template.

Fix a regression introduced by 7209eee ("[Android] Rewrite
generate_app_packaging_tool.py") which ended up putting
lib/xwalk_app_runtime_java.jar into the top-level app_template
directory. It must be under template/.
BUG=XWALK-6744

rs=me


Keep GitHub Actions up to date with GitHub's Dependabot

Fixes the warnings at the bottom right of
https://github.com/lwahonen/node-ffi-napi/actions/runs/6147907996

https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem

Generated:

#4


Fix LK Aachen issue

This is new as well: https://github.com/oscovida/oscovida/runs/1498418948?check_suite_focus=true#step:6:66
"LK Aachen" seems to be missing somewhere.
This is also already in the live system: https://oscovida.github.io/html/Germany-Nordrhein-Westfalen-LK-Aachen.html
Not sure what the cause here is. "LK Aachen" seems like a respectable district and district name.

For some uncertain [for me personally] reason Aachen is now a StadtRegion and not a LK. I will fix that in the code.

There are several changes that might be related:

https://github.com/oscovida/oscovida/commit/05d91cd140c3e46feff523c27bf4d3a0c979d922
https://github.com/oscovida/oscovida/commit/ad35b5c39f940f98e49d013858f47f405e951be3

Okay, I don't know where does that link come from, but Aachen is not actually a LandKreis but a StadtRegion. And it is still on its place: https://oscovida.github.io/html/Germany-Nordrhein-Westfalen-StadtRegion-Aachen.html
The same stands for Region Hannover.
We can still reach the right destination from either the list of German regions or from the incidence rate table.

For some uncertain [for me personally] reason Aachen is now a StadtRegion and not a LK. I will fix that in the code.

I had Aachen down as a city rather than a region, so that would be consistent.
I don't know what change we need to do (I am guessing syncing names in actual data and population?) - do we track the separately? (Just asking because you added the 'wont-fix' label below.)


Stored Procedures and Function

I did not saw it in the documentation so I am not sure this is already in place.
How would you execute a stored procedure or function?

You can't build a stored procedure programmatically at the moment. However, you still can create and execute a stored procedure manually via the query method provided by the database connection.
Example:
const result = await db.query("EXEC procedure_name;")

Personally, I never saw anybody using stored procedure via an ORM, since the ORM itself already provides a very easy way to execute complex queries over and over again. 🤔


Updated move-support-resources.md

Updated move-support-resources.md
Changed line number 1266/67/68
Changed Yes | Yes in all lines to No | No

| account | No | No |
| account / extension | No | No |
| account / project | No | No |

Hi @tfitzmac - The article metadata doesn't list an author to assign for review; GitHub suggested you. Could review the pull request or suggest an appropriate reviewer? Thanks.

#sign-off

@tfitzmac: I'm sorry - only the author of this article, @, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


update king for accomodating both plink1 and 2 FID

Change king2 such that the discrepancy of FID in  #525 should not longer be an issue.
Add pos info in susif module

dat = dat[!duplicated(dat),]

I wonder if it is logically correct / elegant to have to clean up duplicates like this ... looks like we should have not introduced duplicates in the first place but let me know if you still believe here we know exactly what will be removed rather than ad hoc data clean up ...

The remove duplicated is a extension from the original function where sorted and remove any Non-uniq IID. The reason that was performed previously is to to remove the the case where
A X B  related
B X C related
So we will have A B B C as related individual to be removed.
This is also indicated in the code body now.


FI-1672: Remove patient-picker from EHR launch

Summary
Removed the patient-picker page from the EHR Launch flow.
New behavior
Upon receiving an authorization request from within an EHR launch – as denoted by the url containing the launch parameter – the reference server prevents navigation to the patient-picker and allows for immediate scope granting.
Code changes
Altered the authorization.js file to check the url for the launch parameter and to append patient_id=launch to the url, if the launch parameter has an expected value. By adding a patient_id parameter, the patient-picker is circumvented.
Testing guidance
Run the reference server locally and use it as the FHIR endpoint when running the g10 suite locally (I recommend using the command G10_VALIDATOR_URL=http://localhost:4545 INFERNO_HOST=http://localhost:4567 ASYNC_JOBS=false bundle exec puma to avoid docker/localhost quirks). Run the EHR launch group and follow the normal flow.

I get this when I do the redirect to the auth endpoint:

mine's also working fine, but the authorization url on mine is different than @Jammjammjamm  -- it has a patient_id query parameter on the end (which is the expected behavior). It routes to the authorization page, checks whether the scope parameter is there/includes a valid patient id, and then appends it to the url/redirects. However, I realized the redirect/adding to the url is unneccessary based off how things are changed in Encounter PR, so I don't think its worth digging into why yours doesnt append since it won't work that way soon.


New platform for performing voyage calculations

Added ability perform multiple calculations and have them displayed in different tabs. I also added USSJohnJay's voyaage calculator. I'm using the voyagestats component to display the results so that they are consistent across the calculators and with the in voyage calculator. It also gives more information about the voyage to the user.
A couple of issues have to be addressed before it can be merged. Firstly, I had to change the way the telemetry for the hall of fame is supplied. I haven't got the setup to test it and make sure it's not screwing up the results. So this would have to be looked at.
Also USSJohnJay's calculator is currently producing slightly shorter voyages than the IAmPicard calculatior. I used the calculator from the pull request from a while back. Is there a newer version? There is a variable called baseTarget that a comment mentions is based on simulation results. Maybe re-running them with the updated Chewable calculator could help.

Sorry I haven't responded to this yet. I've been working on this on and off since you posted it, trying to figure out why my calculator wasn't producing the expected results. I eventually discovered my code was sending impartial skill aggregates to your revised Chewable. That was easy enough to fix, but I ended up taking a real hard look at everything in the process.
First things first, I love love love being able to see multiple results side by side. And I've definitely come around to the idea that the more voyage calculators we can integrate, the better. That said, I couldn't help but think that the voyage tool as written wasn’t meant to handle multiple calculators and we might have to do all this again when another calculator algorithm inevitably emerges.
So I opted to re-create the main voyage component from the ground up, with the intention that the UI not be attached to any single calculator. I created a new helper class that converts the inputs from the UI into messages that are sent through the unified worker to the appropriate calculator algorithm, and then waits for the results and puts them into a standardized object that the UI can then render. I ended up moving a lot of your code around to where I think they fit better in this new flow.
With the future very much in mind, I also made the voyage tool less reliant on passed data from playertools. This should help with the changes coming in #281. And I know ineffyble has been thinking about storing playerData in local storage, which might make certain data points very outdated for this tool. I addressed that here by adding a way for users to edit the voyage skills and traits; it also ignores stale active crew data and uses autosynced event data so that the pool of event crew is more current.
There’s a bit of a visual refresh here, too, but I didn’t spend too much time on this aspect. I’m happy to let someone with a better grasp of design fix this up properly. Compared to your previous PR, you’ll notice I moved the tab menu items up and showed the estimated times on the tab instead of allowing people to rename it. I think this is both simpler and more useful. I also added a range of times because that’s usually the first thing I try to figure out from your VoyageStats charts.
(Speaking of which, I didn’t touch anything in VoyageStats since it works perfectly, even with all the changes I made. And Chewable was only slightly changed to output one more variable for the upper range of the estimate.)
Honestly I didn’t expect to do as much as I did here, but once I got started, I kept going. Again, I loved what you were trying to do and I wanted to make it even better and more future-proof. Hopefully this works for you. Feel free to change whatever you like and let me know if I made any mistakes. Thanks!

Oh and I'm officially calling my calculator "Multi-vector Assault Mode," my nod to a Voyager ep. The calculator is designed to sometimes produce multiple lineups if it has more than one good recommendation.

I like what you have done. I have readded a couple of features that went awol. I have also hidden the pri/sec skill and trait editing component when using the active voyage estimator. I didn't see any purpose for them there unless I've missed something. There also seems to be a bug where the MVAM generates more than one result.

Thanks for checking on that! I was worried that I had missed some things. The toggle button works perfectly and its restoration negates the need for the edit button on existing voyages (which made sense to me when I was doing it, but now I don't remember why shrug).
Per your suggestion in your first comment, I've been re-running my simulations with your revised chewable. So far it seems like the new baseTarget values are slightly different. I'll be updating my algorithm with those new values shortly and tightening things up a bit. One other thing I might add is an explanation why MVAM returns multiple lineups at the same time. This behavior is intentional but obviously not very clear at the moment. The idea here is to present two lineups if say, one will likely run longer, but another is more likely to reach the critical dilemma hour; both are good lineups, they just satisfy different needs.

I'm developing my own calculator which will be based around maximising the probability of reaching a dilemma. It will also need additional explanation. I can think of three ways of doing it
a) Adjust the banner at the top based on the type of estimate. i.e. The primary MVAM estimate would be the same but the second estimate would start "Best range of times: ..." with the median estimate going in brackets and likewise my estimates would start with the probability of reaching hour x.
b) I could create a popup describing the purpose of the estimate when you hover over each tab at the top.
c) Create a popup when you select the calculator you want to use with a brief description of it.
A combination of the above could also be done. Unless you were thinking of something different.

I'm developing my own calculator which will be based around maximising the probability of reaching a dilemma.

Very cool. I look forward to seeing this and hopefully the changes I made previously will make it easy to integrate.

It will also need additional explanation. I can think of three ways of doing it

Yeah it makes sense to have the banner explain it, as it's the first thing people will see. Popups could work, too. I went with a lazier route with this last update and added a postscript property that just lists stuff at the bottom of the results pane. Not perfect, but good enough for now while I worked out some other stuff.
Namely getting the baseTargets updated. While I was testing those new values from the revised Chewable, I came up with a few new approaches to MVAM to increase the number of lineups generated, scale everything to the size and strength of a given roster, and cut down on the estimation time. It's very aggressive right now in an attempt to make it speedier, but hopefully it's not missing out on good lineups as a result.
And again, being able to compare my algorithm directly to the original calculator has been so so helpful. I love this feature!

This looks like great progress.  We need to make sure we keep it simple enough that people can work out how to use it, which this is starting to skirt the line of.
I will say, the number of taps to the required ship is beautiful

I've been using the multi-vector assault calculator in this PR for about a week.  Every single one of my voyages has hit 10 hours, with the old calculator, I was only occasionally making it to 10 hours.  Admittedly crew will have got better, but this feels like it's giving better suggestions than the old calculator with a fairly significant margin.


[WIP] [#1144] Add theming

This allows changing a few links and images in os-admin. It's not possible to
change the colorschema yet because I think the way to do this is to overwrite
SCSS variables, but I'm not sure exactly how.
As this is just the initial code to get the whitelabeling feature moving
forward, I think it's OK not to allow changing colors for now, and develop it
when we're implementing a new theme.
Fixes openspending/openspending#1144

I'll work on allowing the theme to change the colours as well.

@akariv I updated the code on this repository to work with the new PR on os-styles https://github.com/openspending/os-styles/pull/1.

@akariv Merging this as you approved the changes on os-styles, and the changes here are basically using this new theming architecture (which would be very similar in every repository)


To fix the alignment as well as the UI in footer section.

Describe the bug
A footer is unproperly aligned. it badly impacts website's impression. Also, adding a transparent layer on the footer would make it look better for UI.
Screenshots

@Akshatchaube01

This issue is already being worked on right now in issue no #342


Promote CssStyles to stable API

The code in core had already been updated to use this type so there doesn't seem to be any reason not to promote this now.
@aasimkhan30 FYI since your migration code is using the raw type - but since you're using the proposed API you can just immediately update to use azdata.CssStyles in your code to make it more readable

Pull Request Test Coverage Report for Build 676992126

0 of 0   changed or added relevant lines in 0 files are covered.
166 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-0.009%) to 43.372%

Files with Coverage Reduction
New Missed Lines
%

extensions/arc/src/ui/components/dashboard.ts
3
20.0%

extensions/arc/src/ui/dashboards/postgres/postgresOverviewPage.ts
34
17.32%

extensions/arc/src/ui/dashboards/miaa/miaaDashboardOverviewPage.ts
41
3.4%

src/sql/workbench/api/common/extHostModelViewDialog.ts
42
57.78%

src/sql/workbench/api/browser/mainThreadModelViewDialog.ts
46
62.83%

Totals

Change from base Build 673903459:
-0.009%

Covered Lines:
25455

Relevant Lines:
53541

💛  - Coveralls


“expected bound lifetime parameter, found concrete lifetime” with 'static across await point

(edit: simpler reproducer without channels at https://github.com/rust-lang-nursery/futures-rs/issues/1199#issuecomment-413089012)
On the currently-latest commit of futures-rs (c02ec75a155485ff4b50f21205b6a462851b08e1), with the currently-latest nightly (2018-08-14), the following code does not build:
#![feature(async_await, await_macro, futures_api)]

extern crate futures;

use futures::{channel::mpsc::{self, SendError}, prelude::*};
use std::any::Any;

async fn send(msg: Box<Any + Send + 'static>) -> Result<(), SendError> {
    let (mut sender, _) = mpsc::channel(1);
    await!(sender.send(msg))
}

It fails with the following error:
error[E0279]: the requirement `for<'r> 'r : 'static` is not satisfied (`expected bound lifetime parameter, found concrete lifetime`)
  --> erlust/src/lib.rs:8:72
   |
8  |   async fn send(msg: Box<Any + Send + 'static>) -> Result<(), SendError> {
   |  ________________________________________________________________________^
9  | |     let (mut sender, _) = mpsc::channel(1);
10 | |     await!(sender.send(msg))
11 | | }
   | |_^
   |
   = note: required so that the lifetime bound of `` for `dyn std::any::Any + std::marker::Send` is satisfied

error: aborting due to previous error

I can't figure out the reason why it fails, so I'm assuming it's something in futures-rs. But maybe it's actually a rustc bug from async/await? Or maybe it's just me missing something obvious, actually :)

Just found another simpler reproducer: same version of futures-rs, same nightly, this code:
#![feature(async_await, await_macro, futures_api)]

use futures::future;

use std::any::Any;

async fn send(msg: Box<Any + Send + 'static>) -> () {
    await!(future::lazy(move |_| {
        msg;
        ()
    }))
}

Now I'm thinking this is likely a problem in rustc, so cc'ing https://github.com/rust-lang/rust/issues/50547

Also, it reproduces only when the Any bound is present, having only Send + 'static is not enough to trigger the issue.

It looks like this is an issue specific to async/await: when I have this, it reproduces
#![feature(generators, async_await, futures_api)]

use std::any::Any;

async fn send(msg: Box<Any + 'static>) -> () {
    let mut pinned = move || { msg; () };
    yield
}

But with this (trying to reproduce with generators only), it compiles as expected:
![feature(generators, generator_trait)]

use std::any::Any;
use std::ops::Generator;

fn send(msg: Box<Any + 'static>) -> impl Generator + 'static {
    || {
        let mut pinned = move || { msg; () };
        yield
    }
}

The specificity of Any in the above example appears to be due to its having a 'static bound: this compiles (playground):
#![feature(generators, async_await, futures_api)]

use std::any::Any;

trait Trait {}

async fn send(msg: Box<Trait + 'static>) -> () {
    let mut pinned = move || { msg; () };
    yield
}

And this does not: (playground)
#![feature(generators, async_await, futures_api)]

use std::any::Any;

trait Trait: 'static {}

async fn send(msg: Box<Trait + 'static>) -> () {
    let mut pinned = move || { msg; () };
    yield
}

Closing for moving this issue to https://github.com/rust-lang/rust/issues/53548.


⚠ Bofrost.at has degraded performance

In 28e1537, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2387 ms

Resolved: Bofrost.at performance has improved in ea97c7e.


[kytos/{of_l2ls, of_topology}] Napps are breaking when switch is None.

Description
When a switch is disconnected and connected again the napps kytos/of_l2ls and kytos/of_topology are breaking.
Steps to reproduce
Enabled napps: kytos/of_core, kytos/of_l2ls, kytos/of_topology
Start Kytos:  kytosd -f
Start mininet: mn --topo linear,5 --mac --controller=remote,ip=<IP_ADDRESS> --switch ovsk,protocols=OpenFlow10
Stop mininet: press ctrl+ c
Start mininet: mn --topo linear,5 --mac --controller=remote,ip=<IP_ADDRESS> --switch ovsk,protocols=OpenFlow10
Traceback
Exception in thread Thread-39:                       Traceback (most recent call last):                     File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner                                       self.run()               File "/usr/lib/python3.6/threading.py", line 864, in run                                                    self._target(*self._args, **self._kwargs)          File "/home/macartur/Desktop/unesp/github/kytos/kytos/core/helpers.py", line 68, in threaded_handler        handler(*args)           File "/home/macartur/Envs/kytos/var/lib/kytos/napps/kytos/of_l2ls/main.py", line 59, in handle_packet_n     switch.update_mac_table(ethernet.source, in_port)                                                     AttributeError: 'NoneType' object has no attribute 'update_mac_table'
                                 Exception in thread Thread-40:                       Traceback (most recent call last):                     File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner                                       self.run()               File "/usr/lib/python3.6/threading.py", line 864, in run                                                    self._target(*self._args, **self._kwargs)          File "/home/macartur/Desktop/unesp/github/kytos/kytos/core/helpers.py", line 68, in threaded_handler        handler(*args)           File "/home/macartur/Envs/kytos/var/lib/kytos/napps/kytos/of_topology/main.py", line 52, in update_lins     interface = switch.get_interface_by_port_no(port_no.value)                                            AttributeError: 'NoneType' object has no attribute 'get_interface_by_port_no'

@macartur, I'm not saying the problem does not exist for sure, but if I include mn -c between calls to mininet, I cannot reproduce the error.... I'll keep trying.

One possibility is that the Connection did not have the time to change states before the new connection attempt, I'll investigate more.

I made some state handling improvements to avoid this kind of problem,
you can test it with the branches:
https://github.com/erickvermot/kytos/tree/connection_state_improvement
https://github.com/erickvermot/kytos-napps/tree/connection_state_improvement
I have not made the PR because it includes @macartur 's PR https://github.com/kytos/kytos/pull/467, that was not accepted yet.
Since his PR does not include a few commits that are already in the master branch, I'll wait until it is accepted before making mine, otherwise github makes a mess...

@macartur, see if you still have this issue with these mods, otherwise please close the issue.

I can't reproduce this error. I will close this issue.


[Question (feature?)] Clean way to define a Semigroup over a (partially) partial type

Forgive my abuse of the issue types, I'm not sure if this is a feature request, perhaps there is a clean way to handle it.
I would like to define a custom Semigroup for merging structs. To preserve a sane typescript interface I'd like the input type to my merging function to be:
    type PartialOptions = {
      baseUrl: string;
      token?: string;
      extraHeaders?: Record<string, string>;
      number?: number;
    };

I can define a Semigroup that does what I want by replacing the optional fields with suitable zero values using Option for token.
Below is a solution that first normalise the input values into a type that is easier to work with in fp-ts, however it involves additional boilerplate which is a bit of a shame. Namely:

I cannot easily infer PartialOptions from Options (with a nod to io-ts I would like to define my 'runtime types' once and infer the compile-time type via dependent typeof types.
I could automate the optionify function a bit but with the primitive I know about/understand it would be more work than just defining it explicitly.

This ticket looks like it is dealing with just the same flavour of problem: https://github.com/gcanti/fp-ts/issues/1636
Here's a test case demonstrating what I'm thinking of:
describe('fp-ts', () => {
  test('Merging an options type', () => {
    // Helper type for inferring the type implied by a Semigroup
    type SemigroupType<T> = T extends S.Semigroup<infer U> ? U : never;

    // Define a merging semigroup using Option for nullable values
    const OptionsSemigroup = S.struct({
      baseUrl: S.last<string>(),
      token: O.getMonoid(S.last<string>()),
      extraHeaders: R.getUnionSemigroup(S.last<string>()),
      // Just for fun
      number: N.SemigroupSum,
    });

    type Options = SemigroupType<typeof OptionsSemigroup>;

    const optionsMerge = S.concatAll(OptionsSemigroup);

    // We could derive this from Options, but I don't know if a generic way to handle omitted values as zero types.
    // the amount of boilerplate in the current approaches makes this clean
    type PartialOptions = {
      baseUrl: string;
      token?: string;
      extraHeaders?: Record<string, string>;
      number?: number;
    };

    function optionify({ baseUrl, token, extraHeaders = {}, number = 0 }: PartialOptions): Options {
      return {
        baseUrl,
        token: O.fromNullable(token),
        extraHeaders,
        number,
      };
    }

    // Here's what the outside world should see
    function mergeOptions(base: PartialOptions, ...options: PartialOptions[]) {
      return optionsMerge(optionify(base))(options.map(optionify));
    }

    // Here's the example usage
    const base: Options = {
      baseUrl: 'bar',
    };

    const result = mergeOptions(
      base,
      { number: 4, baseUrl: 'fff', extraHeaders: { foo: 'bar', bang: 'boo' } },
      { number: 6, baseUrl: 'fff', token: O.some('asdsadsadasd') },
      { number: 8, baseUrl: 'fff', token: 'oooooo', extraHeaders: { newKey: 'blah' } },
      { number: 10, baseUrl: 'http://example.com', extraHeaders: { foo: 'barbarbar' } },
    );
    console.log(result);
    expect(result).toStrictEqual({
      baseUrl: 'http://example.com',
      token: O.some('oooooo'),
      extraHeaders: { foo: 'barbarbar', bang: 'boo', newKey: 'blah' },
      number: 28,
    });
  });
});

If this is a poor fit for the issues section here then my apologies and I will close it.

Well reading the ticket linked above again (https://github.com/gcanti/fp-ts/issues/1636) having tried to solve the problem myself, perhaps this is exactly a dupe of that!
Side-question: not sure why the above compiles, but I am nesting options in my usage.
Is there an existing function idiom for taking (x: undefined | A | Option<A>) => Option<A>?


Sexlab Dialogue Options

Request
An option to start scenes through normal dialogue, i.e. Sexlab Romance or Sexlab Dialogue.
Additional context
It would be nice to have an option that was more versatile than losing a battle or offering a newly met stranger fellatio.

SL Solutions is already installed


Fix personal access token expiration

this PR fixes filling expires_at column in DB . and also fixes checking of expiration by passing expiration minutes param to Guard class

That column should not exists. I forgot to remove it.


Coastal dataframe assembly from BMI type arrays with example

Implemented setup of coastal dataframe from BMI compliant arrays
Additions

Added assembly of coastal dataframe, mostly in troute_model.py
Added script to test functionality: run_BMI_Coastal.py, located in Lower Colorado V4 example
Made some modifications to the bmi_array2df and bmi_df2array functions, and how they are imported

Removals

Changes

Testing

run the script run_BMI_Coastal.py, located in Lower Colorado V4 example

Screenshots
Notes

Todos

Checklist

[ ] PR has an informative and human-readable title
[ ] Changes are limited to a single goal (no scope creep)
[ ] Code can be automatically merged (no conflicts)
[ ] Code follows project standards (link if applicable)
[ ] Passes all existing automated tests
[ ] Any change in functionality is tested
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged / future todos are captured in comments
[ ] Visually tested in supported browsers and devices (see checklist below :point_down:)
[ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
[ ] Reviewers requested with the Reviewers tool :arrow_right:

Testing checklist
Target Environment support

[ ] Windows
[ ] Linux
[ ] Browser

Accessibility

[ ] Keyboard friendly
[ ] Screen reader friendly

Other

[ ] Is useable without CSS
[ ] Is useable without JS
[ ] Flexible from small to large screens
[ ] No linting errors or warnings
[ ] JavaScript tests are passing

OK: fixed it, checks have passed.


Expose way to get simple, human-readable, representation of the model for debugging

There are some internal APIs called ToDebugString that allow a model to be dumped out in a form like this:
Model 1.1.0-csproj
  Game
    Properties:
      Id (<Id>k__BackingField, int) Required PK ReadOnlyAfterSave RequiresValueGenerator ValueGenerated.OnAdd 0 0 0 -1 0
    Navigations:
      Items (<Items>k__BackingField, ICollection<Item>) Collection ToDependent Item Inverse: Game 1 -1 1 -1 -1
      Levels (<Levels>k__BackingField, ICollection<Level>) Collection ToDependent Level Inverse: Game 2 -1 2 -1 -1
    Keys:
      Id PK
  Item
    Properties:
      Id (<Id>k__BackingField, int) Required PK ReadOnlyAfterSave RequiresValueGenerator ValueGenerated.OnAdd 0 0 0 -1 0
      GameId (<GameId>k__BackingField, int) Required FK Index 1 1 1 -1 1
      LevelId (<LevelId>k__BackingField, int) Required FK Index 2 2 2 -1 -1
    Navigations:
      Game (<Game>k__BackingField, Game) ToPrincipal Game Inverse: Items 3 -1 3 -1 -1
      Level (<Level>k__BackingField, Level) ToPrincipal Level Inverse: Items 4 -1 4 -1 -1
    Keys:
      Id PK
    Foreign keys:
      GameId -> Game.Id ToDependent: Items ToPrincipal: Game
      GameId, LevelId -> Level.GameId, Level.Id ToDependent: Items ToPrincipal: Level
  Level
    Properties:
      GameId (<GameId>k__BackingField, int) Required PK FK Index ReadOnlyAfterSave 0 0 0 -1 0
      Id (<Id>k__BackingField, int) Required PK ReadOnlyAfterSave 1 1 1 -1 -1
    Navigations:
      Game (<Game>k__BackingField, Game) ToPrincipal Game Inverse: Levels 2 -1 2 -1 -1
      Items (<Items>k__BackingField, ICollection<Item>) Collection ToDependent Item Inverse: Level 3 -1 3 -1 -1
    Keys:
      GameId, Id PK
    Foreign keys:
      GameId -> Game.Id ToDependent: Levels ToPrincipal: Game

This is indented to be a relatively terse and not necessarily complete form useful for debugging the model. It is not intended as a serialization format.
We should consider if something like this should be made public, and if so what form it should take.

Triage: We think this can be useful and @ajcvickers is going to investigate if this can be shown in the debugger automatically without introducing much overhead.

My goal was to have the human readable format available to anybody using the debugger, but in such a way that it is only created on-demand, since creating the view for a very large model can be quite expensive resulting in latency in the debugger and memory usage. I was not able to find anything that would do this using VS attributes, etc., without installing third-party stuff. However, I did come up with this: create a level of indirection in code:
// Note that Model is internal
public class Model
{
    ...
    public virtual DebugView<Model> DebugView
        => new DebugView<Model>(this, m => m.ToDebugString());
}

// Internal
public class DebugView<T>
{
    private readonly T _metadata;
    private readonly Func<T, string> _toDebugString;
    private string _view;

    public DebugView(T metadata, Func<T, string> toDebugString)
    {
        _metadata = metadata;
        _toDebugString = toDebugString;
    }

    public virtual string View => _view ?? (_view = _toDebugString(_metadata));
}

So now when I expand Model in the debugger I get this:

Note that the debug view of the model has not yet been created, so there is minimal additional overhead. But if I want to see the debug view, then I just expand out the property, at which point the view will be created.

Stepping over a piece of code that causes the model to be updated causes the view to be re-created:


bq274xx sample unable to build

Describe the bug
Unable to build sensor sample bq274xx within last origin/master checkout. Obviously it has something to do with CMake build:
[62/143] Building C object zephyr/drivers/sensor/bq274xx/CMakeFiles/drivers__sensor__bq274xx.dir/bq274xx.c.obj  FAILED: zephyr/drivers/sensor/bq274xx/CMakeFiles/drivers__sensor__bq274xx.dir/bq274xx.c.obj
DTS files for recommended nrf9160_innblue21 board does not include any of bq27421 i2c register adresses so I tried to add that node but behavior haven't change.
To Reproduce
Steps to reproduce the behavior:

west build -b nrf9160_innblue21 samples/sensors/bq274xx

Expected behavior
Should build w/o errors.
Logs and console output
Screen shot
Environment ():

OS:  Windows
Toolchain: gcc-arm-none-eabi-8-2018-q3-update
-- SHA1: 61d42cf42b3003e04c9e3c1c40aa612b8f18aa28

Additional context
Add any other context about the problem here.

@parthitce will you please have a look?

@mejtejt It builds fine with west build -b nrf9160_innblue22 -s ./samples/sensor/bq274xx/.
bq27421 is present only on nrf9160_innblue22, but not on nrf9160_innblue21 if I am not wrong. If you are connecting it externally to nrf9160_innblue21, include
        bq27421@55 {
                compatible = "ti,bq274xx";
                label = "BQ274XX";
                reg = <0x55>;
                design-voltage = <3700>;
                design-capacity = <1800>;
                taper-current = <45>;
                terminate-voltage = <3000>;
        };

in respective i2c node and also add nrf9160_innblue21 to platform_allow.
@MaureenHelm Not a bug, but wrong board.

@mejtejt It builds fine with west build -b nrf9160_innblue22 -s ./samples/sensor/bq274xx/.
bq27421 is present only on nrf9160_innblue22, but not on nrf9160_innblue21 if I am not wrong. If you are connecting it externally to nrf9160_innblue21, include
        bq27421@55 {
                compatible = "ti,bq274xx";
                label = "BQ274XX";
                reg = <0x55>;
                design-voltage = <3700>;
                design-capacity = <1800>;
                taper-current = <45>;
                terminate-voltage = <3000>;
        };

in respective i2c node and also add nrf9160_innblue21 to platform_allow.
@MaureenHelm Not a bug, but wrong board.

That's right! Though, at README.rst says under Requirements : "- nrf9160_innblue21 board with BQ274XX sensor BQ274XX Sensor_"
Should be changed to nrf9160_innblue22 for clumsy reader, or explicitly stated externally connected.
Thak you both for your time

Thanks for the quick response!


Support non-breaking content (<nobr> and white-space: nowrap)

This patch supports non-breaking content in the JavaScript HTMLProcessor. The non-breaking content provides context for the Parser but the content is not breakable.
Contents with white-space: nowrap and white-spce: pre are handled as non-breaking content. The <nobr> element is also supported; this is useful for disconnected tree when all styles including white-space are not computed.

PTAL.

PTAL, mistakenly used --amend that I had to push force, sorry about this.


koordlet: fix psicollector may cause other functions to block when started

Ⅰ. Describe what this PR does

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

/lgtm

/approve


Will there be an add_route option?

I was comparing Vibora to other frameworks and I know some like Japronto have an "add_route" option to easily add routes from functions. If you take a look at an example here, a user is able to setup functions wherever they like (even in another file if possible via import) and can simply add the route with the URL and allowed methods.
I didn't see this option in the docs and if it is, I apologize for not finding it. If not, it would be a nice feature to add to this new and sexy framework.

This is more of a workaround than a solution (maybe), but you can use the @app.route decorator as a normal function call instead of the decorator syntax:
def slash():
    ...

app.route('/')(slash)

But yeah it looks a bit ugly, add_route would be cool imo :)


Output generated in the output tab moves cursor focus to the output tab.

So that's not the clearest title so I'll try to explain what I mean by that.
When typing a command, the intellisense all works correctly and as expected, however after typing .Values. (after typing the last dot), the intellisense appears as expected (and lists all of my available values), however after around a second, a message appears in the output:

Missing value at path [.Values.] in file [{PATH}\deployment.yaml:16]

Whilst this error appearing in the output isn't an issue exactly, it forces the focus from the window where I am typing to the output window making it very difficult to type anything.

Hey @BradLewis
this is strange...do you have some kind of autosave plugin installed? The linter should only be running when the document is saved or you execute the command manually.
If you dont't want the linter to be activated when the file is saved you can do the following in your settings.json:
"helm-intellisense.lintFileOnSave": false,

Hi Tim,
Yeah that's it! I use the autosaving feature which runs after a second of not typing which was running the linter. Disabling the linting on save fixes this.
However it be possible to stop the output changing the window focus?

Yep already working on that :)

Fix released with v0.7.4


Feat/BILL-CPC-1046) Allows a User to get all their bills (db bug fix included)

JIRA: https://champlainsaintlambert.atlassian.net/browse/CPC-1046?atlOrigin=eyJpIjoiYmE3MTgzYzlhZWQ4NGQ4YmI4ZTRhMWYwYjgwYTg2YjgiLCJwIjoiaiJ9
Context:
This ticket creates the main billing page for the customer and allows them to see all their bills (by customer id). This way the billing in the nav bar now redirects them to their billing page and the customer can see all their bills. Please note, I have accidently fixed and properly configured the database in this branch. Therefore a new branch will not be created despite the separate story.
Changes

creation of a new customer billing page
a billing table to get and handle all the bills
bill model in the front end
modified path.routes, router and AppNavBar to have the frontend access the newly created page
fixed the mongo db to actually have customer ids and moved it to the proper layer
added new controller for old v2 angular frontend

Added to the UI (No changes to original UI)

The tests for the endpoint where already written, they still pass with the new changes. I didn't use secured annotation because the original billing endpoint in controller didn't use it so I thought it would be ok. I have to use fetch because the axiosinstance was being super weird in processing the flux. I had to try a bunch of different ways to get it to work.

The tests for the endpoint where already written, they still pass with the new changes. I didn't use secured annotation because the original billing endpoint in controller didn't use it so I thought it would be ok. I have to use fetch because the axiosinstance was being super weird in processing the flux. I had to try a bunch of different ways to get it to work.

Since you created a new v2 endpoint, I think it would be good to test your new implementation. Also I noticed that the URL contains the customer id. Wouldn't it be better to make the route be '/customer/bills'.? Since you are using the logged in customer's id to perform the request you don't really need to show it in the URL. Each customer will see their corresponding bills when accessing the page.

The tests for the endpoint where already written, they still pass with the new changes. I didn't use secured annotation because the original billing endpoint in controller didn't use it so I thought it would be ok. I have to use fetch because the axiosinstance was being super weird in processing the flux. I had to try a bunch of different ways to get it to work.

Since you created a new v2 endpoint, I think it would be good to test your new implementation. Also I noticed that the URL contains the customer id. Wouldn't it be better to make the route be '/customer/bills'? Since you are using the logged in customer's id to perform the request you don't really need to show it in the URL. Each customer will see their corresponding bills when accessing the page.

Ok thanks. I will makes these changes. Do I close the pull request?


Not able to set Tax amount on line items

Relates to this line here: https://github.com/thephpleague/omnipay-sagepay/blob/master/src/Message/AbstractRequest.php#L303
My suggested fix is to add a custom SagePayItem which extends the Omnipay Item and exposes a getter/setter for tax amount, then check the Item type in the code linked above.

We did this for the PayOne driver so could base it on that if that approach looks good to you. The extended interface adds additional setter/getter requirements, and also allows the gateway to recognise when the extended item is being used.
Some instructions show how it would be used.

@joshbrw Did you manage to create an extended Item and modify the core driver code to suite your needs? If you did, then any PRs would be useful :-)

Hey @judgej, sadly I didn't get time :( Will put this onto my list of stuff to do though!