IRC: Support for +k channels

Is your feature request related to a problem? Please describe.
My use case requires the bot accessing a +k (password/keyworded) IRC channel and linking it to a channel in my RocketChat instance.
Describe the solution you'd like
I would like the IRC gateway to support an additional variable in order to provide the channel's keyword so the bot can join the channel.
Describe alternatives you've considered
Removing +k, connecting the bot, and then setting +k back. This does not work with channels I do not have operator status on.
Additional context
N/A

Is already supported:
https://github.com/42wim/matterbridge/blob/e955a056e2aa4a07c6375315113886b2ee86138c/matterbridge.toml.sample#L1632-L1635


Add blocktime to currency definition

This PR resolves issue 1722.

Coverage decreased (-0.02%) to 39.487% when pulling e7b289a3a46d1bf8c5b8a64ec5b768b6a141d186 on add_blocktime_currencyDefinition into 0e1f030aeecd9b33e308e2135edf29e24c3de5ea on ethereum-master.


Reusable conditions

This is not really an issue but a proposal.
Instead of defining conditions on every component added, we could instead define conditions somewhere(not on the stage) and apply it on multiple components.
By doing this the user can select from the defined conditions which one to apply on a  component.
A component could have a condition for visibility and another to disable it.

This is a good idea. Would you mind expanding a little on the workflow? I understand how we could apply states like visibility but am not sure how we could apply field based conditions.
Maybe when defining a condition like if field.value == "my value" there could be a button that allows to save that condition to make it easier to apply to other fields. I'd like to explore:

where it would be saved in the UI, new control group, popover etc
where it would be applied from after saved, should be the same as where its saved to
how the UI would work, saving named condition
would we also save condition results, then?

Conditions and variables could be kept in another "TAB", maybe after layout group.

Variable will have a name, value(if constant) or component derived where user selects a component then a parameter(component could hold multiple data).

Condition will be a textarea/file where the user can use the defined variables by name and return true/false

ok I think I get it now.

Condition will be a textarea/file where the user can use the defined variables by name and return true/false

I planned to add an interface to add "evaluators", or methods that can implement their own logic for returning true or false. Will that cover this requirement? Also there is another part of conditions in release/1.0 called External Data that should cover the users defined variables.
I think we should should also more clearly define some of the terms involved in conditions and Formeo in general as its getting confusing. Here is my current thinking:

Condition: this is the equivalent of an if statement like if (field.value === 'test'). Conditions can have multiple evaluations.

Evaluation: the evaluation(s) of a Condition. This is defined separately from Condition since conditions can depend on multiple evaluations. A function that evaluates is an , Chrome thinks thats not a word so maybe we need a better name for that.

Result: what happens when a Condition is true

External Data: another term that maybe should change, External Data is user defined data that will be used by conditions. Current defined as just external in Formeo options.

I was thinking we could have a panel(collapsible) before the stage.

The main panel will be divided into 2 parts, the left panel will display a list of defined variables and conditions and the one on the right will just be container that displays properties of the variable/condition that is being edited.

I hope my messy sketch can comunicate what i have in mind :)
I would like top help with the development, i have being reading through your code(impressive by the way) and i can contribute, i can start by fixing a some bugs.
Let me know if thats ok.


Revert back to production endpoint for AppTP blocklist.json

Task/Issue URL: https://app.asana.com/0/1199371158290272/1202122946916649/f
Description
This task mistakenly left the blocklist.json in beta endpoint.
Revert back to production endpoint
Steps to test this PR

[ ] fresh install
[ ] launch app and enable ApptP
[ ] verify vpn_app_tracker_blocking_list db table in vpn.db is populated

Current dependencies on/for this PR:

develop

PR #1873   (this PR)

This comment was auto-generated by Graphite.


 No need to close a PR and open a new one. In fact, I'd prefer you didn't as we lose the discussion.
Reviewers: see also discussion on #109.

@flaming- You need to be more explicit with who has and needs what permissions. Reference some of the existing specs.

@flaming- Can this be merged?

@ajax-wcd I will add an explicit use case for admins disabling friend system permissions, this should address the "who has and needs what permissions" concern I believe, then it can be merged. (I cannot get on this earlier than tonight.)

@flaming- Great, @ me on here so I don't miss it

@ajax-wcd actually, I think the specifics of permissions modification belong in the permissions spec. I have added an explicit mention of a permissions flag (I believe there is only one relevant permission here). Is this what you meant by being "more explicit with who has and needs what permissions" or did you have something else in mind. If this looks good to you then it is ready to be merged.
Also, in the future, if we have to make edits to pull request branches like this, would you prefer we just leave it as two commits, or rebase them and --force push to make it appear as one commit on the branch? I seem to remember you being somewhat particular about rebasing.

@flaming- Take a look at how permissions are done in other specs to see what I mean. Announcements spec for example.
It doesn't matter how you update your branch.

@flaming- What's going on with this?

I'm taking this over.

@ajax-wcd Does this need more information regarding permissions or is this ready for merge? (I'm going to add new functionality and remove WCD specific stuff)


Enable reader to understand negative numbers

Current status: Negative numbers are interpreted as symbols
>> -1
leads to:
### Error: undefined variable -1

Works as expected since last commit:
>> -1
leads to expected result:
>> -1


fixed by introducing a wild card in css

Checklist:

[X] I have read freeCodeCamp's contribution guidelines.
[X] My pull request has a descriptive title (not a vague title like Update index.md)
[X] My pull request targets the master branch of freeCodeCamp.
[X] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #38790

I'm really not sure we want to allow for this type of formatting in the CSS. Let's wait and see what others have to say.

If we allow the space between the property value and the ;, then we might as well allow the space between the property and the :, then we might as well allow the lack of a closing }, seeing as CSSHTML is so forgiving, when it comes to compiling, then we might as well allow the property, the :, the property value, and the ; to all be on separate lines.
It becomes a bit ridiculous. This is the regex required for the above:
/(?<=<style>([\s\S])*)\.silver-background[\s\n]*{([\s\S]*;)?[\s\n]*background-color\s*:\s*silver\s*;(?=[\s\S]*<\/style>)/

So, I am happy to allow certain conditions to pass, but I would prefer if we could decide on a convention, and stick to it, throughout the curriculum.

@Sky020 I agree.
I'm fine with code being trimmed of spaces first so a regex can be a little less verbose and if that allows for some poorly formatted code, so be it. But explicitly checking for spaces where there really shouldn't be any, seems a bit wrong to me.


SEPG Automated Release - v1.6.0

SEPG Details
Release Build Link: http://sou-jenkins2.swinfra.net:8080/job/Auto-Release/421/
Build Token: github.com/CAFapi/opensuse-dotnet6-images/main/9df4f6967a9fd0ddc11c3699b43045d9d17b1288
Versioning Behaviour: Roll on to next minor
Artifacts For Release
Docker

cafapi/opensuse-dotnet6-aspnet:1.6.0 (Static Tag)
cafapi/opensuse-dotnet6-aspnet:1.6 (Dynamic Tag)
cafapi/opensuse-dotnet6-aspnet:1 (Dynamic Tag)
cafapi/opensuse-dotnet6-aspnet:latest (Dynamic Tag)
cafapi/opensuse-dotnet6-runtime:1.6.0 (Static Tag)
cafapi/opensuse-dotnet6-runtime:1.6 (Dynamic Tag)
cafapi/opensuse-dotnet6-runtime:1 (Dynamic Tag)
cafapi/opensuse-dotnet6-runtime:latest (Dynamic Tag)
cafapi/opensuse-dotnet6-sdk:1.6.0 (Static Tag)
cafapi/opensuse-dotnet6-sdk:1.6 (Dynamic Tag)
cafapi/opensuse-dotnet6-sdk:1 (Dynamic Tag)
cafapi/opensuse-dotnet6-sdk:latest (Dynamic Tag)

 Build Stage
Action
Status

Release Checks
completed
:heavy_check_mark:

Gather Release Data

:white_small_square:

QA Documentation Site Deployment

:white_small_square:

QA Deployment Branch Promotion

:white_small_square:

Docker Image Promotion

:white_small_square:

Maven Artifact Promotion (Closed Source)

:white_small_square:

NuGet Artifact Promotion

:white_small_square:

Artifactory Release Artifact Tagging

:white_small_square:

Generic Artifact Promotion

:white_small_square:

Maven Artifact Promotion (Open Source)

:white_small_square:

Maven Staging Repository Removal (Open Source)

:white_small_square:

Git Tagging

:white_small_square:

Git Release

:white_small_square:

Git Release Asset Deployment

:white_small_square:

Pull Request Merge

:white_small_square:

Release Branch Deletion

:white_small_square:

view the build log here


Add Ad-Free

https://github.com/johnjago/awesome-ad-free
This is a list of online services, websites, applications, and publications that are not supported by advertising, allowing people to quickly find ad-free alternatives.
By submitting this pull request I confirm I've read and complied with the below requirements.
Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.

I have read and understood the contribution guidelines and the instructions for creating a list.
This pull request has a descriptive title.For example, Add Name of List, not Update readme.md or Add awesome list.
The entry in the Awesome list should:

Include a short description about the project/theme of the list. It should not describe the list itself.Example: - [Fish](…) - User-friendly shell., not - [Fish](…) - Resources for Fish..
Be added at the bottom of the appropriate category.

The list I'm submitting complies with these requirements:

Has been around for at least 30 days.That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
It's the result of hard work and the best I could possibly produce.
Non-generated Markdown file in a GitHub repo.
Includes a succinct description of the project/theme at the top of the readme. (Example)
The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
Not a duplicate.
Only has awesome items. Awesome lists are curations of the best, not everything.
Includes a project logo/illustration whenever possible.

Placed at the top-right of the readme. (Example)
The image should link to the project website or any relevant website.
The image should be high-DPI. Set it to maximum half the width of the original image.

Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
Has the Awesome badge on the right side of the list heading,
Has a Table of Contents section.

Should be named Contents, not Table of Contents.
Should be the first section in the list.
Should only have one level of sub-lists, preferably none.

Has an appropriate license.

That means something like CC0, not a code licence like MIT, BSD, Apache, etc.
If you use a license badge, it should be SVG, not PNG.

Has contribution guidelines.

The file should be named contributing.md. Casing is up to you.

Has consistent formatting and proper spelling/grammar.

Each link description starts with an uppercase character and ends with a period.Example: - [AVA](…) - JavaScript test runner.
Drop all the A / An prefixes in the descriptions.
Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

Doesn't include a Travis badge.You can still use Travis for list linting, but the badge has no value in the readme.

Go to the top and read it again.

Looks good :)

Just one nit:

Drop all the A / An prefixes in the descriptions.

A/an dropped :)


No tensorflow 2.0 support?

I'm getting the error AttributeError: module 'tensorflow' has no attribute 'GraphDef' which appears to be an error resulting from using tensorflow 2.0. Is there any plan to add support for tensorflow 2.0? In the meantime what should I do to fix this?

Open PR to fix this is #44


App crashes on message click

Hi,
we are using LayerUI in our Ionic 3 web application. Unfortunately the app crashes if the user taps on a message with an image. We found the click event of the layer-message-image component in the file layer-message-image.js:
    _handleClick(evt) {
        // Don't open images clicked within the Conversations List
        /* istanbul ignore next */
        if (this.parentNode.tagName !== 'LAYER-CONVERSATION-LAST-MESSAGE') {
            evt.preventDefault();
            if (this.properties.image && this.properties.image.url) window.open(this.properties.image.url);
        }
    },

How can we prevent the app from opening the image? We would like to handle the image/media selection ourselves?

Try something like:
LayerUI.init({
    appId: myAppId,
    mixins: {
        'layer-message-image': {
            methods: {
                _handleClick: {
                    mode: LayerUI.registerComponent.MODES.OVERWRITE,
                    value: function(evt) {
                        // your code goes here
                    }
                }
            }
        }
   }
});

This will replace the existing _handleClick method with your own.


Number of leaf nodes in binary tree

Description
I would like to add an algorithm to find
Number of leaf nodes in the binary tree
@Lucifer4255 @ujjwalban @miraj0507  Please assign me this issue
Domain
Data Structure
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

/assign


Mark HTTP and related attributes as stable and render badges

Fixes #
Trying stability badges/labels out in preparation for HTTP stability 🤞
--md-use-badges --md-stable flags are rendered as

--md-stable results in

Merge requirement checklist

[ ] CONTRIBUTING.md guidelines followed.
[ ] CHANGELOG.md updated for non-trivial changes.
[ ] schema-next.yaml updated with changes to existing conventions.

some limitations we have in the md generator (and can address separately):

only the original definition (in the registry) has a badge, referenced attributes don't get it
semconv cannot be marked as stable as a whole
metrics don't have stability levels in yaml

@lmolkova WDYT about rendering deprecated labels as well? Though I see that deprecated attributes have it also in their brief / description: Deprecated, use ... instead.

@lmolkova WDYT about rendering deprecated labels as well? Though I see that deprecated attributes have it also in their brief / description: Deprecated, use ... instead.

They seem to be rendered by default - https://github.com/open-telemetry/build-tools/blob/370e8f443612b312d9d30679f4cd513152fdab1b/semantic-conventions/src/opentelemetry/semconv/main.py#L210
We just never use them in markdown, so they don't appear. If we did, they'd appear as

I think this should be "ready to review" as soon as these are done:

#459
#467
#469
#472

@lmolkova can you expand this PR to also update the stability of the http spans page and relevant metrics sections, so that it will be the one PR that we merge related to marking things stable? thx

I have been asked to review this PR, I can (only) confirm that as far as I know, there are no blockers left for stability so probably this is good to go. But I haven't been following the spec/semconv work closely enough recently to add a formal review here.


feat(transport): Use an associated type for result type of EmailTrans…

…port

Codecov Report

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

@@           Coverage Diff           @@
##           master     #266   +/-   ##
=======================================
  Coverage   91.16%   91.16%
=======================================
  Files          11       11
  Lines        1143     1143
=======================================
  Hits         1042     1042
  Misses        101      101

Impacted Files
Coverage Δ

lettre/src/lib.rs
95.55% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


PR to fix develop branch

The develop branch was broken. I added stub methods for missing abstract methods in controllers.

Hi
@jgaleotti sorry :( forgot to discuss that current develop is unusable. i did merge into EM by mistake some changes that require an update on EMB. @ZhangMan1126 has been doing that on a branch, but it is not merged yet

@ZhangMan1126 btw, what is the status on that branch?

@arcuri82 I checked the updates with evomaster and found some problems.
the problems are fixed, but need a further check with evomaster.

ok, should we discard this PR then?

@jgaleotti  likely, but let's wait for the other branch first

This PR is no longer needed as things were fixed in develop


V2 : fix transforms

These changes allow various length arrays to be passed to:

mirror
rotate
scale
translate

NOTE: center() was not changed, as that should be done seperately.
All Submissions:

[X] Have you followed the guidelines in our Contributing document?
[X] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[X] Does your submission pass tests?

@kaosat-dev please review. let me know if anything should be changed.

@kaosat-dev Can this be merged?
I reviewed again, and think this is ready.

@z3dev reviewing now, sorry for the delay !

@kaosat-dev please merge.

Time to push on. Thanks, @kaosat-dev for the review.


Discussion of a wild idea: Multiple Genesis Blocks, Archival Node

I think we may be able to reduce a block chain size dramatically, by re-generating automatically a new genesis block every year, (or every X blocks), and keeping the balance of the previous block chain, last block of it.
Theoretically it will solve the hard disk space issues, And will reduce network bandwidth requirements for setting a new Full node. It will not solve new block propagation delays.
2016 [block 0]...[block n] --- the last block's balance could transfer into a new genesis block 2017.
2017 [block 0]
Afterwards Mining should start build up on the new chain. Just the history of transactions will be lost.
There could be more types of nodes: Archival node, keeping all history of all the previous block chains, and the Full Node, keeping only the current block chain.
In this scenario, only block explorers and scientists will need to keep an Archival Node.
Do you think it is doable, theoretically?
This idea, if it works, will mean that Dash will beat Visa x 10 transactions easily, with a goal to break 1 billion transactions per day, in a decentralized way.
04.Mar.2017
-Technologov

Clarification 01: New genesis block must be generated in a deterministic way, to be reproducible by all miners and Masternodes.
Clarification 02: tiny dust amounts  can be distributed to the last 1000 miners.
Let's define 'dust' as transaction outputs  below the median fees for the last 100 blocks.

How fresh new client would determine if he's fed with a valid masterblock
If the validity of a masterblock would be confirmed by masternodes, how fresh new client would determine which masternodes to trust?

It's already answered in C04 (Clarification 04) and C05.

I think there are some ideas swirling around the bitcoin world on this topic. Part of the challenge is that certain types of transactions have to be honored somehow: Future dated, etc.

You may want to look into MerkleDAGs because they essentially use the last transaction which is a hash of all the previous hash's as the validity of any future transactions, essentially a blockchain-less system that tries to emulate a chain of transactions to do the same thing.

Is there any coins that implement said "Directed acyclical Merkle DAGs" for tx scalability?

Iota and to lesser extent byteball afaik.. its still unproven however read their paper and critique it

Taw00: maybe we can make a special section in the MB with special transactions, and list them as 'valid' - Masternode tx with 1000.0 DASH output, future dated, multisig, etc... it needs some though.

Opinion from Bitcoin people:
https://bitcointalk.org/index.php?topic=1851463.0
spartacusrex said: (April 03, 2017)

Like.
BUT. Could be easier. Don't need a Master Block.

Throw away EVERYTHING except the Block-header for blocks older than 1 day / (..or the longest re-org imaginable ). The block header is the ONLY bit you really need - as it has the POW. Also it links back to the previous block header, so we have our 'Proof Chain' back to the Genesis block. (Which would be tiny).

You need to store the deterministic UTXO root hash somewhere in the block header. Changes for every block obviously. But everyone would agree on  it.

That's it.

As with your design we lose the TXN history - but we keep the POW chain that led us to the present day UTXO.
So.. doing the Maths.. it would be about :
576GB (as you calculated for 1 billion txn a day)+ UTXO database size (orders of magnitude smaller than 0.576TB) + the proof chain size (tiny).. forever.
Whether there would be any point to keeping the TXN history - is debatable..

this seems like a really inefficient way to prune down to UTXO set.  The masterblock would be huge - nodes can just prune if they want.  There are no real savings here, and pruning spent tx on all nodes will cause other issues an lose history e.g. metadata in spent tx.

Standard blockchain pruning, as done in Bitcoin disallows people to start new nodes from pruned nodes.

yes but new nodes synching from a masterblock are gaining the same info as they would from a pruned node. in fact less.
the main issues are i have are:

this is just an ugly way to use blocks - the network has a certain ebb and flow with blocks gradually adding new tx to the chain every 2.5 minutes - shoving everything in a gigantic block once a year is not within the design rationale for such a system - apart from needing an absolutely huge block (an entire year of UTXO in one block) that needs to be propagated and verified, your adding this huge focal point where if that block is attacked the network is stuck

to do this we have to be ok with pruning everything except UTXO. the reason this is optional is there are TX types and metadata that are really needed.  Moving that problem to archive nodes just reduces the security, and how will they be incentivized etc?

Sorry to be a wet wrag, just think this needs a lot more thought and deeper understanding of the architecture.  Maybe one of the core devs can answer better.
Andy

It will increase delay of the Dash network once a year. Ugly ? Yes, a little bit. But it is better than having a multi-petabyte storage array, that even incentivized Masternodes will be unable to afford.

I think special transactions (such as time-locked utxo, masternode tx with 1000.0 DASH output and multisig) should be put into a special "extended space" inside a Masterblock, and special transactions must be marked as valid as long as an address has the required balance.

=========
After all: We have several years to figure out a long-term scalability strategy. But it needs to be solved before Dash, or any crypto-currency for that matter, could become mass adopted by a billion users.
My proposal is one possible solution, maybe even not the best, and I urge everyone to look for solutions, because this problem is critical. But Masterblocks idea is a solution worth keeping in mind, if all else fails.

Ok but right now the highest load we know works is 1MB per block every 10 minutes (excluding Dash testnet which test ok at 4x that and pretty sure we can push that far higher).  How big would the masterblock be?  Could be 1GB for the year on 10GB chain growth?  How is that possibly going to be propagated / verified in a timely / secure fashion, assuming we remove any kind of size limit?  It's also a huge attack service at a given time that can be targetted.  The MB size also scales with the average block size so it would get larger as blocks get larger

But then we need to discern which spent tx to add to the masterblock making it larger

There are more elegant solutions being researched in the space like sharding (although sceptical on that too).  Basically, don't see any elegant solutions to this yet.  Lot of solutions in the space try to improve on Bitcoin efficiency but truth is the core architecture is about as efficient you can get without some radical redesign.
To make this viable, i think you'd need to first show that a masterblock is feasible in itself - size, propagation, verification time, security with such a larger block at predesignated height.  but i'm pretty sure you will find that it's not possible within the architectural limits IIRC.

Hello,
I know I'm new here, but I might have something you want to consider, as you move forward with the concept of "more types of nodes: Archival node, keeping all history of all the previous block chains, and the Full Node, keeping only the current block chain." (@Technologov)...
The idea (more details in the forum post) has to do with speeding up the mixing of coins for Private Send functionality, essentially by flagging transactions on the chain, as already "mixed / private" previously...  Maybe this is a "PrivateSend node" or just identified on the "Archival node" as type private... Regardless... The idea also suggests moving the private send / mixing functionality from the wallet endpoints, to the masternodes which would allow all wallets to PrivateSend, not just the QT in the future....
Anyway, here is the thread on the dash.org forum... It should probably be moved out of the "General Discussion" to the "Development Tech Discussion" for more developer visibility, but I can't do that... :)
https://www.dash.org/forum/threads/masternode-private-send-mixing.14238/
Let me know if you have questions about the ideas... I'm not at the same level as you all are (yet), but I'm on the same Dash team!
Thanks for your time... Cheers!

The idea is good!!
Can anyone add features and create pull here ?
I mean can anyone submit his work by creating pull request or it is only done by team ?

Anyone can submit a patch, that will be reviewed by the Dash Core team.

@joshafest ... Just for clarification is it my idea you think, is good for resolving current issues w/ mixing and private send or the bigger topic @Technologov is proposing... If it's mine, are you considering implementing this pseudo-code?
// So I might be way off base, but somewhere in the dApp lives a 'write' function
// and somewhere their lives a 'read'... If that is true... Maybe something like this
// could be done...

public read(addr) {
   // psAddressRegistry contains all address that are private
   if (addr in psAddressReqistry) {
       addr.trans.obfuscate.sender()
       addr.trans.obfuscate.receiver()
   }
}

public write(addr) {
   addr.trans.do-what-you-do-today()
}

Wishing I had the skills to implement it myself... Just not there anymore... I'm hopeful you can get it done @joshafest !  :)
Cheers!

joezippy: Private send is NOT part of my idea. This idea -- "Masterblocks" -- is squarely targeted at scalability problems, not privacy.

@Technologov not trying to hijack the thread, just clarify @joshafest comment... Cheers!

What I think is .. accept the last checkpoint block as initial block with height and treat it as it was genesis block ...
Problems

one who have coins on much earlier blocks, have no effect of this solution as he has to download whole chain.
-One who want to import private key, have problems.

@Technologov read https://github.com/cyberdust/core-node/wiki/White-Paper


Quick update for the 2 new danish pull-request...

Quick update for the 2 new danish pull-request there adds Danish phone number and postal codes
Add translate for:

phoneDK
postalcodeDK

Needs rebase after we merged #2071 #2070

Moved to #2165 because of GitHub issues


[Unit] Human mech

Here is a very diesel-ish Mech that would perfectly fit the human race : the GP-1 Blackjack by Jeff Churill. A very inspiring model that may lead to a new ground legged unit.
Check the other models of this flickr for more inspiration !

[ ] Concept validation
[ ] Avoidance of the too-much-URSS-style white star
[ ] Modelisation
[ ] Bones and animation
[ ] Importation in the engine

Bi-pedal mechs are a pain to animate though. I would suggest to stick to non-legged ground and flying/floating stuff.

It depends of what you're thinking.
References and mechanic can be found, that's not a problem : https://www.youtube.com/watch?v=C3UdEU0i1BI
For me, the problem is

for organic biped units : how good are handled the bones ? For example, when i work with Unity, i don't have to make a 'start walking' or an 'end walking' anim. i only have to make an 'idle' and a 'walking cycle', and choose if i want to finish the walking cycle or not when the character stop moving. For many games (cartoon ; tactical small units) we make the choice to not finish it. And unity make the transition smooth, because it has a good bone management.
for the walker, it's not visually good if it don't finish his move, especially if it's a heavy walker ; so we need a 'start walking' and an 'end walkin', and a good transition between all legs animations


New version: SymbolicRegression v0.6.7

Registering package: SymbolicRegression
Repository: https://github.com/MilesCranmer/SymbolicRegression.jl
Created by: @MilesCranmer
Version: v0.6.7
Commit: 9f445b0ada65de3ee53dbc35507063d9ff102b54
Reviewed by: @MilesCranmer
Reference: https://github.com/MilesCranmer/SymbolicRegression.jl/commit/9f445b0ada65de3ee53dbc35507063d9ff102b54#commitcomment-52114554

pause

pause

[noblock] (Should be merged now)


How to set "session expiry interval"?

Describe the bug
A clear and concise description of what the bug is.
Does nanomq support the session expiry interval set ?  how to set it ?
Expected behavior
A clear and concise description of what you expected to happen.
Actual Behavior
Describe what occurred.
To Reproduce
If possible include actual reproduction test code here.
Minimal C test cases are perferred.
** Environment Details **

NanoMQ version 0.19.5
Operating system and version
Compiler and language used
testing scenario

Client SDK
If possible include the mqtt sdk you used to connect to nanomq
Minimal C test cases are perferred.
Additional context
Add any other context about the problem here.

@AetheWu
Hi AetheWu,
session expiry interval is a property for the MQTT client.
So there is no place in NanoMQ to set this property.


Implement raft consensus

Raft consensus should be implemented in order for the Bld server to run in high availability mode with other bld servers in a cluster.

@AlkisChristidis Sure thing, I've assigned you the issue. Also I've added it in the v0.5 release board.


"az extension remove" does remove the extension

"This does not delete the extension file downloaded earlier. It only removes it from the running Azure CLI environment."
This is incorrect. az extension remove removes an extension and extension won't be available anymore.

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

ID: 7903204c-ed88-84a5-80f3-7be167a17b44
Version Independent ID: 609d5b05-e109-6e8b-8931-94662a81402f
Content: Run your first query using Azure CLI - Azure Resource Graph
Content Source: articles/governance/resource-graph/first-query-azurecli.md
Service: resource-graph
GitHub Login: @DCtheGeek
Microsoft Alias: dacoulte

@alexandair Thanks for the comment. We are actively investigating on the issue and will get back to you shortly with an update.

#assign:DCtheGeek

@alexandair Thanks for the feedback.  You are correct indeed and I'll update this doc.  Thanks!
@MicrosoftDocs/azure-cxp-triage Please remove existing labels and add 'doc-bug' and #in-progress

For anyone curious at the nuts and bolts (this is how I looked it up and validated), you can see that shutil.rmtree is called from az extension remove.  Thanks again @alexandair!


Angular 17 compatability

Hi, we're very happily using your @ngx-matomo/router and @ngx-matomo/tracker. However it doesn't work on the latest version of Angular 17. Could you please update the project so we can keep using it?

Hi @erwindemoel
Thank you for using this project!
Good news is it’s already compatible with Angular 17!
As stated at the top of README, it has been renamed since version 5 (and Angular 15/16).
It is now distributed as a single package named ngx-matomo-client, and you can easily migrate to this new package.
Basically, you just have to run ng add ngx-matomo-client.
This will install new package and remove old ones, as well as migrate all typescript imports in your code. See full instructions in README.
Please let me know if you have any problem doing this migration, I would be happy to help.

Hi @erwindemoel, is your issue solved?

Yes, thanks!


Disable checking DS dependencies

Unblocking CI on master
Currently checking the DS dependencies (node graph) is falling over causing the build stage to fail.

Codecov Report

Merging #9054 into master will decrease coverage by 0.34%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #9054      +/-   ##
==========================================
- Coverage   57.07%   56.73%   -0.35%
==========================================
  Files         551      551
  Lines       29075    29075
  Branches     4392     4386       -6
==========================================
- Hits        16596    16497      -99
- Misses      11573    11671      +98
- Partials      906      907       +1

Impacted Files
Coverage Δ

src/client/testing/serviceRegistry.ts
49.09% <0%> (-47.28%)
:arrow_down:

src/client/testing/codeLenses/main.ts
40% <0%> (-30%)
:arrow_down:

src/datascience-ui/interactive-common/tokenizer.ts
35% <0%> (-30%)
:arrow_down:

src/client/datascience/jupyter/jupyterUtils.ts
64.7% <0%> (-29.42%)
:arrow_down:

...t/datascience/jupyter/jupyterDataRateLimitError.ts
50% <0%> (-25%)
:arrow_down:

src/client/formatters/serviceRegistry.ts
75% <0%> (-25%)
:arrow_down:

src/datascience-ui/native-editor/redux/store.ts
75% <0%> (-25%)
:arrow_down:

src/datascience-ui/history-react/redux/store.ts
75% <0%> (-25%)
:arrow_down:

src/datascience-ui/react-common/arePathsSame.ts
37.5% <0%> (-25%)
:arrow_down:

...ience/jupyter/jupyterDebuggerRemoteNotSupported.ts
60% <0%> (-20%)
:arrow_down:

... and 14 more

Continue to review full report at Codecov.

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


custom FETCHCONTENT_BASE_DIR bug fix

Fixes a bug related to incorrect paths when automatically loading hwloc.
If the path for downloaded projects is FETCHCONTENT_BASE_DIR
has been changed, then the existing cmake script points to a non-existent folder, since hwloc will be loaded to another location.

Can one of the admins verify this patch?

Also, please address the cmake-format issue reported (see https://gist.github.com/hkaiser/debb4ce2e5cf64722db0f49c90cee01a)

Since cmake does not provide a single variable for all occasions, I decided to create a condition. If a special path was specified, then use it, otherwise, what was initially specified in the code (default path).

Congratulations, your first PR to the HPX repository has just been merged! As a 'thank you' we offer a free STE||AR-Group t-shirt to all of our first-time contributors. If you are interested in receiving one, please get back to me directly so we can set up the delivery.


Can't download data

What happened?
I have problems when using the fuction download.download_and_transform. It works when I try to download data that my coworker has already downloaded but if I change the start/end time outside that range, it does not work.
Minimal Complete Verifiable Example
# Time
start = "1997-01"
stop = "2001-01" #<----IT DOES NOT WORK WHEN I TRY TO DOWNLOAD INFORMATION ABOVE 2000

# Region
lon_slice = slice(-92.10, -84.80)
lat_slice = slice(46.30, 49.00)

# Variable
varname = "lake_surface_water_temperature"
collection_id = "satellite-lake-water-temperature"
request = {
    "version": "4.0",
    "variable": "all",
    "format": "zip",
}
def spatial_weighted_mean_of_region(ds, lon_slice, lat_slice, varname):
    ds = ds[[varname]]
    ds = utils.regionalise(ds, lon_slice=lon_slice, lat_slice=lat_slice)
    ds = diagnostics.spatial_weighted_mean(ds)
    return ds
chunks = {"year": 1, "month": 1}
requests = download.update_request_date(
    request, start=start, stop=stop, stringify_dates=True
)
ds = download.download_and_transform(
    collection_id,
    requests,
    chunks=chunks,
    transform_func=spatial_weighted_mean_of_region,
    transform_func_kwargs={
        "lon_slice": lon_slice,
        "lat_slice": lat_slice,
        "varname": varname,
    },
)

Relevant log output
76%|███████▌  | 37/49 [00:01<00:00, 36.54it/s]2024-10-25 07:51:26,475 INFO [2024-09-28T00:00:00] **Welcome to the New Climate Data Store (CDS)!** This new system is in its early days of full operations and still undergoing enhancements and fine tuning. Some disruptions are to be expected. Your
[feedback](https://jira.ecmwf.int/plugins/servlet/desk/portal/1/create/202) is key to improve the user experience on the new CDS for the benefit of everyone. Thank you.
2024-10-25 07:51:26,476 WARNING [2024-09-26T00:00:00] Should you have not yet migrated from the old CDS system to the new CDS, please check our [informative page](https://confluence.ecmwf.int/x/uINmFw) for guidance.
2024-10-25 07:51:26,477 INFO [2024-09-26T00:00:00] Watch our [Forum](https://forum.ecmwf.int/) for Announcements, news and other discussed topics.
2024-10-25 07:51:26,477 INFO [2024-09-16T00:00:00] Remember that you need to have an ECMWF account to use the new CDS. **Your old CDS credentials will not work in new CDS!**
2024-10-25 07:51:26,477 WARNING [2024-06-16T00:00:00] CDS API syntax is changed and some keys or parameter names may have also changed. To avoid requests failing, please use the "Show API request code" tool on the dataset Download Form to check you are using the correct syntax for your API request.
2024-10-25 07:51:26,902 INFO [2024-09-28T00:00:00] **Welcome to the New Climate Data Store (CDS)!** This new system is in its early days of full operations and still undergoing enhancements and fine tuning. Some disruptions are to be expected. Your
[feedback](https://jira.ecmwf.int/plugins/servlet/desk/portal/1/create/202) is key to improve the user experience on the new CDS for the benefit of everyone. Thank you.
2024-10-25 07:51:26,903 WARNING [2024-09-26T00:00:00] Should you have not yet migrated from the old CDS system to the new CDS, please check our [informative page](https://confluence.ecmwf.int/x/uINmFw) for guidance.
2024-10-25 07:51:26,904 INFO [2024-09-26T00:00:00] Watch our [Forum](https://forum.ecmwf.int/) for Announcements, news and other discussed topics.
2024-10-25 07:51:26,904 INFO [2024-09-16T00:00:00] Remember that you need to have an ECMWF account to use the new CDS. **Your old CDS credentials will not work in new CDS!**
2024-10-25 07:51:26,905 WARNING [2024-06-16T00:00:00] CDS API syntax is changed and some keys or parameter names may have also changed. To avoid requests failing, please use the "Show API request code" tool on the dataset Download Form to check you are using the correct syntax for your API request.
 76%|███████▌  | 37/49 [00:02<00:00, 14.10it/s]
---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
Cell In[25], line 5
      1 chunks = {"year": 1, "month": 1}
      2 requests = download.update_request_date(
      3     request, start=start, stop=stop, stringify_dates=True
      4 )
----> 5 ds = download.download_and_transform(
      6     collection_id,
      7     requests,
      8     chunks=chunks,
      9     transform_func=spatial_weighted_mean_of_region,
     10     transform_func_kwargs={
     11         "lon_slice": lon_slice,
     12         "lat_slice": lat_slice,
     13         "varname": varname,
     14     },
     15 )

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/c3s_eqc_automatic_quality_control/download.py:614, in download_and_transform(collection_id, requests, chunks, split_all, transform_func, transform_func_kwargs, transform_chunks, n_jobs, invalidate_cache, cached_open_mfdataset_kwargs, quiet, **open_mfdataset_kwargs)
    607             cacholote.delete(
    608                 func.func, *func.args, request_list=[request], **func.keywords
    609             )
    610         with (
    611             cacholote.config.set(return_cache_entry=True),
    612             _set_env(tqdm_disable=True),
    613         ):
--> 614             sources.append(func(request_list=[request]).result["args"][0]["href"])
    615     ds = xr.open_mfdataset(sources, **cached_open_mfdataset_kwargs)
    616 else:
    617     # Cache final dataset transformed

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/cacholote/cache.py:102, in cacheable.<locals>.wrapper(*args, **kwargs)
     99                 warnings.warn(str(ex), UserWarning)
    100                 clean._delete_cache_entries(session, cache_entry)
--> 102 result = func(*args, **kwargs)
    103 cache_entry = database.CacheEntry(
    104     key=hexdigest,
    105     expiration=settings.expiration,
    106     tag=settings.tag,
    107 )
    108 try:

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/c3s_eqc_automatic_quality_control/download.py:436, in _download_and_transform_requests(collection_id, request_list, transform_func, transform_func_kwargs, **open_mfdataset_kwargs)
    429 def _download_and_transform_requests(
    430     collection_id: str,
    431     request_list: list[dict[str, Any]],
   (...)
    434     **open_mfdataset_kwargs: Any,
    435 ) -> xr.Dataset:
--> 436     sources = get_sources(collection_id, request_list)
    437     preprocess = functools.partial(
    438         _preprocess,
    439         collection_id=collection_id,
    440         preprocess=open_mfdataset_kwargs.pop("preprocess", None),
    441     )
    443     grib_ext = (".grib", ".grb", ".grb1", ".grb2")

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/c3s_eqc_automatic_quality_control/download.py:349, in get_sources(collection_id, request_list)
    347 disable = os.getenv("TQDM_DISABLE", "False") == "True"
    348 for request in tqdm.tqdm(request_list, disable=disable):
--> 349     sources.update(retrieve(collection_id, request))
    350 return list(sources)

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/c3s_eqc_automatic_quality_control/download.py:339, in retrieve(collection_id, request)
    334 def retrieve(collection_id: str, request: dict[str, Any]) -> list[str]:
    335     with cacholote.config.set(
    336         return_cache_entry=False,
    337         io_delete_original=True,
    338     ):
--> 339         return [file.path for file in _cached_retrieve(collection_id, request)]

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/cacholote/cache.py:102, in cacheable.<locals>.wrapper(*args, **kwargs)
     99                 warnings.warn(str(ex), UserWarning)
    100                 clean._delete_cache_entries(session, cache_entry)
--> 102 result = func(*args, **kwargs)
    103 cache_entry = database.CacheEntry(
    104     key=hexdigest,
    105     expiration=settings.expiration,
    106     tag=settings.tag,
    107 )
    108 try:

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/c3s_eqc_automatic_quality_control/download.py:324, in _cached_retrieve(collection_id, request)
    322 if NOCACHE:
    323     request = request | {"nocache": datetime.datetime.now().isoformat()}
--> 324 ds = earthkit.data.from_source("cds", collection_id, request, prompt=False)
    325 if isinstance(ds, ShapeFileReader) and hasattr(ds._parent, "_path_and_parts"):
    326     # Do not unzip vector data
    327     sources = [ds._parent._path_and_parts]

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/earthkit/data/sources/__init__.py:150, in from_source(name, lazily, *args, **kwargs)
    147     return from_source_lazily(name, *args, **kwargs)
    149 prev = None
--> 150 src = get_source(name, *args, **kwargs)
    151 while src is not prev:
    152     prev = src

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/earthkit/data/sources/__init__.py:131, in SourceMaker.__call__(self, name, *args, **kwargs)
    128     klass = find_plugin(os.path.dirname(__file__), name, loader)
    129     self.SOURCES[name] = klass
--> 131 source = klass(*args, **kwargs)
    133 if getattr(source, "name", None) is None:
    134     source.name = name

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/earthkit/data/core/__init__.py:22, in MetaBase.__call__(cls, *args, **kwargs)
     20 obj = cls.__new__(cls, *args, **kwargs)
     21 args, kwargs = cls.patch(obj, *args, **kwargs)
---> 22 obj.__init__(*args, **kwargs)
     23 return obj

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/earthkit/data/sources/cds.py:126, in CdsRetriever.__init__(self, dataset, prompt, *args, **kwargs)
    123 nthreads = min(self.settings("number-of-download-threads"), len(self.requests))
    125 if nthreads < 2:
--> 126     self.path = [self._retrieve(dataset, r) for r in self.requests]
    127 else:
    128     with SoftThreadPool(nthreads=nthreads) as pool:

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/earthkit/data/sources/cds.py:126, in <listcomp>(.0)
    123 nthreads = min(self.settings("number-of-download-threads"), len(self.requests))
    125 if nthreads < 2:
--> 126     self.path = [self._retrieve(dataset, r) for r in self.requests]
    127 else:
    128     with SoftThreadPool(nthreads=nthreads) as pool:

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/earthkit/data/sources/cds.py:140, in CdsRetriever._retrieve(self, dataset, request)
    137     self.source_filename = cds_result.location.split("/")[-1]
    138     cds_result.download(target=target)
--> 140 return_object = self.cache_file(
    141     retrieve,
    142     (dataset, request),
    143     extension=EXTENSIONS.get(request.get("format"), ".cache"),
    144 )
    145 return return_object

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/earthkit/data/sources/__init__.py:68, in Source.cache_file(self, create, args, **kwargs)
     65 if owner is None:
     66     owner = re.sub(r"(?!^)([A-Z]+)", r"-\1", self.__class__.__name__).lower()
---> 68 return cache_file(owner, create, args, **kwargs)

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/earthkit/data/core/caching.py:1053, in cache_file(owner, create, args, hash_extra, extension, force, replace)
   1051 with FileLock(lock):
   1052     if not os.path.exists(path):  # Check again, another thread/process may have created the file
-> 1053         owner_data = create(path + ".tmp", args)
   1054         os.rename(path + ".tmp", path)
   1055 try:

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/earthkit/data/sources/cds.py:136, in CdsRetriever._retrieve.<locals>.retrieve(target, args)
    135 def retrieve(target, args):
--> 136     cds_result = self.client().retrieve(args[0], args[1])
    137     self.source_filename = cds_result.location.split("/")[-1]
    138     cds_result.download(target=target)

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/cads_api_client/legacy_api_client.py:164, in LegacyApiClient.retrieve(self, name, request, target)
    162 submitted: Remote | Results
    163 if self.wait_until_complete:
--> 164     submitted = self.logging_decorator(self.client.submit_and_wait_on_results)(
    165         collection_id=name,
    166         **request,
    167     )
    168 else:
    169     submitted = self.logging_decorator(self.client.submit)(
    170         collection_id=name,
    171         **request,
    172     )

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/cads_api_client/legacy_api_client.py:147, in LegacyApiClient.logging_decorator.<locals>.wrapper(*args, **kwargs)
    142 @functools.wraps(func)
    143 def wrapper(*args: Any, **kwargs: Any) -> Any:
    144     with LoggingContext(
    145         logger=processing.LOGGER, quiet=self.quiet, debug=self._debug
    146     ):
--> 147         return func(*args, **kwargs)

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/cads_api_client/api_client.py:454, in ApiClient.submit_and_wait_on_results(self, collection_id, **request)
    438 def submit_and_wait_on_results(
    439     self, collection_id: str, **request: Any
    440 ) -> cads_api_client.Results:
    441     """Submit a request and wait for the results to be ready.
    442
    443     Parameters
   (...)
    452     cads_api_client.Results
    453     """
--> 454     return self._retrieve_api.submit(collection_id, **request).make_results()

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/cads_api_client/processing.py:711, in Processing.submit(self, collection_id, **request)
    710 def submit(self, collection_id: str, **request: Any) -> Remote:
--> 711     return self.get_process(collection_id).submit(**request)

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/cads_api_client/processing.py:306, in Process.submit(self, **request)
    294 def submit(self, **request: Any) -> cads_api_client.Remote:
    295     """Submit a request.
    296
    297     Parameters
   (...)
    304     cads_api_client.Remote
    305     """
--> 306     job = Job.from_request(
    307         "post",
    308         f"{self.url}/execution",
    309         json={"inputs": request},
    310         **self._request_kwargs,
    311     )
    312     return job.make_remote()

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/cads_api_client/processing.py:147, in ApiResponse.from_request(cls, method, url, headers, session, retry_options, request_options, download_options, sleep_max, cleanup, log_messages, **kwargs)
    142 response = robust_request(
    143     method, url, headers=headers, **request_options, **kwargs
    144 )
    145 LOGGER.debug(f"REPLY {response.text}")
--> 147 cads_raise_for_status(response)
    149 self = cls(
    150     response,
    151     headers=headers,
   (...)
    157     cleanup=cleanup,
    158 )
    159 if log_messages:

File /data/common/miniforge3/envs/wp5/lib/python3.11/site-packages/cads_api_client/processing.py:84, in cads_raise_for_status(response)
     77     else:
     78         message = "\n".join(
     79             [
     80                 f"{response.status_code} Client Error: {response.reason} for url: {response.url}",
     81                 error_json_to_message(error_json),
     82             ]
     83         )
---> 84         raise requests.HTTPError(message, response=response)
     85 response.raise_for_status()

HTTPError: 400 Client Error: Bad Request for url: https://cds.climate.copernicus.eu/api/retrieve/v1/processes/satellite-lake-water-temperature/execution
invalid request
Request has not produced a valid combination of values, please check your selection.
{'day': ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31'], 'month': '02', 'variable': 'all', 'version': '4.0', 'year': '2000'}

Anything else we need to know?
I am running on the VM as trigoso_camila.
Beacuse I could not figure out what was wrong I created an account in CDS with the following email<EMAIL_ADDRESS>I have the .cdsapirc in my laptop and have accepted the terms and conditions to download on this account and I was able to download from the website, but I can't dowload using the c3s_eqc_automatic_quality_control library.
I copied my  .cdsapirc to the server using  scp -r "C:\Users\Camila Trigoso.cdsapirc" wp5@<IP_ADDRESS>:/data/wp5/trigoso_camila/LakeSurfaceTemperature/data/, because initially it told me the problem was I did not have the license. But then I got error :
HTTPError: 400 Client Error: Bad Request for url: https://cds.climate.copernicus.eu/api/retrieve/v1/processes/satellite-lake-water-temperature/execution
invalid request
Request has not produced a valid combination of values, please check your selection.
{'day': ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31'], 'month': '02', 'variable': 'all', 'version': '4.0', 'year': '2000'}
Environment

It looks like a breaking change in the new CDS (Cristina used the legacy CDS as the new CDS has been recently announced).
The problem is that February does not have 31 days. You should be able to use larger chunks as this data is not too big, which hopefully will fix the problem.
Can you try running the same code but using chunks = {"year": 1}?
Let me know!

It still did not work changing the chunks but then I changed the request to:
request = {
"variable": "all",
"year": [
"1997", "1998", "1999",
"2000", "2001"
],
"month": [
"01", "02", "03",
"04", "05", "06",
"07", "08", "09",
"10", "11", "12"
],
"day": [
"01", "02", "03",
"04", "05", "06",
"07", "08", "09",
"10", "11", "12",
"13", "14", "15",
"16", "17", "18",
"19", "20", "21",
"22", "23", "24",
"25", "26", "27",
"28", "29", "30",
"31"
],
"version": ["4_0"]
}
It worked like that. Thank you!

OK. If you are going to use complete years only, yes that should work fine.
Is this the template you are working on? https://github.com/bopen/c3s-eqc-toolbox-template/blob/main/notebooks/wp5/lake_water_temperature_outlier_detection.ipynb
If yes, I will update it with this change so you can start from there. I just need to make a couple of minor improvements (e.g., parametrise the year start/stop, chunk over years, ...)

Yes, I started working with that template. However, because I had a lot of problems I already downloaded the data from the CDS webpage directly. I downloaded July, August and September from 1995 to 2023 and now I am working with that data directly.

You can't do that as the notebook must be reproducible. I will update the template and cache the data for you.
I will let you know when it's ready on the VM.

Do you only need July, August and September from 1995 to 2023?
I.e., we don't need to download the whole year. Is that right?

Exactly, it is not necessary to download the whole year.

Should you use 4.5.2? I got this message from the API:

An issue was identified in version 4.5 of this dataset. Version 4.5.2 contains correct data for the data period after 01/01/2021. Please see the Known issues table in the Documentation tab for more information.

You are rigth, my mistake. Only 4.5.2 is available for 2023. Version 4.5 is available for 2020 to 2022 ,so I used those

Sorry, I'm a little confused. The problem is that 4_5 has corrupted data after 2021.
Do you have to use 4_0, or can we just do this?

4_5 from 1995 to 2020
4_5_2 from 2021 to 2023

Yes, using:
4_5 from 1995 to 2020
4_5_2 from 2021 to 2023
is ok. I did not kanow 4.5 had corrupted data, sorry.

@camila-trigoso The notebook you're running on the VM is consuming a lot of memory. I'm attempting to cache your data, but I'm running out of memory because of that. Could you pause development for a few hours so I can complete the caching? Also, using cdsapi directly isn't ideal, as it bypasses caching. Once I’ve finished, I'll send you the new version of the template so you can resume work.

Yes, I will pause now. I uploaded the data that I downloaded from the CDS to my user trigoso_camila. Perhaps that is what is using a lot of memory, should I delete it? It is in /data/wp5/trigoso_camila/LakeSurfaceTemperature/data/

Yes, although that affects storage, not memory.
Don't worry about it for now. Let me cache the template, if everything works as expected you can clean up your personal directory.

Ok, then I'll wait until you tell me to go back in. Thank you!

Thank you @malmans2 ! It worked :)

Great! I'm closing this issue. Feel free to re-open it if you need further help.


[in progress] Metadata

A registry supporting external metadata storage.

Maybe a rebase would make it easier to tell which parts of the code could be split apart into a separate PR to happen first.


Save workshop finishing date in the database

Solves #474

How can I test that the modification in frontend models is working fine?
How do I know if the variable should start with capital letter WorkshopCompleteDate (backend) or not workshopCompleteDate (frontend)?

Is there a way to avoid showing the date if it is 01/01/1 (the default value)?

This is when the evaluation is completed (correct):

In this case we have the default value (the evaluation is not completed), but the default value is 01/01/1.

The nullable behaviour is implemented with the suggestion of @achaikou.
A test with non-complete evaluation:

A test with completed evaluation:

Before merging, I plan to rebase and remove the modifications in the commit "Copy modifs from equinor#430". This was only used to be able to test.

It also misses the migration files. Check Erlend's PR and the Readme.md.

A new commit addressing Alena's review is there.
If the modifications are fine, I plan to rebase only with the three previous commits.
I guess it is not necessary to do the migration again, since the changes where not in the database fields. Is it correct?

OK, feel free to do clean rebase, will approve right after :+1: . I trust Kristian that migrations are good :)

One small request for future: please don't resolve issues started by me. (Don't know what other think about that).
It makes more sense for reviewer to see if their changes were addressed as intended/acceptable and resolve them themself.

Your fixups as "Alena's review" are fine, but if you have several commits then you can use pure fixups.
(should also be easily available in any GIT-GUI: choose commit - click fixup - done.
When you rebase, they will automatically apply to the commit they refer to, without manual step of squashing.)

Also not sure why you want 3 commits, not 2. Do you believe migrations are not part of your main commit?

Small addition to our "exceptions" discussion (I do not expect any changes with regards to it)
Apparently C# has something called Contracts.
It allows writing checks aka preconditions in even better way

  Contract.Requires(evaluation.WorkshopCompleteDate == null);
  Contract.Requires(evaluation.Progression == Progression.FollowUp, "here goes the message if we want to");

  evaluation.WorkshopCompleteDate = DateTimeOffset.UtcNow;

However they seem to require additional modules to actually check stuff in runtime and doesn't seem to be worth dealing with it as if-throw works well.

Never let me sit too long on the review, I will find new things to complain about... :facepalm:

Small thing (and not for this PR) : we now have 2 different formats in the application

your changes print date in "local" datetime format (which I believe is good). I don't know what format I have on my machine, but it happens to show the difference:
Workshop completed: 8/12/2021
On Follow up/Actions tab Due date is displayed in the same format: 8/12/2021

But if you do Add Action (or Edit action) - and see date in the calendar chooser, it would be 12/08/2021.
This is caused by fusion enforcing this format

Now it is kinda fine, as we use fusion date only in the date picker, but if we have in the future some bigger mix of fusion/local dates this can lead to certain confusion.
We might want to mention it to Nina and figure out if we want consistency.

/azp run Cypress E2E

/azp run

/azp run Cypress E2E

Closes #430


hi, how to train to process subtitle images? Any pretrained models<EMAIL_ADDRESS>Want to get clearn white background, black characters in image

hi, how to train to process subtitle images? Any pretrained models<EMAIL_ADDRESS>Want to get clearn white background, black characters in image

fine to generate image and masks to train.
Try to train several days.


Use rocky8 instead of centos7 to build the image, xfs has compatibility errors

Compatibility issues related to xfs v4 and v5. The v5 file system (rocky) is not supported on v4 systems (centos 7, 8). may need to add some parameters.

Maybe we can use the advantages of privileged containers to hand over the file system formatting and mounting to the host. Or recompile a rocky image with a lower version of the file system @SSmallMonster @FloatXD


Type-unstable similar and copy

For example, doing code_warntype(copy, (Images.Image{Float64,2,Array{Float64,2}},)), yields an abstract ::Images.Image{T,N,A<:AbstractArray{T,N}} return type.
This also happens with the similar method, and seems to be due to a type-unstable Image constructor.

I've around this and it seems the type-unstability resumes to line https://github.com/timholy/Images.jl/blob/master/src/core.jl#L14 ,
and more concretely to the ndims return value which, unlike eltype and typeof, doesn't allow full type inference of the new Image object...

And this seems to be an upstream issue:
type X{T}; end
f(x) = X{ndims(x)}()
code_warntype(f, (Array{Int,2},))

returns
Variables:
  x::Array{Int64,2}

Body:
  begin  # none, line 1:
      return call((top(apply_type))(Main.X,2)::Type{_<:X{T}})::X{T}
  end::X{T}

Does anyone knows if this is something already discussed in Julia list or issues?

It's due to this:
julia> @inferred(deepcopy(img.properties))
ERROR: return type Dict{ASCIIString,Any} does not match inferred return type Any
 in error at ./error.jl:21

which is used in Images' copy function. We use it because of this:
julia> p = Dict{ASCIIString,Any}("Hi" => rand(2,2))
Dict{ASCIIString,Any} with 1 entry:
  "Hi" => 2x2 Array{Float64,2}:…

julia> pointer(p["Hi"])
Ptr{Float64} @0x00007fbccb82b760

julia> pc = copy(p)
Dict{ASCIIString,Any} with 1 entry:
  "Hi" => 2x2 Array{Float64,2}:…

julia> pointer(pc["Hi"])
Ptr{Float64} @0x00007fbccb82b760

https://github.com/JuliaLang/julia/pull/13323

There may be different causes for the issue at each method. For the similar method the problem is in the Image constructor  (https://github.com/timholy/Images.jl/issues/356#issuecomment-139681364) due to the unstability of ndims  which suffers from an inference bug already reported: https://github.com/JuliaLang/julia/issues/13082.
There is a workaround for that, and I should have already proposed a PR:
Replacing  line https://github.com/timholy/Images.jl/blob/master/src/core.jl#L14
with
Image{n}(data::AbstractArray{n}, props::Dict) = Image{eltype(data),n,typeof(data)}(data,props)

will fix similar method (and probably other methods too).


Search Marketplace button for missing notebook renderer doesn't work as expected

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.68-insider
OS Version: Windows 11

Steps to Reproduce:

Uninstall the Microsoft notebook renderers extension
Open https://insiders.vscode.dev/github/greazer/covid-19-data/blob/master/SampleNbsAndScripts/myanalysis_plotly.ipynb#C15
Click on the Search Marketplace button
:bug: no results for the query specified
However, if I install the Microsoft notebook renderers extension and reload the page, that same cell output now renders correctly, so that extension should have appeared in the search results

It's strange that @tag:notebookRenderer image/gif works but the custom one doesn't. @sandy081 do you think this is something marketplace team can fix?

what do you mean by custom one doesn't. As far I can see, @tag:notebookRenderer image/gif works because one of the extensions has gif in the description, where as with the reported search term, there are no matches for application... term.


pattern matching callbacks support

i.e. https://github.com/plotly/dash/pull/1103/ but for R

Feature being added in plotly/dashr#228, documentation will be updated in dash-docs branch 189-wildcard-docs.


Try to match heatmap scale to bed dimensions

The heatmap scale currently covers approximately -1 to +7 on x and y, while the print area is  approximately 20 x 25cm.

An overlay showing the bed outline and/or screw locations would be even better :)

I think we can adjust the size ratio using matplotlib, and could probably use matplotlib to put points on there as well for screws. Probably need to get a concrete answer from Prusa folks on the G81 output though. They return a 7x7 matrix, but we know the bed is a 3x3 matrix. The above looks smooth because of the spline16 filter, here's what the unfiltered output looks like:

I assume in the above 7x7 grid, that the screws will be squares will be the centers and corners respectively; however, aren't the mesh leveling points offset from these? Just curious if we put the screw dots on there, where exactly we need to put them to not convey false information to the end user. Maybe we should put both screws and sensor points? :)

A quick look at the firmware shows https://github.com/prusa3d/Prusa-Firmware/blob/MK2/Firmware/mesh_bed_leveling.cpp#L100
And a comment in main.cpp saying bilinear interpolation from 3x3 to 7x7 points while using the same array z_values[iy][ix] for storing (just coppying measured data to new destination and interpolating between them)

And I think https://github.com/prusa3d/Heatbed_MK52_magnetic/blob/master/24V_05d/Heatbed-MK52.png shows the locations of the probe points

Looking at the 3x3 interpolation some more, the 3x3 matrix
a1 a2 a3
b1 b2 b3
c1 c2 c3

becomes
a1 x x a2 x x a3
x  x x x  x x x
x  x x x  x x x
b1 x x b2 x x b3
x  x x x  x x x
x  x x x  x x x
c1 x x c2 x x c3

And the points are defined as following
// Positions of the bed reference points in the machine coordinates, referenced to the P.I.N.D.A sensor.
// The points are ordered in a zig-zag fashion to speed up the calibration.
const float bed_ref_points[] PROGMEM = {
    13.f  - BED_ZERO_REF_X,   6.4f - BED_ZERO_REF_Y,
    115.f - BED_ZERO_REF_X,   6.4f - BED_ZERO_REF_Y,
    216.f - BED_ZERO_REF_X,   6.4f - BED_ZERO_REF_Y,

    216.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y,
    115.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y,
    13.f  - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y,

    13.f  - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y,
    115.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y,
    216.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y
};

Doing a G80 with a hot extruder will leave small PLA blobs at the probe points. Using those and a ruler,  the locations match the grid coordinates printed on the bed, which matches the one printed on the steel sheet.
So
a1 a2 a3
b1 b2 b3
c1 c2 c4

maps to
(13,6.4)    (115,6.4)    (216,6.4)
(13,104.4)  (115,104.4)  (216,104.4)
(13,204.4)  (115,204.4)  (216,204.4)

Matplotlib sadly doesn't support image operations nor scaling of heatmaps, so image magick to the rescue:
#!/bin/bash

convert heatmap.png -crop 368x360+108+59 map.png
convert map.png  -resize "792x664!" -quality 100 map-scaled.png
convert mk52.png \( map-scaled.png -alpha set -channel a -evaluate set 90% \) -geometry  +20+102 -composite blend.png

rm -f map.png map-scaled.png map-legend.png

The matplotlib docs include examples of image manipulation using Pillow, but I haven't looked into that yet.
Background image used:

Much work has been done on this, closing as this issue is far out of date with the plugin's current form.


[Feature][CDC] Support MongoDB CDC running on flink

close #5465

Purpose of this pull request

Does this PR introduce any user-facing change?

How was this patch tested?

Check list

[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[ ] Update the release-note.

@hailin0 cc


Custom colour

Is there a way to set a custom colour for a tag?  I didn't see anything of that sort in the ChipView or ChipAdapter classes.

Yea you can create a custom adapter that extends ChipAdapter and edit/override the createChip() method. createChip() expects a view so you can populate it with your own. If you need help I'd be happy to walk you through how to do it!


Update daffodil-site as vscode extension 1.0.0 was released.

I am not sure if that would be necessary since we don't do it for Daffodil. However, once we start also publishing to the VS Code Marketplace then the latest is always installed, usually you will need to reload VS Code for it to update, but then if you want a older version of the extension you will need to go to the downloads page and download the VSIX file.

I know there's no previous daffodil-vscode release which needs its distribution links updated, but should the daffodil-vscode directory have a symbolic link called "latest" pointing to the latest release of daffodil-vscode?

The latest symlink that daffodil uses is just for documentation:
https://daffodil.apache.org/docs/latest/javadoc/
We don't currently do the same thing for releases.

@stevedlawrence Is this good to merge I will send out the announcement after I merge this in

Ah, I now see why you removed the "VS Code Extension", since we use the title in places where we want to show just the number. But we do want VS Code Extension in some places...
What if you switch back to just the version number in the title like you had and then we have this change:
diff --git a/site/_includes/themes/apache/_navigation.html b/site/_includes/themes/apache/_navigation.html
index 1205789..39050f9 100644
--- a/site/_includes/themes/apache/_navigation.html
+++ b/site/_includes/themes/apache/_navigation.html
@@ -63,7 +63,7 @@
 {% else %}

-
{% if page.collection == "releases" %}{% if page.apache %}Apache {% endif %}Daffodil {% endif %}{{ page.title }}

+
{% if page.collection == "releases" %}{% if page.apache %}Apache {% endif %}Daffodil {% endif %}{% if page.collection == "vscode" %}VS Code Extension {% endif %}{{ page.title }}

 {% endif %}
diff --git a/site/_includes/themes/apache/default.html b/site/_includes/themes/apache/default.html
index 3adc99a..9f68b90 100644
--- a/site/_includes/themes/apache/default.html
+++ b/site/_includes/themes/apache/default.html
@@ -2,7 +2,7 @@

     <meta charset="utf-8">
-    <title>Apache Daffodil | {{ page.title }}</title>
+    <title>Apache Daffodil | {% if page.collection == "vscode" %}VS Code Extension {% endif %}${{ page.title }}</title>
     {% if page.description %}<meta name="description" content="{{ page.description }}">{% endif %}
     <meta name="author" content="{{ site.author.name }}">

Not tested, but the idea is that the title variable is just the version number like you had before, and the places where we display that version number (the  tag and the page header) and want more than just the version we special case and add the VS Code Extension string.
It's a big hacky, but minimizes changes.

Minor, but found another place where VS Code Extension is needed:
diff --git a/site/_layouts/vscode.html b/site/_layouts/vscode.html
index d21f4d6..3cbe28c 100644
--- a/site/_layouts/vscode.html
+++ b/site/_layouts/vscode.html
@@ -5,9 +5,9 @@ permalink: /vscode/release-notes-:title

 {% unless page.released %}

-    Apache Daffodil {{ page.title }} has not yet been released! The artifacts
+    Apache Daffodil VS Code Extension {{ page.title }} has not yet been released! The artifacts
     and release notes below are drafts for a proposed release of Apache
-    Daffodil which has not yet occurred.
+    Daffodil VS Code Extension which has not yet occurred.

 {% endunless %}

@stevedlawrence Both those changes mentioned above should be there now. If it looks good let me know I will squash before merging

+1 :+1:  looks good to squash and merge

Note sure how it happened, but it looks like I accidentally added a $ too the title, I'll open a PR to fix it.


Citations Not Clickable on Android

About this issue
We are experiencing an issue with the markdown library on Android, where the citations it renders are not clickable. Despite our extensive efforts to troubleshoot and resolve the problem, we have not been successful. We have ensured that our use of the library aligns with the guidance provided in the Usage section of the README.md and example apps.
Steps to Reproduce

Integrate the library into an Android project as per the instructions in the README.md.
Observe that the citations do not behave as clickable links.

Expected Behavior
The citations should be rendered as clickable links, allowing users to navigate to the referenced sources.
Below is an example of our UI.

Details

[x] Used library version
[x] Used platform

Checklist

[x] Searched for similar issues
[x] Checked out the sample application
[x] Read the README
[x] Checked out the CHANGELOG
[x] Read the FAQ
[x] Checked out the MIGRATION GUIDE

Can you please provide a short code example to reproduce this issue?

Maybe the problem is that the citations are local document hrefs and you need to implement click handler to scroll the view to the reference?

@chokokatana thanks for the additional input. Didn't think of that.
@StarMobileDev can you please confirm if this is the behavior you expect? or the links are pointing to external sources?

Closing due to inactivity. please re-open if still relevant


Rules use dev profile

This is causing issues when running the image and defining different rules pointing to the same DB.

Just to be clear with the issue description, when pointing to the same table in the same DB. Since the properties define a rule automatically.

Thanks @jabolina


[Compute] Incorrect API description in Google Cloud Compute Java Client API document/InstanceClient

In the Cloud Compute Java Client API document - InstanceClient, The example uses ProjectZoneInstanceName in a wrong way as:

ProjectZoneInstanceName instance = ProjectZoneInstanceName.of("[PROJECT]", "[ZONE]", "[INSTANCE]");

According to ProjectZoneInstanceName's document and source code, this should be:

ProjectZoneInstanceName instance = ProjectZoneInstanceName.of("[INSTANCE]", "[PROJECT]", "[ZONE]");

It will be great if you can fix this.

Closing this issue as we no longer support "ProjectZoneInstanceName" in the current library version.
Please feel free to re-open if there are follow-up questions.


Updating typo in what is virtual dom page

Hi,
While reading at documentation for What is the Virtual DOM I have seen a typo for which I am creating this PR.
Thanks.

"people sometimes say it to mean different things" is perfectly fine. Thank you for the effort!


Disable all pylint checks that we want to fix

This commit will allow us to make progress on the pylint issues we would
like to fix, while allowing users to commit new code that may fail some
of these. What ends up happening is that new code can be merged by other
users, and if precommit is not run in CI, we might accidentally allow a
pylint violation to sneak back in. Removing the pylint check in the
branch/PR that is removing these will allow CI to fail the check so the
user can get feedback if another person has merged code in that violates
the check in the branch/PR.
Relates #838

Hi, I know its preferred to use the new labels instead of the obscure CXXXX labels, but this is the quickest way to match up what a user might be fixing against #838. New PRs that fix a #838 pylint warning should also remove that from the pylint file so that CI can catch it.
I will be updating CI once this is merged to run precommit, which passes on this branch.


Quick question about hooks

I am just wondering exactly when presync and postsync hooks are run, specifically:

Are they run if a release is being uninstalled?
Are they run if a release is already uninstalled and installed: false?

If the answer is yes, is there a parameter available to hooks to indicate what exactly is happening (installing/upgrading/uninstalling)?

Are they run if a release is being uninstalled?

Yes.
https://github.com/roboll/helmfile/blob/68432b1848783640ee8a407edd825f82ca8819fe/pkg/state/state.go#L505

Are they run if a release is already uninstalled and installed: false?

No.
https://github.com/roboll/helmfile/blob/68432b1848783640ee8a407edd825f82ca8819fe/pkg/state/state.go#L419-L426
The general rule is that installed: false doesn't prevent it from being processed, which involves running presync and postsync.
But helmfile has nothing to do for a release that is already installed and is set to  installed: false, which means presync and postsync aren't run either.

But helmfile has nothing to do for a release that is already installed and is set to installed: false, which means presync and postsync aren't run either.

I assume you mean a release that is already uninstalled?
Are there any parameters available for hooks to know what is happening?

I assume you mean a release that is already uninstalled?

Yeah! Sorry for the mistake.

Are there any parameters available for hooks to know what is happening?

Nope. What would you use that for?

I have hooks that I can either skip or make more efficient if I know what is actually happening.

@cdunford Would preuninstall and postuninstall hooks would help?

@mumoshu - yes that would help. It would also be good to have preinstall/postinstall which only trigger if the release was not previously installed.

@cdunford Got it!
Btw, what would you use those hooks exactly for? Notifications, creating/deleting extra resources, etc?
The feature is feasible but Im really not sure how people would use it for, and I can recommend that or not.

Sorry for the long delay in getting back to you.
Our application has some somewhat complex requirements around deployment and upgrade; there are certain things (external to kubernetes) that need to happen on initial install, but never again. We can detect these in other ways, but it seems helm/helmfile has the necessary context to know where this is a clean install or an upgrade, so if that context was available to our hooks, we could forgo any sort of other type of detection and just use what helm tells us.
We have some unique requirements around rollbacks in the case of deployment failure as well. It would be useful to have a hook that runs on sync failure that could be used to rollback external items (that helm/helmfile isn't managing declaratively).
I'm basically thinking the set of lifecycle hooks available in helm also make sense in helmfile:

Annotation Value
Description

pre-install
Executes after templates are rendered, but before any resources are created in Kubernetes

post-install
Executes after all resources are loaded into Kubernetes

pre-delete
Executes on a deletion request before any resources are deleted from Kubernetes

post-delete
Executes on a deletion request after all of the release's resources have been deleted

pre-upgrade
Executes on an upgrade request after templates are rendered, but before any resources are updated

post-upgrade
Executes on an upgrade after all resources have been upgraded

pre-rollback
Executes on a rollback request after templates are rendered, but before any resources are rolled back

post-rollback
Executes on a rollback request after all resources have been modified

test
Executes when the Helm test subcommand is invoked ( view test docs)

(from https://helm.sh/docs/topics/charts_hooks/)
We may be able to use helm hooks instead of helmfile hooks for our use case(s), but in general the helmfile hooks have been preferable to us as the run in the context of our CD pipeline and don't require crafting templates that deploy resources into our cluster.

@cdunford Hey! I've managed to come back to this. I've opened #1805 for postinstall.
Equivalents  to post-delete and pre-delete has been discussed in #802 and added via #1375

One use-case we had in favor of a post-install and post-uninstall is manually applying CRDs in a specific order. Helm can handle this if the chart is correctly created, but not all charts are created equal. I've found that sometimes we have to take matters into our own hands.

One use-case we had in favor of a post-install and post-uninstall is manually applying CRDs in a specific order. Helm can handle this if the chart is correctly created, but not all charts are created equal. I've found that sometimes we have to take matters into our own hands.

@notjames Hey! Can't you just use incubator/raw with needs in that case, so that you can install CRDs before other releases that depends on the CRDs, and delete CRDs after other releases that depends on the CRDs get deleted?
release:
- name: crds
  chart: incubator/raw
  values:
  - crds/foo.crd.yaml
  - crds/bar.crd.yaml
- name: yourapp
  chart: repo/somechart
  needs:
  - crds

I'd love to be able to use pre-install to run a script adopting non-helm resources by labelling/annotating them. In particular this would be useful for adopting things the cloud provider (AWS/EKS, in my case) pre-installs; for example, Amazon provides a vpc-cni chart which can be used to install/configure the AWS VPC CNI provider... except the VPC CNI provider is already installed "out of the box" on fresh clusters, and not through Helm. Their documentation recommends running a script to apply the meta.helm.sh annotations and app.kubernetes.io/managed-by label so that Helm 3.2+ can "adopt" the existing resources. If there were a pre-install hook I could just have it run Amazon's provided script (although of course without pre-install I can just use pre-sync and modify the script to check whether the chart is installed before doing anything; or just run the script by hand).

Also note that certain kinds of hooks needs extra care to be idempotent.
If we were to run e.g. post-uninstall hook after Helmfile uninstalled the release and the hook failed due to a transient error, the next Helmfile run won't rerun the post-uninstall hook as.. it's already uninstalled.
That makes me thing anything related to cleaning up dangling resources in your cluster needs to be in the cluster itself, or another k8s operator/controller that continuously resyncs your cluster to remove dangling resources, rather than in Helmfile.

@mumoshu I should note, I actually tried today using presync and just adding the logic to check for existence to my script, but it doesn't work. The script never gets executed at all, because before we get to the prescync phase, helmfile calls out to helm diff, and helm diff fails with the same sort of error helm install would when the chart would create resources that already exist. There's even an issue about it in the helm-diff repository.
I might be able to get it to work with a prepare hook where I supply the {{ .HelmfileCommand }} as an argument to the script and then use that to figure out if we're running a command that would have triggered a presync hook such as sync or apply.

I would like a pre-install script to install crds before I run helmfile build so that the command does not fail. thanks
my script looks something like this :
helm show crds "$1" > crds.raw.yaml
sed 's/apiVersion\: apiextensions/\-\-\-\napiVersion\: apiextensions/g' crds.raw.yaml > crds.yaml
kubectl apply -f crds.yaml
rm crds.yaml crds.raw.yaml

and I want to run it like this:
  - chart: charts/certs
    name: certs
    namespace: infrastructure
    hooks:
      - pre-install: ./pre-install-crds.sh


Repo's Disappear upon user being diabled

Hey, Having an issue where a user was disabled and then when enabled again the repo's disappear entirely.
Is it possible to recover these or have these been deleted forever now?
if so, where can I find them?
thanks

If users disabled once, all related data include repositories are deleted. Unfortunately, you can't recover them forever.

Thanks for the reply.


Address review comments from PR#1208

just my opinion:
better implementation might be :
var CRUDSupportedClouds = map[string]struct{}{
                                   "aws-s3": struct{}{},
                                    "azure-blob": struct{}{},
                                    "gcp-s3": struct{}{},
                                    "hw-obs": struct{}{},
                               }
func isCRUDSupportedCloud(cloud string) bool {
     _, ok := CRUDSupportedClouds[cloud]
     return ok
}

Originally posted by @AmitRoushan in https://github.com/sodafoundation/multi-cloud/pull/1208#discussion_r595151422

done. closing


Provide more executables on release

Changes Introduced
Provides static, mostly-static and non-static native image executables so users can pick which one is appropriate for them.
Applicable linked issues
#11
Checklist (check all that apply)

[X] This change maintains backwards compatibility
[ ] I have introduced tests for all new features and changes
[X] I have added documentation covering all new features and changes
[X] This pull-request is ready for review

Codecov Report

Merging #100 (6bcb1af) into main (3205c3a) will decrease coverage by 0.07%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #100      +/-   ##
==========================================
- Coverage   88.93%   88.86%   -0.08%
==========================================
  Files          86       86
  Lines        2783     2783
  Branches       96       96
==========================================
- Hits         2475     2473       -2
- Misses        308      310       +2

Impacted Files
Coverage Δ

...nesis/mock/api/RegisterStreamConsumerRequest.scala
93.93% <0.00%> (-6.07%)
:arrow_down:

Continue to review full report at Codecov.

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


Add cos_secret option to runtime metadata configuration

This change allows users to specify a secret in the kubernetes
cluster as their credentials to access cloud object storage.
Fixes #1479

[ ] Add /update backend tests
[x] update documentation on k8s secrets and creation for cos

This change will still require users to have a username and password configured in the runtime in order to push local dependencies to object storage. Specifying a cos_secret will prevent credentials from being exposed in the pipeline yaml and DAG as environmental variables provided the user has created a proper k8s secret on the cluster to reference.
This change is narrow in its just for the cos issue. Do we want to spend a little more time and make this more flexible e.g. support secrets in general?

This change is narrow in its just for the cos issue. Do we want to spend a little more time and make this more flexible e.g. support secrets in general?

I think it'd be more important to invest the time instead to add support for volume mounts.
We should probably also do something (for run and export) to "notify" the user that, if configured,  the pipeline requires the secret to be defined in Kubernetes.

In docs/source/user_guide/runtime-conf.md:

section "Creating a runtime configuration"

there's a typo Kubeflow Pipeli[n]es  (not introduced by the PR) in step 2
we need to update the screen shot in step 2
after step 5 we need a new step 6 for the Kubernetes settings; something like

1. Enter the optional Kubernetes information. Refer to section [Kubernetes settings](#kubernetes-settings) for details.

section "Cloud Object Storage Credentials Secret (cos_secret)"

we should indicate that the secret must be created in the appropriate username space

Test scenarios:

[ ] Run pipeline in KFP without secret specified in RTC
[ ] Run pipeline in KFP with secret specified in RTC and secret defined in cluster
[ ] Run pipeline in KFP with secret specified in RTC and secret not defined in cluster
[ ] Export pipeline to KFP to YAML with secret in RTC and secret defined in cluster
[ ] Export pipeline to KFP to DSL with secret in RTC and secret defined in cluster
[ ] Run pipeline in AA without secret specified in RTC
[ ] Run pipeline in AA with secret specified in RTC and secret defined in cluster
[ ] Run pipeline in AA with secret specified in RTC and secret not defined in cluster
[ ] Export pipeline to AA DSL without secret specified in RTC
[ ] Export pipeline to AA DSL with secret specified in RTC and secret defined in cluster
[ ] Export pipeline to AA DSL with secret specified in RTC and secret not defined in cluster

Updated docs, running into an issue with one of the airflow tests, will try and fix over the weekend. If not, @lresende, we can split into a separate issue and merge this as is.


[BUG] WindowsAzureMessaging.xcframework does not contain the correct WindowsAzureMessaging.framework for macOS.

After trying to use Azure Notification Hubs for macOS using the xcframework .zip file  from https://github.com/Azure/azure-notificationhubs-ios/releases, I noticed that the macxos WindowsAzureMessaging.framework does not contain any files and is a symlink to: /Users/matthewp/Library/Developer/Xcode/DerivedData/WindowsAzureMessaging-gtakvndxivnwmuebjxwxzcqevqjd/Build/Intermediates.noindex/ArchiveIntermediates/All Frameworks/IntermediateBuildFilesPath/UninstalledProducts/macosx/WindowsAzureMessaging.framework, so this does not work

I also experienced some issues because of that in my project. Would be nice if someone could fix it.


Update materi.php with reusable function

hopefully this reusable function would help, thanks for review this code!

I think it's also a good idea to modify the m_materi model to use reusable function too. 🤔

Hi, @nanto88 .
Thank you so much for you contribution for Learnify, and I think its good idea too to make the m_matri to be reusable so i will merge your commit.
Thanks!

I'm glad this update was help! 😄
Feel free to 'beckon' me if you have another open source project to work with 😄

btw @syauqi ,
would you mind to add topic this repository the "hacktoberfest" , and add label "hacktoberfest-accepted"
to more other people comes to this repository 😸


fix: local documentation

express-static prefers directories over files when using the extensions option, meaning an extensionless route will always route to the directory instead of the file (expressjs/serve-static#138). This causes URLs like http://localhost:9078/docs/docs/configuration to work when navigating from other pages (due to it being a SPA), but on reload it redirects to http://localhost:9078/docs/docs/configuration/ and returns a 404 (note the trailing slash).
This PR re-enables trailing slashes, which turns this structure:
docs
|- configuration
|  |- plex.html
|- configuration.html

Into:
docs
|- configuration
   |- plex
   |  |- index.html
   |- index.html

This fixes local docs (served by the backend).
I've deployed it to GH pages here: https://jackwilsdon.github.io/multi-scrobbler/
All existing (normal) URLs will work - GitHub Pages will just add a trailing slash via a 301 redirect. The only URLs that will no longer work are the ones with extensions (e.g. https://jackwilsdon.github.io/multi-scrobbler/docs/configuration.html), but nothing on the site links to that anyway from what I can tell.
We could only set this option to true for GitHub pages, but it seemed neater to use the same option for both.
Checklist before requesting a review

[ ] I have read the contributing guidelines.

Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Describe your changes
Issue number and link, if applicable

Awesome! Thanks for finding and fixing that.