Can`t install osrm

C:\Users\Админ> pip  install osrm
Requirement already satisfied: osrm in c:\python27\lib\site-packages\osrm-0.11.1-py2.7.egg (0.11.1)
Collecting polyline (from osrm)
Using cached https://files.pythonhosted.org/packages/c1/d0/58a19ca3fbe880145d200518fcd97d176cae07b9677db330f4881954d5f5/polyline-1.3.2-py2.py3-none-any.whl
Collecting GDAL (from osrm)
Using cached https://files.pythonhosted.org/packages/e5/57/7f0536cd46bebb30e709b8cd3bcebf9c3d4acc4ad5e9d7bfc73cd39c09a9/GDAL-2.3.2.tar.gz
Requirement already satisfied: numpy in c:\python27\lib\site-packages (from osrm) (1.15.3)
Requirement already satisfied: pandas in c:\python27\lib\site-packages (from osrm) (0.23.4)
Collecting shapely (from osrm)
Using cached https://files.pythonhosted.org/packages/a2/fb/7a7af9ef7a35d16fa23b127abee272cfc483ca89029b73e92e93cdf36e6b/Shapely-1.6.4.post2.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "c:\users\7272~1\appdata\local\temp\pip-install-o2lqmz\shapely\setup.py", line 80, in
from shapely.buildcfg import geos_version_string, geos_version,
File "shapely_buildcfg.py", line 200, in
lgeos = CDLL("geos_c.dll")
File "c:\python27\lib\ctypes_init.py", line 366, in init
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126]
----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in c:\users\7272~1\appdata\local\temp\pip-install-o2lqmz\shapely\
try to install osrm module, and have this error.
Do you have solution for this?

Not really a solution, but this package depends on a few other python packages such as gdal and shapely.
It seems to fail when installing shapely, so what I suggest is to download the shapely wheel (and also the gdal wheel if it's not already installed) adapted to your version of python on Christoph Gohlke website : https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely
After that I suggest you try again to install osrm python package with pip.


LICENSE

Could you add a LICENSE file to this repo?

yep, MIT licensed, hope you find the code useful


Support for Command-R models (by Cohere.AI)

Model description
https://huggingface.co/CohereForAI/c4ai-command-r-v01
Open source status

[X] The model implementation is available
[X] The model weights are available

Provide useful links for the implementation
https://huggingface.co/CohereForAI/c4ai-command-r-v01

Why is the implementation of TGI Cohere Modeling different from the Transformers Cohere Modeling?
Is there any different version of Command-R models?

It is already supported.

@OlivierDehaene
Does the supported models page need to be updated then?
https://huggingface.co/docs/text-generation-inference/supported_models


Deploy previews

Implement the Netlify deploy previews using different environment variables for preview vs. production while keeping them out of the toml file. Potentially use this Netlify plugin: https://github.com/cball/netlify-plugin-contextual-env#readme

Added the Contextual ENV plugin to the Netlify site and create another MongoDB Atlas account to use as a staging database.


More specific error messages for function loading

The current message when a function cannot be loaded is:
err_msg = f"Couldn't load function from {filepath} : {str(e)}. This might be due to a missing Python package, or because the function implementation file does not exist, or it is not a valid Python file."

We should return specific error messages for each of the three cases.

Thanks Pramod! Hi @hershd23 and @Omanshb, I think this issue is closely related to #1189 you are looking into. We may can fix them all together to improve the user experience.

Yes @xzdandy @pchunduri6. We are trying to solve for typos in functions and provide a close match to that. We can add these cases as well

Assigning this issue to myself


Convert counter to collection helper

counter should be converted to use the collection helper like timer and the input_* domains, so it can be added to the frontend.
https://github.com/home-assistant/home-assistant-polymer/pull/4940

@Adminiuga since you did the others, would you like to do this one as well?

I'll take a look.


[Migrated] Error - {"message":"Forbidden"}

Originally from: https://github.com/Miserlou/Zappa/issues/1317 by daxeel
I deployed my flask hello world with zappa on aws.
server.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Ieacon!'

if __name__ == '__main__':
    app.run()

API Endpoint
https://hj9weg9e9g.execute-api.ap-south-1.amazonaws.com/devstage

Expected Behavior
Hello, Ieacon! (Works locally)
Actual Behavior
{"message":"Forbidden"}
Possible Fix

Your Environment

Zappa version used: 0.45.1

Operating System and Python version: OSX & Python 2.7.10

The output of pip freeze:
argcomplete==1.9.2 base58==0.2.4 boto3==1.5.6 botocore==1.8.20 certifi==2017.11.5 cfn-flip==1.0.0 chardet==3.0.4 click==6.7 docutils==0.14 durationpy==0.5 Flask==0.12.2 future==0.16.0 futures==3.1.1 hjson==3.0.1 idna==2.6 itsdangerous==0.24 Jinja2==2.10 jmespath==0.9.3 kappa==0.6.0 lambda-packages==0.19.0 MarkupSafe==1.0 placebo==0.8.1 python-dateutil==2.6.1 python-slugify==1.2.4 PyYAML==3.12 requests==2.18.4 s3transfer==0.1.12 six==1.11.0 toml==0.9.4 tqdm==4.19.1 troposphere==2.1.2 Unidecode==0.4.21 urllib3==1.22 Werkzeug==0.12 wheel==0.30.0 wsgi-request-logger==0.4.6 zappa==0.45.1

Link to your project (optional):
https://hj9weg9e9g.execute-api.ap-south-1.amazonaws.com/devstage

Your zappa_settings.py:
{   "devstage": {   	  "api_key_required": true,       "api_key": "xxxxxx",       "s3_bucket": "ieaconbucket",       "app_function": "server.app",       "aws_region": "ap-south-1"   } }

Please help me why i am not able to get the expected output. This is my second project. Previously i was able to deploy the app and was working perfectly. I don't know why it stopped working.
[Edit markdown for code listing –@scoates]

make sure to include the stage in your request.
closing.

this issue is still not fixed ? #1338


Bring back removed map zoom

When we merged in the economic segregation layer, we lost the initial zoom animation to focus on Adelaide after dismissing the intro dialog.
I was talking about this issue with Leo, and we both like it better without the zoom in. @mohsenmailbox, any preference?

why do you prefer w/o over w zoom animation?


fix: data access policy delete

Without the data access policy with delete permissions, terraform destroy yields:
module.bedrock.opensearch_index.default_oss_index[0]: Destroying... [id=bedrock-knowledge-base-default-index-XXXX]
╷
│ Error: elastic: Error 403 (Forbidden): User does not have permissions for the requested resource [type=authorization_exception]
│
│
╵

Occasionally, the default opensearch index is not ready and terraform apply yields (running the terraform apply again fixes, but this is only because of a delay):
╷
│ Error: AWS SDK Go Service Operation Incomplete
│
│   with module.bedrock.awscc_bedrock_knowledge_base.knowledge_base_default[0],
│   on .terraform/modules/bedrock/knowledge-base.tf line 2, in resource "awscc_bedrock_knowledge_base" "knowledge_base_default":
│    2: resource "awscc_bedrock_knowledge_base" "knowledge_base_default" {
│
│ Waiting for Cloud Control API service CreateResource operation completion returned: waiter state transitioned to FAILED. StatusMessage: The
│ knowledge base storage configuration provided is invalid... Dependency error document status code: 404, error message: no such index

/do-e2e-tests

/do-e2e-tests


What is the difference between WinAppDriver and Microsoft UI Automation library? What different problems they solve?

From what I've read and seen through utilizing WinAppDriver and UIAutomation, WinAppDriver utilizes UIAutomation to gather the elements of your desktop application, and then WAP converts it to HTML so you can drive tests with Selenium/Appium.
The main problem WAP solves for me is: UIAutomation isn't a super straightforward library. Calls can get a bit verbose, and it requires some custom coding to handle "every day" scenarios (like selecting a value from a combo box.) Selenium/Appium have solved a lot of this already for web interfaces, so WAP bridges that gap to let testers use a robust and well-used and supported toolset (Selenium and Appium) to drive desktop UI automation.
Compared to some other tools I've used (Coded UI, TestStack.White, and a small amount of FlaUI,) being able to use simpler calls, with less quirky behavior and spotty support has been a fantastic step for desktop automation.

Thanks for the nice answer.
Does that mean that if I use WAP then there is no need to use UIAutonation library, or just rewording my question, is UIAutomation suitable for any tasks which can not be achieved by WAP? I am asking this question because i see alot of potential in WinappDriver whereas there are too little support/documentation for UIAutomator.

So far as I've seen, by using WAP you do not need to use UIAutomation library in normal circumstances. However, we've had cases at work where custom controls in third-party applications are problematic to find using White and FlaUI. I'm working on getting a Windows 10 box to verify how WAP handles those situations. When that happens, I'll drop a note on if WAP recognizes atypical controls better than White or FlaUI.

Good details mentioned by @PandaMagnus
One correction  here, WAP coverts Desktop applications to XML!

@dhapolapankaj: Could you please elaborate bit more about "WAP coverts Desktop applications to XML". What exactly do we mean by this? Thank you.

Put a break-point in your program and check driver.PageSource

I listed down differences between WinAppDriver and Coded UI in my blog post here:
WinApp Driver vs Coded UI


Depth sensing example

Hi,
I noticed that there isn't Depth sensing python example (only have tutorial). Do you plane to add it?
Best

Hi,
Indeed this could be a good addition but you can take a look at the Positional Tracking and Mesh examples that are both using depth sensing.


📊 antibiotics: WHO Antibiotic usage

Hey @Marigold, I'm running into a bit of Jinja issue that I can't figure out, would you be able to take a look to see if you can spot the issue.
Quite often with Jinja there's missing spaces around index terms e.g. for the routeofadministration term in the titles of variables in this dataset.
I've tried to add spaces in the metadata but still the titles look like this: Defined daily doses ofparentearally administeredAntivirals for systemic use (ATC J05) - antivirals for treatment of hiv infections, combinations (j05ar)  used, with no spaces around 'parentearally administered'. Any idea what I'm missing?

It was caused by the dash in <% if. <%- if trims all whitespaces before the block (or after if you use -%>). I've set reasonable defaults so that in most cases you never have to use - in ifs (which worked in this case). If you have to use them, they can quickly become very confusing...

It was caused by the dash in <% if. <%- if trims all whitespaces before the block (or after if you use -%>). I've set reasonable defaults so that in most cases you never have to use - in ifs (which worked in this case). If you have to use them, they can quickly become very confusing...

Okay brilliant, thanks! I'll avoid '-' in the future!


add pradita email

@forhomme First stage of verification passed, official domain is pradita.ac.id as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@forhomme Pull request merged. Thank you.


onendediting to detect user is done typing

Any chance to integrate onendediting so we are able to detect that the user has finished editing this input type?
https://reactnative.dev/docs/textinput#onendediting

any solution for user start typing?

Hello i miss this issue idk how it possible :) So you can use inputProps this prop about this function. For example.
<IntlPhoneInput
        inputProps={onEndEditing:()=>alert("ended")}
        ref={(ref) => this.phoneInput = ref}
        customModal={this.renderCustomModal}
        defaultCountry="TR"
        lang="TR"
      />


Method Reduce::exactlyN() added

Method Reduce::exactlyN() added
Tests added (coverage 100%).
README updated with new method description.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

8 of 8 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 99.462%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
185

Relevant Lines:
186

💛  - Coveralls

Hi @Smoren,
Thank you for your continued interest in IterTools and for the pull request. Thank you for adding many unit test cases.
I left a couple comments inline. Also, a general comment about unit tests: I recommend not spending time to line up all the test cases in neat columns. The reason for this is that if you add a single test case that is longer than any previous one, you will again have to spend time rearranging them again into a new format. I recommend just putting each argument on it's own line for simplicity so everything is formatted the same way.

Thank you for your comments!
All your suggestions are applied.

Reduce::exavtlyN() renamed to Reduce::same.
Tests updated.
README updated.

@markrogoyski
I thought sameCount would be a better name instead of exactlyN. I have implemented and added this method.

Method Reduce::sameCount() added.
Tests added for the new method (coverage 100%).
README updated with the description of the new method.

Hi @Smoren,
I refactored some of the new code in the develop branch. I've made a distinction between Reduce and a new class I've named Summary. The isSorted and isReversed are conceptually different from the other functions in Reduce, as they are not reducing the collection to a single value, but rather summarizing some aspect of the collection (or collections) by answering a question, like is the iterable sorted? The answers to the questions are true or false.
I think this caused some git conflicts in your pull request. Apologies for that.
I think the new functions in your pull request would go in the new Summary class, as they are answering questions about the collections, rather than reducing to a value. Are they they same, and do they have the same number of items, are summarizing queries that have a yes/no (true/false) answer.
Let me know if you have any questions about the new namespace for the functions? And sorry for the extra work to move them. Please pull in the latest changes from develop and it should be clear what the changes are.
Thanks again for the pull request.
Mark

Hi @markrogoyski
All done :)
Sorry for making you wait.

All conflicts resolved.
Methods same and sameCount moved to namespace Summary.
Tests moved to directory Summary.
README updated.

Hi @Smoren,
Thank you again for the pull request. I've merged it into develop to go out with the next release.

Thank you Mark!

Hi @Smoren,
The new functionality in this PR, as well as your other PRs, has been released in the latest release v1.1.0. Thanks again!

Thank you Mark! Release is great and long-awaited news!


USB RNDIS support for U5A5

STM32U575 having Full speed USB and RNDIS enabled in zephyr, For U5A5 Supports USB High speed wrt to below attached image form datasheet.

It would be good to have support for USB and RNDIS enable for U5A5.
Or Someone suggest how to enable this.

This is already supported using following configurations:
USB Device Settings
CONFIG_USB_DEVICE_STACK=y
Select USB Configurations
CONFIG_USB_DEVICE_NETWORK_ECM=y
CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n
CONFIG_USB_DEVICE_NETWORK_ECM=n
CONFIG_USB_DEVICE_NETWORK_RNDIS=y


Miner / Validator Version Control

Description
We need to leverage some sort of version control to ensure that Validators and Miners are running the latest code, similar to how the Masa Protocol functions.  It was suggested to look into the Axon object itself, as metadata there gets reported to the metagraph, and it's possible we could enforce versioning from there.  Also worth asking around in the Bittensor Discord dev channels for ideas.

The hyperparameter weights_version is used to set a specific validator version on the subnet, ensuring code consistency across validators.  I don't believe there is a similar mechanism for miners, still investigating.

One aspect that is strange is that our current weights_version on the subnet is 0, whereas our validators are sending 10 in their version key, i.e. version 0.1.0.  It seems weights are being set correctly despite the mismatch.  One thought is that when you set a weights_version of 0 on the subnet, it allows all of them.  Will test this theory on devnet where I control a subnet.

I have verified that when validators are running a spec_version_ that is less than what is defined in the weights_version hyperparameter, they are not able to set weights!  This is great.  Adding to the production docs, but it will be important that we set this value to 1 when we launch the subnet on production.  Similarly, I have made an edit to version in the validator to be 0.0.1.  The logic is such that 1.0.0 == 100, 0.1.0 == 10, etc.


Fixes for Alerts SLO definition and viewing

Should fix issues 53, 61, and 63 -- does tighter validation of the Alerts[] that defines an Alert driven SLO.

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

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


Update skip_remote_state_provision default value

Fixes | Closes | Resolves #

Please remove anything marked as optional that you don't need to fill in.
Choose one of the keywords preceding to refer to the issue this PR solves, followed by the issue number (e.g Fixes # 666).
If there is no issue, remove the line. Remove this note after reading.

Changes introduced in this PR:

Update  skip_remote_state_provision default value from True to False

By keeping the skip_remote_state_provision default value as True, we were inadvertently revoking the creation of the terraform state bucket during the first deployments. Which is used during the stage provision phase:
https://github.com/nebari-dev/nebari/blob/77d15e7a16e87bfef234bdf4802bf622f6030618/nebari/deploy.py#L201-L208
I think the reason we didn't spot this sooner as due to until #1519 we still used a mix of the new CLI with the old qhub entry points.
Image of the error caused during deployment on GCP with terraform_state: remote (default)  set in the config
nebari deploy -c nebari-config.yaml --dns-provider cloudflare --dns-auto-provision --disable-prompt

Even with no mention of --skip-remote-state-provision you can see the log message right at the beginning finalizing the skip.
Types of changes
What types of changes does your PR introduce?
Put an x in the boxes that apply

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds a feature)
[ ] Breaking change (fix or feature that would cause existing features to not work as expected)
[ ] Documentation Update
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build related changes
[ ] Other (please describe):

Testing
Requires testing

[ ] Yes
[ ] No

In case you checked yes, did you write tests?

[ ] Yes
[ ] No

Documentation
Does your contribution include breaking changes or deprecations?
If so have you updated the documentation?

[ ] Yes, docstrings
[ ] Yes, main documentation
[ ] Yes, deprecation notices

Further comments (optional)
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered and more.

There seems to be a problem with pytest running the jupyterhub ssh test. I will handle that in another PR. I ran IT with this branch all working.


Zookeeper-aware mode for finding marathon uri

Hey guys,
I would like to start a discussion around functionality to get the Marathon URI from Zookeeper instead of an http:// URL. This would allow for much more dynamic deployments as go-marathon would essentially 'discover' where Marathon is instead of requiring a static http:// URI to connect to that could change. You could use a load balancer as a workaround but I think using ZK is better if it's already there.
I would be happy to implement this in a PR/branch given some agreement from anyone insteresteds on how to achieve it.
Thanks!

Hi @timvaillancourt. Thanks for bringing your proposal forward.
Just to be sure I understand your use case properly, may I ask if you happen to have a concrete need for the kind of service discoverability you outlined? And are you thinking of retrieving the Marathon URLs from Zookeeper only during the initialization phase, or possibly in an updating fashion during runtime as well?
Personally, I don't operate in an environment where the Marathon URLs change frequently enough to warrant an integration with Zookeeper, but that's just me and doesn't mean I am opposing the idea. My biggest concern probably is that we'll likely need to integrate some ZK client library and thereby have to enlarge our dependency surface, which is something that should be weighted against the potential benefit of the feature. It looks to me though that we could vendor such a client library as we seem to be in the kind of special territory where vendoring is allowed for libraries.
Those are my very initial two cents. Happy to continue discussing once the requirements are more clear.

Hi @timoreimann, I would probably start simple and only grab the URLs during the init phase of go-marathon if an list of Zookeeper URIs was provided. There is probably a pretty reliable way to gather the list of available Marathon instances from whichever path Marathon is using in Zookeeper.
This would add one dependency, yes. https://github.com/samuel/go-zookeeper seems to be the de facto driver for ZK.

@timvaillancourt a downside from reusing the ZK node that Marathon is already using is that you couple go-marathon's fate to Marathon's as far as ZK discoverability is concerned. That is, if Marathon is ever going to change the ZK backend structure, go-marathon will be affected too. Chances are this won't show up in any change log or README file as it can be considered an implementation detail of Marathon.
Maybe the ZK format that Marathon employs is simple enough so that users can choose between relying on Marathon's ZK data and managing dedicated ZK nodes on their own. That way, it's going to be up to each user to decide how much risk they are willing to take in return for more convenience.


record identity of last console login

What is this?
Identity of the principal who accesses an account is now recorded on console login
Why is this important?
Previously we only recorded the date of console login. However, when multiple principals can access an AWS account, it is important to trace who exactly accessed an account for the last time.
How to implement it?

[x] update lambdas/on_account_event_handlr.py to record the logging identity in shadow
[x] add a test in tests/test_lambda_on_account_event_handler.py
[x] pass make all-tests
[x] pass make lint
[x] deploy in production
[x] check shadow record after successful login

now that we successfully record identity on console login, it could be nice to reflect this information in periodic inventories of accounts


Fixed 8 flaky tests in CheckedProvider(s)Test.java

This PR fixes 8 possible test failures in the module extensions/throwingproviders

Test that could fail

Module: extensions/throwingproviders
Class Name1: com.google.inject.throwingproviders.CheckedProvidersTest,
Test Name: testUnsupportedMethods_otherMethod_throwsIllegalArgumentException
Class Name2: testUnsupportedMethods_otherMethod_throwsIllegalArgumentException
Test Names: testCxtorWithManyExceptions, testCxtorWithSuperclassExceptionFails, testCxtorWithWrongException, testManyMethods, testProviderMethodWithManyExceptions, testProviderMethodWithSuperclassExceptionFails, testProviderMethodWithWrongException

Why the tests might fail?

The test - testUnsupportedMethods_otherMethod_throwsIllegalArgumentException in CheckedProvidersTest.java has the getDeclaredMethods().
According to the official documentation, this returns the methods in a different order each time it is called, making this test flaky i.e. non-deterministic.
The tests testCxtorWithManyExceptions, testCxtorWithSuperclassExceptionFails, testCxtorWithWrongException, testManyMethods, testProviderMethodWithManyExceptions, testProviderMethodWithSuperclassExceptionFails, testProviderMethodWithWrongException in CheckedProviderTest.java has the getErrorMessages().
This returns the error messages in a different order each time it is called. For instance, sometimes it returns [RemoteException, BindException], but at other times, it returns [BindException, RemoteException].
Since there is no guarantee in the order of exception types returned, the order might change, resulting in the test failure.

How to reproduce?

I used an open-source tool called NonDex to detect the assumption by shuffling the order of returned exception types.
Running the following commands will test the aforementioned operation
Clone the Repo
https://github.com/google/guice

Compile the module byte-buddy-dep
mvn clean install extensions/throwingproviders -am -DskipTests

(Optional) Run the unit test
mvn -pl throwingproviders test -Dtest=com.google.inject.throwingproviders.CheckedProvidersTest#testUnsupportedMethods_otherMethod_throwsIllegalArgumentException

Run the unit test using NonDex
mvn -pl throwingproviders edu.illinois:nondex-maven-plugin:2.1.1:nondex -Dtest=com.google.inject.throwingproviders.CheckedProvidersTest#testUnsupportedMethods_otherMethod_throwsIllegalArgumentException

How I fixed?

Since the order of the methods or error messages is not guaranteed, it is important to consider all possible orders. Fortunately, only two possible orders are possible for both methods and error messages. By checking if the actual message is equal to any of the orders, we can fix the flakiness.

looks like all code change is necessary

Hi, Can you elaborate more on this? Thanks!

looks like all code change is necessary

Hi, Can you please elaborate more on this? Thanks!

For example, it is great that you only changed the code in the test part.
Besides, they hardcoded the order between BindException & RemoteException, so the best fix is just to check all the permutation orders, just as you did.

The fix LGTM! You could maybe provide links that point to the code for the class/test names and for lines that cause the flakiness.

looks like all code change is necessary

Hi, Can you please elaborate more on this? Thanks!

For example, it is great that you only changed the code in the test part. Besides, they hardcoded the order between BindException & RemoteException, so the best fix is just to check all the permutation orders, just as you did.

Thanks!!

The fix LGTM! You could maybe provide links that point to the code for the class/test names and for lines that cause the flakiness.

Thanks!! I've provided links now.


Why add extra space ' ' in generated SQL

Search result always return empty when I use full text search with Chinese language.
PostgreSQL version is 10.5
My pg_search_scope is defined as:
pg_search_scope :search_full_text,
                  against: %i[title],
                  using: {
                    tsearch: {
                      dictionary: 'jiebacfg'
                    }
                  }

Generated SQL:
Notification Load (1.3ms)  SELECT "notifications".* FROM "notifications" INNER JOIN (SELECT "notifications"."id" AS pg_search_id, (ts_rank((to_tsvector('jiebacfg', coalesce("notifications"."title"::text, ''))), (to_tsquery('jiebacfg', ''' ' || '大于' || ' ''')), 0)) AS rank FROM "notifications" WHERE (((to_tsvector('jiebacfg', coalesce("notifications"."title"::text, ''))) @@ (to_tsquery('jiebacfg', ''' ' || '大于' || ' '''))))) AS pg_search_8bb6922758ad870f844ad0 ON "notifications"."id" = pg_search_8bb6922758ad870f844ad0.pg_search_id ORDER BY "notifications"."id"DESC, pg_search_8bb6922758ad870f844ad0.rank DESC, "notifications"."id" ASC
If I change ''' ' || '大于' || ' ''' to '大于' and execute the sql in PostgreSQL console, it will return correct result.

Running in a similar issue here

how to remove space '' in query sql?

same issue, any update for this?


Fix failing round-trip tests

Many of the round-trip tests seem to be broken on master (mainly due to formatting changes). This change fixes the expected output so all tests now pass.
These changes were mostly done automatically, first by changing tests that use the CHECK and NEXT directives to use CHECK-ALL:
for f in $(rg -l NEXT crates/tests/tests/round_trip/)
do
    sed -i 's/;; CHECK: /(; CHECK-ALL:\n/' $f;
    sed -i 's/;; NEXT://' $f;
    echo ';)' >> $f;
done

and then updating the out put of those tests with
WALRUS_BLESS=1 cargo test --all

Thanks for the PR, this has been landed in https://github.com/rustwasm/walrus/pull/243 thanks to @plusvic.


Landing-Page: Carousel of images for background

http://materializecss.com/media.html#five!

This might not look right for our re-design of the landing page

Closed as doesn't fit new design


[DARGA] Travis JS failures - fail early when bower install fails

This is a darga version of #12509 - Updating tools/ci/setup_js_env to fail the whole test suite if bower install fails.
This first commit is extracted from d7cca07 - #12279, making the second one a clean cherry-pick of #12509. Mostly so that #12519 backports cleanly after this..
(This is exactly equivalent to the euwe version.)

@miq-bot add_label bug/sporadic test failure, test

@miq-bot assign simaishi


Provide APIs for working with custom sections

Motivation
There are many custom sections that are important for different use cases, eg webidl bindings custom section or the linking custom sections. People should be able to read, write, and manipulate custom sections that walrus itself doesn't know about.
Proposed Solution
trait CustomSection: Any + Send {
    fn name(&self) -> &'static str;

    fn emit(&self, cx: &mut EmitContext);
}

/// One of these will be in `Module`.
pub struct ModuleCustomSections { ... }

impl ModuleCustomSections {
    /// Take the raw bytes of an unparsed custom section out of this module, if present.
    pub fn take_raw(&mut self, name: &str) -> Option<Vec<u8>>;

    /// Insert the given custom section into the module.
    pub fn add<T>(&mut self, custom_section: T) -> CustomSectionId<T>
        where T: CustomSection;

    /// Gets the given custom section that was previously added or panics.
    pub fn get<T>(&self, id: CustomSectionId<T>) -> &T
        where T: CustomSection;
    pub fn get_mut<T>(&mut self, id: CustomSectionId<T>) -> &mut T
        where T: CustomSection;

    /// Iterate over custom sections.
    pub fn iter(&self) -> impl Iterator<&dyn CustomSection>;
    pub fn iter_mut(&self) -> impl Iterator<&mut dyn CustomSection>;
}

This way, we don't have to specify an API for parsing, instead we let consumers take the raw bytes, parse however they want, and optionally add custom sections back into the module for emitting (which we do need to know how to emit).
Alternatives
We could make parsing part of the CustomSection trait. This would make it more complex and less flexible, however.
We could avoid any trait object at all, and just take and receive Vec<u8> for custom sections. This has the advantage of not needing to expose the encoder machinery publicly. However, this forces users to have somewhere else to stash the parsed custom sections while manipulating a module, or to keep re-parsing and re-serializing them.

Thoughts @alexcrichton?

Looks great to me! I suspect we'd also need to add Sync to the trait bounds but that's just a minor quibble. I'm totally fine iterating on this in-tree :)

I guess the trait's emit method could just be fn (&self) -> Vec<u8>, which would avoid the downsides I listed about making the trait object simpler, while also avoiding exposing the whole encoding machinery. I think I will do this.


Unable to re-name Racks

Environment

Nautobot version (Docker tag too if applicable): v1.5.23
Python version: 3.10
Database platform, version: Postgres
Middleware(s):

Steps to Reproduce

Go to dcim/racks/
select any rack to edit
change the name of the rack

Expected Behavior
Page would reload and name would be reflected.

Observed Behavior
When submitting an error shows up below the name field:
Device with `name` in ['2.5 960GB SSD (PCIE Gen3) Samsung', '40GBE Active Fiber Cable - Aqua - 03M', '40GBE Active Fiber Cable - Aqua - 05M', ... '2.5 960GB SSD  Intel'] and site=A52Plus already exists.

From Slack Conversation with Glenn M. it is suspected that #4025 may have introduced this.

I think I've been able to reproduce this symptom by first cloning a device from the Rack in question into another Site (same device name, different site). Would still be good to confirm whether there are other scenarios that introduce this issue.


Toolkit bot aggressive at closing items

Related to #4.
I feel our toolkit bot closes items pretty aggressively, as usually we can work on things over the course of a month or two without update.  Or we have things in our backlog.
I feel like we should make the following improvements:

[ ] If issue isn't assigned to a milestone, ignore?
[ ] If issue isn't assigned to anyone, ignore?
[ ] Increase inactivity timeout from 14 to 32 days?  Or maybe just keep pinging but not auto-close?

Thoughts?

I agree, the bot should not close issues. However, by default, it should be pinging all issues unless specifically tagged (such as feature requests), to avoid issues falling through the cracks. 32 days sounds too long though, I would keep it to 14.

Yeah, I think part of the problem is it clutters up notifications, as suddenly all these issues get marked so it can make it hard to see an actual update to some other issue.
Maybe we can create some better heuristic based on assignee, milestone, and labels to help the bot know what course of action to take and how much to ping.  Like if we've labelled an issue but haven't assigned it to a milestone, we don't need to be pinging about it (assuming we audit our milestones effectively).


updat tekton tasks to be in sync with kjenkins

Stil working git ops task

This is ready now @seansund, I think we should merged into master now to be ready for OCP43.
I was able to test end to end including gitops and argo


Virus found with Symantec AV

Hi
Just to inform taht we have found a Virus in Licence.rtf file
Can you check it please
Regards

license.rtf is a formatted text file, it's not capable of "having a virus". This is almost certainly a false-positive by the AV product you are using.

Hi
I think you'll need to check
Regards


ADD: An extra Vault share without pubkeys

Please implement a "Family-Share" where the public keys are removed in the vault share, so a user can share and backup his vault with "family and friends" without them seeing the balances of the user.
After a user has successfully backed up or shared their vault, let them automatically return to the main home view.
See Figma for design:

@johnnyluo technically not possible, correct? therefore will close.


.emby-server gets created in /home/root instead of /root

running the default commands given in the Readme.md on centos7, i get the .emby-server directory in /home/root .
unless there is some new policy that /root is off limits i think thats not on purpose.

Thanks for the issue submission. This will be fix in the next major docker
update we do.
On Jul 8, 2017 4:12 PM, "kugelzucker"<EMAIL_ADDRESS>wrote:

running the default commands given in the Readme.md on centos7, i get the
.emby-server directory in /home/root .
unless there is some new policy that /root is off limits i think thats not
on purpose.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MediaBrowser/Emby.Build/issues/64, or mute the thread
https://github.com/notifications/unsubscribe-auth/AFiQzarXGHiob5NtBk3o0H-dCi8S-AT8ks5sL_7kgaJpZM4OR4hk
.

How will the change impact existing installs? Can they still function where they are?

Yes, the update is only to address root home location. Either which way
individuals can specify the actual host directory they want use rather than
depending on the wrapper scripts automatic resolution.
On Jul 8, 2017 4:48 PM, "Luke"<EMAIL_ADDRESS>wrote:

How will the change impact existing installs? Can they still function
where they are?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/MediaBrowser/Emby.Build/issues/64#issuecomment-313885504,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFiQzXltww1TXyM9p4M9HYIVIOZbpr4Bks5sMAdEgaJpZM4OR4hk
.


Add README badges, branch coverage

follow-on to #348
mostly just want to see if we start getting the codecov PR comment, and if i can fix it with what perms i have...
[x] adds the codecov badge (and friends) to README with links to various sources
[x] enables branch coverage, which is slightly more pedantic about whether, e.g. a function with two separate if..elif..else statements executes the permutations of the full set

Hm, the docs just talk about turning the PR comments off, or configuring it, not how to turn it on...

Ah, i had to turn on the app. I did so (because I could), but we can turn it off if we don't like it (or like having codecov have write access to PRs). Anyhow, we should at least see if the in-PR report will be useful.
The other approach is to have a dedicated oauth bot.

Hm, just kidding, no report for us. Well, at least we got badges.


[Bug]: .NET Framework 4.7.2 $Driver not found: ***\node\win32_x64\playwright.cmd

Playwright version
1.12
Operating system
Windows
What browsers are you seeing the problem on?
Chromium
Other information
No response
What happened? / Describe the bug
Then i run playwright install,i got an exception "Microsoft.Playwright assembly was found, but is missing required assets. Please ensure to build your project before running Playwright tool." The same code in .NET 5 app,it's OK.
Code snippet to reproduce your bug
using var playwright = await Playwright.CreateAsync();
                await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions
                {
                    Headless = _headless
                });

                // 设置默认窗口大小
                var context = await browser.NewContextAsync(new BrowserNewContextOptions
                {
                    ViewportSize = new ViewportSize() { Width = 1920, Height = 1080 }
                });

Relevant log output
No response

I try to update the package of "Microsoft.Playwright"  1.16.1 version. It still not work.

Hi, my question is similar to the current one, could you please explain the correct way of how to set up the custom path for the playwright driver?
Currently the path which works for me is this one:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\13163ddd\37e5e286\assembly\dl3\.playwright
But how can I add the .playwright correctly under my application, I would like to create something like a portable app that will work out of the box with the Playwright.
I'm able to use the ExecutablePath of the BrowserTypeLaunchOptions for the bundled browser itself. Can I do something like this for the driver?
I've tried to setup the driver path via Environment, but looks like it doesn't have effect:
IEnumerable<KeyValuePair<string, string>> environmentKeyValues = new List<KeyValuePair<string, string>>
                {
                    new ("PLAYWRIGHT_DRIVER_PATH",
                        @"C:\inetpub\wwwroot\My_App\App_Data\tools\playwright\webkit\.playwright\node\win32_x64\playwright.cmd")
                };

                BrowserTypeLaunchOptions browserLaunchOptions = new BrowserTypeLaunchOptions
                {
                    ExecutablePath = @"C:\inetpub\wwwroot\My_App\App_Data\tools\playwright\webkit\Playwright.exe",
                    Env = environmentKeyValues
                };

Should the mentioned approach work? If not, how to set up the custom path? Thank you in advance! :)

Hi, my question is similar to the current one, could you please explain the correct way of how to set up the custom path for the playwright driver?
Currently the path which works for me is this one:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\13163ddd\37e5e286\assembly\dl3\.playwright
But how can I add the .playwright correctly under my application, I would like to create something like a portable app that will work out of the box with the Playwright. I'm able to use the ExecutablePath of the BrowserTypeLaunchOptions for the bundled browser itself. Can I do something like this for the driver? I've tried to setup the driver path via Environment, but looks like it doesn't have effect:
IEnumerable<KeyValuePair<string, string>> environmentKeyValues = new List<KeyValuePair<string, string>>
                {
                    new ("PLAYWRIGHT_DRIVER_PATH",
                        @"C:\inetpub\wwwroot\My_App\App_Data\tools\playwright\webkit\.playwright\node\win32_x64\playwright.cmd")
                };

                BrowserTypeLaunchOptions browserLaunchOptions = new BrowserTypeLaunchOptions
                {
                    ExecutablePath = @"C:\inetpub\wwwroot\My_App\App_Data\tools\playwright\webkit\Playwright.exe",
                    Env = environmentKeyValues
                };

Should the mentioned approach work? If not, how to set up the custom path? Thank you in advance! :)

I'm, also OK to have the .playwright under the bin folder, even the value of the next code is the C:\inetpub\wwwroot\My_App:
DirectoryInfo assemblyDirectory = new(AppContext.BaseDirectory);
string appPath = assemblyDirectory.FullName;

Why it's looking under the Temporary ASP.NET Files?

Hi, my question is similar to the current one, could you please explain the correct way of how to set up the custom path for the playwright driver?
Currently the path which works for me is this one:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\13163ddd\37e5e286\assembly\dl3\.playwright
But how can I add the .playwright correctly under my application, I would like to create something like a portable app that will work out of the box with the Playwright. I'm able to use the ExecutablePath of the BrowserTypeLaunchOptions for the bundled browser itself. Can I do something like this for the driver? I've tried to setup the driver path via Environment, but looks like it doesn't have effect:
IEnumerable<KeyValuePair<string, string>> environmentKeyValues = new List<KeyValuePair<string, string>>
                {
                    new ("PLAYWRIGHT_DRIVER_PATH",
                        @"C:\inetpub\wwwroot\My_App\App_Data\tools\playwright\webkit\.playwright\node\win32_x64\playwright.cmd")
                };

                BrowserTypeLaunchOptions browserLaunchOptions = new BrowserTypeLaunchOptions
                {
                    ExecutablePath = @"C:\inetpub\wwwroot\My_App\App_Data\tools\playwright\webkit\Playwright.exe",
                    Env = environmentKeyValues
                };

Should the mentioned approach work? If not, how to set up the custom path? Thank you in advance! :)

I'm, also OK to have the .playwright under the bin folder, even the value of the next code is the C:\inetpub\wwwroot\My_App:
DirectoryInfo assemblyDirectory = new(AppContext.BaseDirectory);
string appPath = assemblyDirectory.FullName;

Why it's looking under the Temporary ASP.NET Files?

I'm sorry for the many messages, but I've debugged your code, the Microsoft.Playwright.Helpers.Paths class and find out that the next code:
DirectoryInfo assemblyDirectory = new(AppContext.BaseDirectory);
            if (!assemblyDirectory.Exists || !File.Exists(Path.Combine(assemblyDirectory.FullName, "Microsoft.Playwright.dll")))
            {
                var assemblyLocation = typeof(Playwright).Assembly.Location;
                assemblyDirectory = new FileInfo(assemblyLocation).Directory;
            }

returns the next path for the assemblyDirectory: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\13163ddd\37e5e286\assembly\dl3\215d64e4\006e4772_9bccd701 because the Microsoft.Playwright.dll is there. Is it because I installed the Playwright CLI globally?

Hi, my question is similar to the current one, could you please explain the correct way of how to set up the custom path for the playwright driver?
Currently the path which works for me is this one:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\13163ddd\37e5e286\assembly\dl3\.playwright
But how can I add the .playwright correctly under my application, I would like to create something like a portable app that will work out of the box with the Playwright. I'm able to use the ExecutablePath of the BrowserTypeLaunchOptions for the bundled browser itself. Can I do something like this for the driver? I've tried to setup the driver path via Environment, but looks like it doesn't have effect:
IEnumerable<KeyValuePair<string, string>> environmentKeyValues = new List<KeyValuePair<string, string>>
                {
                    new ("PLAYWRIGHT_DRIVER_PATH",
                        @"C:\inetpub\wwwroot\My_App\App_Data\tools\playwright\webkit\.playwright\node\win32_x64\playwright.cmd")
                };

                BrowserTypeLaunchOptions browserLaunchOptions = new BrowserTypeLaunchOptions
                {
                    ExecutablePath = @"C:\inetpub\wwwroot\My_App\App_Data\tools\playwright\webkit\Playwright.exe",
                    Env = environmentKeyValues
                };

Should the mentioned approach work? If not, how to set up the custom path? Thank you in advance! :)

I'm, also OK to have the .playwright under the bin folder, even the value of the next code is the C:\inetpub\wwwroot\My_App:
DirectoryInfo assemblyDirectory = new(AppContext.BaseDirectory);
string appPath = assemblyDirectory.FullName;

Why it's looking under the Temporary ASP.NET Files?

I've debugged the Microsoft.Playwright.Helpers.Paths class and I understood why it works like this.

The AppContext.BaseDirectory (LIne 36) is correct, it points to the my application folder as C:\inetpub\wwwroot\My_App.
But the Microsoft.Playwright.dll is not there, it's under the bin folder: C:\inetpub\wwwroot\My_App\bin, hence the if-statement (Line 37) cannot find the file there and trying to find the Playwright type location via typeof(Playwright).Assembly.Location which is points to the C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\13163ddd\37e5e286\assembly\dl3\215d64e4\006e4772_9bccd701\Microsoft.Playwright.dll.
Hence the rest of the code expects for the .playwright driver under the Temporary ASP.NET files.

I can replicate this issue as well on a Console Application with the latest Nuget Package (Version 1.17.0) and a  .Net Framework Console App targeting .NetFramework 4.8.
It seems like the install tool is not smart enough to recognize that this is not a .Net Core/5/6 project.
As a workaround what I did is copy the the .playwright folder to the bin/Debug folder from a .Net Core Project.

I figured out what the issue is. It has to do with how packages are handled in Full .Net Framework Projects (4.7, 4.8, etc..)
By default PackageReference is used for .Net Core/5/6 projects.  .NET Framework projects support PackageReference, but currently default to packages.config.
When the Nuget package for Playwright is installed in a Full .Net Project it creates a packages.config file and the following reference in the .CSPROJ file:
    <Reference Include="Microsoft.Playwright, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=db12f80f85d8ba23, processorArchitecture=MSIL">
      <HintPath>packages\Microsoft.Playwright.1.17.0\lib\netstandard2.0\Microsoft.Playwright.dll</HintPath>
    </Reference>

Compare this to .Net Core/5/6 projects, which default to PackageReference:
  <ItemGroup>
    <PackageReference Include="Microsoft.Playwright" Version="1.17.0" />
  </ItemGroup>

This causes two separate issues with Playwright on Full .Net Projects:
Issue 1: Playwright install fails with the error described above
Issue 2:  dotnet build  does not generate the .playwright folder
The workaround is to migrate your full framework project to package reference
Once I migrated my project to PackageReference the CLI tools (dotnet build, playwright install) worked as expected.

Awesome, closing since it seems solved!

我把我的框架升级到了5.0，就没问题了。当然如果非得要在4.7.2下面使用，简直直接把.playwrite文件夹放到你的目标目录。


Contribution

✨ 개요
똑똑한 협업을 위한 정비를 해야 합니다.
✅ 해야 할 일

[x] Code Convention
[x] Commit Convention
[x] Issue Template
[x] PR Rule
[x] Branch Naming Rule
[x] CONTRIBUTING.md
[ ] PR Priority

🙋🏻 덧붙일 말
참조

angular.js

References
https://tech.kakao.com/2022/03/17/2022-newkrew-onboarding-codereview/
https://blog.banksalad.com/tech/banksalad-code-review-culture/


[Offline basemaps] Reuse viewport of main map when opening the area selector map

@shobhitagarwal1612 Was this addressed by your recent change? If so please close.

Yes


Update meta.yaml

bumped version to <IP_ADDRESS>

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Some matplotlib plot/style options override rcparams by default

For example,
import numpy as np
import holoviews as hv
hv.extension('matplotlib')

e = hv.Scatter(np.random.rand(10,2))
e.opts(fig_rcparams={'axes.spines.right': True})

does not work because the default show_frame=False already overrides anything I could set in a mpl style.
Two possible solutions:

Either default to None on those kinds of options and don't apply unless explicitly set to True or False, or
deprecate them and handle more plot options directly through rcparams or style files.

I can see why one would want to keep them around for convenience (option 1) but my experience is that they rather get in the way of the more declarative approach through global matplotlib styling so I'd actually tend to prefer 2.
(One could maybe think about providing an interface that translates such convenience plot options into the appropriate rcparams key-value pairs.)
Parameters for which this is the case:

show_frame
xformatter, yformatter

A third option, currently my favourite and the one that would clash the least with the current API (catering to people who don't want to how to worry about rcParams), would be a third option:
3. Collect those options into an rcparam dictionary, then update that dictionary with any user/context-provided rcparam style.


Restic backups fail

Hi there,
I'm not even sure the problem comes from your plugin, but I'm trying to use restic backups (as there is no Block Store for now) with no success.
Do you happen to have any issues with your stack?
Configuration :

Velero 1.5 with restic enabled :
velero install --use-restic
Velero plugin Swift v0.1.1
OS Authentication config in velero deployment (keystone v3):
OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, OS_PROJECT_ID, OS_PROJECT_NAME, OS_REGION_NAME, OS_DOMAIN_NAME
A bucket in Openstack :
velero_backups
A default BackupStorageLocation for Velero:

apiVersion: velero.io/v1
kind: BackupStorageLocation
metadata:
  name: default
  namespace: velero
spec:
  config:
    resticRepoPrefix: public_volumes
  objectStorage:
    bucket: velero_backups
    prefix: public_resources
  provider: swift

An annotated pod for restic backups:

$ k -n test-velero get pods ubuntu-75d9d656-29mbr -o yaml | grep -A 1 "annotations:\| volumes:"
  annotations:
    backup.velero.io/backup-volumes: test-vol
--
  volumes:
  - name: test-vol

Symptoms:

No repo argument in the restic unlock command made by Velero

$ k -n velero logs  -f velero-bf8848f55-8x6jl
[...]
time="2020-10-15T12:42:44Z" level=error msg="Error checking repository for stale locks" controller=restic-repository error="error running command=restic unlock --repo= --password-file=/tmp/velero-restic-credentials-158994766 --cache-dir=/scratch/.cache/restic, stdout=, stderr=Fatal: Please specify repository location (-r)\n: exit status 1"

Backup partially fails (all namespace resources are backed-up, volumes aren't)

$ velero backup create test-velero-backup --include-namespaces=test-velero
Backup request "test-velero-backup" submitted successfully.
Run `velero backup describe test-velero-backup` or `velero backup logs test-velero-backup` for more details.

$ velero backup describe test-velero-backup
[...]
Phase:  PartiallyFailed (run `velero backup logs test-velero-backup` for more information)
Errors:    1
Warnings:  0
[...]
Started:    2020-10-15 15:41:49 +0200 CEST
Completed:  2020-10-15 15:41:55 +0200 CEST
[...]
Total items to be backed up:  10
Items backed up:              10

$ velero backup logs test-velero-backup
An error occurred: request failed: 401 Unauthorized: Temp URL invalid

There is no podvolumebackup or resticrepository created.

It'd be awesome if you could share your experiences on the matter.

Hi @pierredadt
I have to say I didn't try the restic with velero yet, I have very simple use-case to only backup k8s resources.
But anyway I will try to check (in the following days) if this issue is related to something missing in plugin implementation or it is related to something else.

Thanks for you input!
Please keep in touch, I only flew over Go but I'd like to re-implement what's been done for Ark with https://github.com/cisco-sso/velero-plugin-openstack one day and would benefit any insight.

So I tried your approach and I can reproduce the error.
Here are results of commands which shows that something is wrong:
$ kubectl describe backupstoragelocations.velero.io default
Spec:
  Config:
    Restic Repo Prefix:  lirt-swift
  Object Storage:
    Bucket:  lirt-swift-test
  Provider:  swift

$ velero restic repo get
NAME                   STATUS     LAST MAINTENANCE
velero-default-cz7nc   NotReady   <never>

$ kubectl get resticrepositories.velero.io
NAME                   AGE
velero-default-cz7nc   22m

$ kubectl describe resticrepositories.velero.io velero-default-cz7nc
Status:
  Message:  restic repository prefix (resticRepoPrefix) not specified in backup storage location's config
  Phase:    NotReady

This indicates that my restic repository was not initialized or something is wrong with it.
From there I got to restic documentation where there is a guide to setup it on Swift:
$ restic -r swift:container_name:/path init   # path is optional
enter password for new repository:
enter password again:
created restic repository eefee03bbd at swift:container_name:/path
Please note that knowledge of your password is required to access the repository.
Losing your password means that your data is irrecoverably lost.

Unfortunately my swift forbids me to create the repository so I cannot test it further now. Can you try to follow the docs and then configure config.resticRepoPrefix to match the restic repository and retry?
Here is the code responsible for configuring the prefix - https://github.com/vmware-tanzu/velero/blob/master/pkg/restic/config.go#L43-L79
I think in your case it should be swift:public_volumes but I cannot guarantee it.

I think this issue is on Velero side as you also mentioned.
Maybe you could try to read the password file of the pod in the kubernetes to make sure credentials are 100% loaded correctly. The error is probably related to something with authentication if the error message doesn't lie (conn.Authenticate: Bad Request).
I noticed that in you docker command, you use different path to --repo. Maybe its not an issue, but just a note here.
--repo=swift:velero:/public_cluster/snapshots/test-velero
--repo=swift:velero:/public_cluster/snapshots

I noticed that in your docker command, you use different path to --repo. Maybe its not an issue, but just a note here.
You're right, my mistake. It does make a difference as the repo or object under /test-velero does not exist, and it's certainly the reason behind the BadRequest.

$ docker run -ti --env-file os_envs.env -v /tmp/velero:/cache -v /tmp/password.txt:/tmp/password.txt restic/restic:0.9.6 unlock --repo=swift:velero:/public_cluster/snapshots/test-velero --password-file=/tmp/password.txt --cache-dir=/cache
Fatal: unable to open config file: conn.Object: Object Not Found
Is there a repository at the following location?
swift:velero:/public_cluster/snapshots/test-velero

If that's the case, it means that not only Velero does not create any parent repo (resticRepoPrefix) but it doesn't create any repo at all for individual backups (resticRepoPrefix/namespace).

I'm pretty sure I'm not supposed to create manually all my repos for Velero to be able to use restic!
It should actually run a restic init <repo> command sometime in the process, but there is no log trace of such a thing.
https://github.com/vmware-tanzu/velero/blob/87d86a45a6ca66c6c942c7c7f08352e26809426c/pkg/controller/restic_repository_controller.go#L212
As you can see, the string Is there a repository at the following location? is present on the unlock command, and Velero should trigger the repo creation.
And for what I can find in documentation, your plugin implements all the methods a ObjectStore should receive!

I'll take this one to Velero's github then, many thanks again for your input.
I can report my findings back here if you wish, in the meantime I think I can close the issue to keep your repo clean!

I understand. It looks weird indeed. Documentation says restic implementation should cover also restic init.

ResticRepository - represents/manages the lifecycle of Velero’s restic repositories. Velero creates a restic repository per namespace when the first restic backup for a namespace is requested. The controller for this custom resource executes restic repository lifecycle commands – restic init, restic check, and restic prune.

And noted also in this backup workflow

When found, Velero first ensures a restic repository exists for the pod's namespace, by:
checking if a ResticRepository custom resource already exists
if not, creating a new one, and waiting for the ResticRepository controller to init/check it

Thank you for reporting and insight.

Hi again @pierredadt
I just wanted to mentioned I started to work on Cinder Block Storage integration with this plugin. Will let you know as soon as it is ready for review.
https://github.com/Lirt/velero-plugin-swift/issues/6


Plan to add new features

We are implementing the same project, there is another repo here. As that repo uses the HAAR cascade method to detect traffic signals and stops signs but the issue is that repo uses the client-server method which sacrifices the framerate of cam stream and other processing resources . We needed your help to modify the code and add features of detect sign boards and other stuff.

@Vignesh1115 @vimalvnair

Hi @swapnillubal,
We welcome any contributions from the community. It's great to know that you want to contribute to this project. Please don't hesitate to reach out to us if you need any help.


atom-material-ui's predefined colour setting now also affects cursors and line numbers

Pretty self-explanatory.
I thought this minor change complimented the theme changes when the user chooses a different colour.

This is something I've been wanting to do for a while, but I'm not comfortable with modifying other themes or messing with the syntax theme in the UI theme.
I still can't decide between scoping this only to atom-material-syntax themes or making it an optional feature in the settings. 😕

I would definitely go with making in an optional feature (obsviously default value will be false).
I'm probably just saying that because I created this PR and want this feature haha 😉

I'll merge this and implement the toggle 👍

Legendary  👍


Can't use subprograms from multiple probes

The BPF verifier requires that all defined subprograms are used by the main program.
Our current approach involves appending all subprograms into .text, whether they are used by a given probe or not. This means that if a script contains multiple probes, each with their own subprograms, the verifier will reject it.
What reproduces the bug?
BEGIN
{
  @map[0] = 1;
  print(len(@map))
}
END
{
  print(len(@map))
}

Attaching 2 probes...

Error log:
number of funcs in func_info doesn't match number of subprogs
processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0

ERROR: Error loading program: BEGIN

The easy fix for len() would be to simply merge duplicate subprograms into a single len() subprogram.
However, we will also need to implement a proper fix for #2955.
libbpf encountered this same problem previously<EMAIL_ADDRESS>

@viktormalik How much of the BpfProgram logic will remain when we complete the libbpf migration? Do you think libbpf will be able to solve this issue for us?

The BPF verifier requires that all defined subprograms are used by the main program.
Our current approach involves appending all subprograms into .text, whether they are used by a given probe or not. This means that if a script contains multiple probes, each with their own subprograms, the verifier will reject it.

Ah, so we would need to copy just the required symbols, not the entire .text. That sounds tricky as there may be relative offsets which would have to be fixed.

@viktormalik How much of the BpfProgram logic will remain when we complete the libbpf migration? Do you think libbpf will be able to solve this issue for us?

Yes, it will solve the issue completely as all of the relocations code will go away. I'll put a higher priority on that work.

What we could do here is emit subprograms into special sections named e.g. .text.<probe-name> and then transform the relevant section into .text for the given probe in BpfProgram.
That should be fairly easy to implement and should temporarily mitigate this issue until we fully move to libbpf.

e.g. .text. and then transform the relevant section into .text for the given probe in BpfProgram.

QQ: should it be probe id? I think you can have multiple of the same probe name right (different preds) ?
I can try to take a look a fixing this issue if folks point me in the right direction :)

e.g. .text. and then transform the relevant section into .text for the given probe in BpfProgram.

QQ: should it be probe id? I think you can have multiple of the same probe name right (different preds) ?
I can try to take a look a fixing this issue if folks point me in the right direction :)

I'd use the section name for the given probe (with the .text prefix), have a look at the get_section_name_for_probe function.

@viktormalik I might need another pointer :) - I was able to get the temp solution that @ajor mentioned where I just merge the len functions but when trying to put the len subprogram into anything but the ".text" section I ran into this error:
[WARN] libbpf: sec 's_BEGIN_1': program 'map_len_cb' is static and not supported
ERROR: Failed to compile: The produced ELF is not a valid BPF object

This seems to be a requirement for libbpf: https://github.com/libbpf/libbpf/blob/master/src/libbpf.c#L3696C9-L3696C15
This all happens before BpfProgram is invoked. I'm sure I'm just missing something.

Damn, yeah, I forgot that we're loading the created ELF with libbpf now:
https://github.com/bpftrace/bpftrace/blob/master/src/bpfbytecode.cpp#L15
This may be quite tricky to do, I'm wondering if it is possible to tell libbpf to ignore certain sections. Maybe we could mark them as not containing instructions? This is still a temporary workaround until full libbpf-based loading lands.

Ah ok. Let's loop in @anakryiko to see if he has any suggestions.

This is still a temporary workaround until full libbpf-based loading lands.
Is there anything I can do to help unblock libbpf-based loading?

Is there anything I can do to help unblock libbpf-based loading?

Not at the moment. It's a lot of work since we need to significantly rework the way we do probe expansion. I believe I'm finally on the right track so some preparation PRs should appear next week. Then, your reviewing help will be much appreciated :-)

if you are using libbpf to load ELF file, libbpf will take care of only using subprograms that are used by main BPF program. So it all works very naturally. If you are running into some problems, then you are not letting libbpf do its full job. Can someone summarize what's being done by bpftrace vs libbpf, so we can pin down where things go wrong?

if you are using libbpf to load ELF file

This is currently WIP but it will take some time to land so we wanted to workaround this issue in the meantime.

Can someone summarize what's being done by bpftrace vs libbpf, so we can pin down where things go wrong?

Sure, the current (simplified) bpftrace workflow is the following:

Generate ELF in which probes go into custom sections and subprograms go into .text.
Use bpf_object__open_mem for the ELF. This is currently used only to discover maps in the program.
For each probe, take the corresponding custom section and the entire .text and pass it to bpf_prog_load. This is where the error from the issue description happens as .text may contain subprogs for other probes, too.

The plan is to replace point 3 by calling bpf_object__load which should resolve the problem but as I mentioned, it's not a straightforward thing to do and will take some time. For the meantime, my idea was to store subprogs in per-probe sections (e.g. .text.<probename> and transform them into .text for each probe in point 3 but bpf_object__open_mem doesn't seem to like such sections.

@viktormalik yes, libbpf enforces that all subprograms live strictly in .text. There are two (rather hacky, but it's temporary, right?) ways around this:

libbpf ignores all the sections that start with ".debug_" (presumably that's DWARF sections), so instead of .test.<probename> you can do .debug_text.<probename> (or something along those lines)

you can maybe make each subprog into its own "entry program" (i.e., section ?kprobe/<subprog>). Given you use libbpf just to discover maps, it should be fine. Question mark marks it as non-autoloadable by default.

Would any of that work?

Both would, many thanks! I'm slightly in favor of option 1, @jordalgo do you still have time to look at implementing this? Thanks!

@viktormalik Yes, let me give it a shot this week. I wanna get better at this part of the codebase. I'll call for help as needed 📞

Still struggling with this. For example, even if I set the section for the simple map len function to .debug_text then I get a relocation error when we call bpf_object__open_mem
[DEBUG] libbpf: sec '.rels_BEGIN_1': relo #2: insn #17 against '.debug_text'
[WARN] libbpf: prog 'BEGIN': bad map relo against '.debug_text' in section '.debug_text'

you can maybe make each subprog into its own "entry program" (i.e., section ?kprobe/). Given you use libbpf just to discover maps, it should be fine. Question mark marks it as non-autoloadable by default.

Tried this too outside of bpftrace in a raw bpf.c file loaded by libbpf and got the same bad map relo error. It also doesn't like when I try to make entry programs static.

Is the error happening on bpf_object__open_mem?

Ah sorry, I see the answer in one of your previous comments. It looks like we cannot resolve this in another way that moving to libbpf loading. Good news is I've the work almost done, I'm opening the first PR today.

Dropping the 0.21 milestone from this one as #3233 introduces a user-friendly error and the issue should get resolved by moving to libbpf-based loading.

This was fixed here: https://github.com/bpftrace/bpftrace/pull/3285


S2A zero-copy frame protector, updated

This PR is a minor update of #7, which was necessary due to the order of PR's that were recently merged into s2a-master.
Since the PR was already quite large, I will add additional roundtrip tests for the frame protector and record protocol in a separate PR.

Thanks for the review @cesarghali!
@jiangtaoli2016 This PR is ready for you to take a look at! Thanks in advance! :)

Thanks so much for the review @jiangtaoli2016! I've responded to each of your comments, and I'll address your 2 high-level comments below.

You are correct that we will move all of the code shared with ALTS into a shared library under src/core/tsi. The plan is to first merge with the gRPC-master, and then send a second PR with all of this reorganization. (The reorganization will involve many changes and it is at risk of breaking things, so I'd like to decouple it with the merge of the S2A client code as best we can.)

I agree that the record protocol, the s2a_crypter, is quite C style and it should be updated at some point. When I began writing it, I did not realize that we could use e.g. classes in the C-core. In the interest of producing a working prototype ASAP, we decided against going back and refactoring it this quarter. But this is definitely something we intend to return to.

If you have any other comments, please let me know! Thanks again!

Thanks again for the review @jiangtaoli2016 and @cesarghali!
Squashing and merging now.


Add support for photos

Good work 😎
How about adding support for the /photos endpoint?
GET https://www.strava.com/api/v3/activities/:id/photos?photo_sources=true
http://strava.github.io/api/v3/activity_photos/#list
I'll be happy to submit a PR.

Thank you. PR is welcome (y)

Started looking into this, but got a bit demotivated by all the failing tests (mostly due to issue #7, I suppose). Will put it on hold until #7 is fixed.

Photos has always been restricted to only getting the ones from the current logged in athlete by the way...

Hmm weird the POC would work... we added the info about the limitation in 2016 already ( https://github.com/AppCreativity/Kliva/wiki/Public-API-limitations )

Ok, I suppose you're right. Can't find the source code of my POC anymore so I might be remembering this wrong.

It's hard being a third-party user of the Strava API, so much is not possible and indeed with the new restrictions things are getting worse :/


Return long session IDs in /status API when GGR_HOST is set

Needed for polling this info.

Makes no sense as GgrUI automatically adds host sum to session ID.


[WAF - Reliability Review] - avm/res/api-management/service

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Issue Type?
Feature Request
Module Name
avm/res/api-management/service
(Optional) Module Name if not listed above
No response
(Optional) Module Version
No response
Description
Hello @Azure/avm-res-apimanagement-service-module-owners-bicep,
The AVM core team are performing a review of all AVM modules to ensure they are aligned to the WAF reliability pillar by default, and in the future they will be checking against other WAF pillars also. This is a requirement we have before we can go v1.0.0 for any AVM module.
Links to AVM specs:

https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-sfr2---category-composition---waf-aligned
https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-sfr5---category-composition---availability-zones

Links to WAF Reliability & APRL recommendations used for analysis:

https://learn.microsoft.com/azure/well-architected/reliability/checklist
https://learn.microsoft.com/azure/well-architected/service-guides/api-management/reliability
https://azure.github.io/Azure-Proactive-Resiliency-Library/services/integration/api-management/

Whilst reviewing this module the following issues have been found that are non-compliant with the AVM specs that need to be resolved in a new version release:

[ ] The default SKU should be set to Premium so AZs can be enabled - https://github.com/Azure/bicep-registry-modules/blob/main/avm/res/api-management/service/main.bicep#L57-L65
[ ]  The resource should be spread across all 3 AZs by default - https://github.com/Azure/bicep-registry-modules/blob/main/avm/res/api-management/service/main.bicep#L91-L93

Please make these changes in a PR to the parameter defaults so a new minor version can be published.
Thanks
The AVM Core Team
(Optional) Correlation Id
No response

superseded by #1473


POC: Skip kaniko build in serverless

Description
Verify the following ideas:

Serverless does not need to trigger kaniko build for Functions but instead the code and dependencies could be mounted from pv
into serverless provided base image.
Do not make any assumptions based on existing function controller code.
Assume that Function CR remains backward compatible

Document the outcome as a issue comment and discuss with the team (derive recommendations for git functions).
If the ideas are validated, draw necessary diagrams explaining necessary changes in the function processing flow.
Reason
If the POC validates the idea we could eliminate the dependencies to kaniko build and docker registry. This could greatly speed up redeploying new versions of code and reduce necessary resources required to develop ideas as functions (no extra  memory, cpu time or Volume storage for images).
Additionally the POC could help positioning serverless module as development tool that helps users to prove their ideas in the kyma runtimes as functions and later "eject" them into manifests that declare production-grade workloads

Before starting the poc -> Estimate the gain:

how many functions are there that potentially dont need a build ?
do customers need that immediate redeployment of changed code ?

if I understand well the whole ideas is pretty much similar to the existing base function image override. ?
Power of serverless with SAP BTP, Kyma runtime. Base image override.

POC results
Actual solution
The whole concept is a little bit simpler than the previous solution. Right now we have to deploy in-cluster docker-registry in the kyma-system with all needed resources (ServiceAccount, Secrets, Configmaps, Service with nodeport) to fulfill the build phase. For example, we need a service with nodeport exposure to allow Kubernetes to pull images from our docker-registry, then we need to copy a few resources to every namespace to enable building images and add a possibility to pull it later by deployments:

configmaps with Dockerfile definitions for every runtime
secrets with access to the registry for pulling and pushing images
service account used by functions deployments with RBACs and secrets

additionally, we have to control three phases of function lifecycle (configuration, building, running) and in the separate phase, we create separate resources belong to the functions:

configuration - validate function and create configmap with sources
building - create a building job (kaniko) and wait until it is completed
running - create a deployment with SA that has access to the registry (credentials from secret)  and wait until it is ready

The diagram below describes the actual implementation in general:

New solution
Concept
POC proved that it's possible to skip the building phase and mount function sources directly to the functions' pods. The idea was to register central PVC, expose it to other namespaces using NFS server, and then use dedicated (for every function) PV and PVC to mount function sources to the functions pods. The diagram below describes the idea in general:

In the following proposition we can highlight two function lifecycle phases:

configuration - validate function and copy sources to the central PVC
running - create a deployment, run npm install on function sources, and wait until it is ready

Implementation
To prove the idea we decided to create our own, simpler, and not full-featured controller to a little bit speed up the whole process. Implementation is split into two folders:

components/buildless-serverless - controller code with all types
config/buildless-serverless - minimalistic chart with all needed resources

We decided to support happy-path, without:

other runtimes than nodejs20
*deletion process
git-functions
scaling
custom envs
resource configuration
custom labels
custom annotations
runtimeImageOverride

To test POC run the following script in the checkouted kyma-project/serverless repo:
docker build -t buildless-serverless:alpha1 -f components/buildless-serverless/Dockerfile .
k3d cluster create
k3d image import buildless-serverless:alpha1
kubectl create ns kyma-system
helm template --namespace kyma-system config/buildless-serverless | kubectl apply -f -
kubectl wait --for condition=ready pod -l app=buildless-serverless -n kyma-system --timeout 3m

now we can create a function and port-forward it:
cat <<EOF | kubectl apply -f -
apiVersion: serverless.kyma-project.io/v1alpha2
kind: Function
metadata:
  name: test-function-nodejs-cjs
spec:
  runtime: nodejs20
  source:
    inline:
      dependencies: |
        {
          "name": "test-function-nodejs",
          "version": "1.0.0",
          "dependencies": {
            "lodash":"^4.17.20"
          }
        }
      source: |
        const _ = require('lodash')
        module.exports = {
          main: function(event, context) {
            return _.kebabCase('Hello World from Node.js 20 Function');
          }
        }
EOF
sleep 5
kubectl wait --for condition=ready pod -l function=test-function-nodejs-cjs --timeout 3m
kubectl port-forward svc/test-function-nodejs-cjs 8080:80

now we can call a function in a second terminal:
curl localhost:8080

result:
hello-world-from-node-js-20-function

Conclusions

It's possible to skip build

For the needs of this POC we do not implement all reconciliation operations and do not support all fields and all use cases:

We can keep all function features expecting these about build configuration (like build job resources, labels...)
We can still support git-sources functions or even runtimeImageOverride without any changes on the users' side
We can keep almost all serverless API featured - we have to get rid of these about build like resources, labels

We have to decide if we want to refactor function-controller or create a new one:

If we decided to keep the old function API (CRD), because it's possible, then we would not have any migration, but still, we have to think about existing functions and how to migrate them to the new solution

For the POC needs we used NFS server image from cpuguy83 but in my opinion, we have to create our one and maintain it:

Establish details bout NFS PVC and functions PV/PVC definitions details (storage size ... )

We can use unchanged runtime base images to run them in pods with mounted functions source code and dependencies:

to simplify the process we decided to run npm install (fetch and install all dependencies) at runtime in every functions pod. This solution is good enough for POC purposes but it's not production-ready
We should hot-reload when the source code is changed
We should hot-reload when dependencies are changed

We decided to support happy-path, without:
other runtimes than nodejs20
deletion process
git-functions
scaling
custom envs
resource configuration
custom labels
custom annotations
runtimeImageOverride

Given you have removed all the real features that make serverless what was the purpose of this POC ?

We decided to support happy-path, without:
other runtimes than nodejs20
deletion process
git-functions
scaling
custom envs
resource configuration
custom labels
custom annotations
runtimeImageOverride

Given you have removed all the real features that make serverless what was the purpose of this POC ?

We have not removed them, we do not support them in the POC implementation. That does not mean that this POC expects to get rid of these features. We decided to prove that it's possible to skip the build phase and we need PVC to keep all features. It's described in the Conclusions in the last section:
- We can keep all function features expecting these about build configuration (like build job resources, labels...)

POC v2 results
Introduction
After proposing the POC v1 we got tons of feedback and together with architects decided to simplify the whole concept. General feedback:

We should not implement a PVC server ( we should think about a solution without any PVC )
We should get rid of custom dependencies in function
We should offer a few variants of our base runtimes with built-in dependencies focused on more specific use-cases. For example:

nodejs20 - simple and small nodejs
nodejs20-hanadb - nodejs with hanadb client
python13 - simple and small python13
python13-hanadb - python with hanadb client
...

Result
Now new serverless architecture is much, much simpler in comparison to the actual implementation and POC v1:

No NFS server
The first huge change is the lack of the NFS server. This change allows us to run functions much faster and immediately react to changes in code, but the disadvantage is that there is no possibility to support user dependencies and download them in runtime (possibility always exists but in this case, without NFS server or PVC for every function, it's not possible to synchronize dependencies between functions pods and keep them for next function versions).
No PVC
The second change is that we decided to get rid of storing functions code and dependencies in one, dedicated storage shared between function pods and it's versions. This is related to NFS server removal.
No dependencies
The first and the second change forced us that we should not allow users to pass custom dependencies in the functions spec. Because in POCv2 without an NFS server and common PVC, there is no possibility to update functions code without changing pod's definition, for example when a user updates the code but dependencies are still the same.
More runtimes!
In the final shape of the POC, we can't support user dependencies, so we have to prepare more runtimes with built-in dependencies. For example, for it can look like this:

nodejs20 - simple and small nodejs
nodejs20-hanadb - nodejs with hanadb client
...
nodejs20-all - nodejs containing all dependencies from other runtimes
python13 - simple and small python13
python13-hanadb - python with hanadb client
python13-all - python containing all dependencies from other runtimes
...

We can still support fields like runtimeImageOverride that allow users to pass custom images with more specific dependencies. Example of a really simple Dockerfile that wraps base runtime image with custom dependencies:
# import base nodejs20 image with all features
FROM europe-docker.pkg.dev/kyma-project/prod/function-runtime-nodejs20:2.0.0

# add custom dependencies
RUN npm install lodash

Hot Deploy
In this case, we can offer really simple and usable hot-reload functionality. If we offer functions as simple code runners, that can be ready to go almost immediately after applying it on the cluster, then we can pass code to the pod as an argument for the command field, so if user changes code this causes changes in the functions pod definition and Kubernetes immediately start another pod that will be ready to go after a few seconds and remove old one:
apiVersion: v1
kind: Pod
metadata:
  name: test-function
  namespace: default
spec:
  containers:
    - command:
      - "bash"
      - "-c"
      - "echo <FUNCTION_CODE> > handler.js; npm run"
...

NOTE: This is only an example. We can pass the code in env or think about another solution.

We also know that we can keep code in configmap and mount it to every function pod, but this solution has huge disadvantages. The time needed for Kubernetes to update mounted files in pods collapses from 5sec to 30sec. We aim for a solution that allows us to run functions in less than 5sec, so we can't see configmaps.
Function v2
The POC v1 aims to be fully compatible with the actual solution so as a result we've got a solution proposition that does not require any changes in the Functions API (CRD). The POC v2 changes too many things and concepts as a result we should prepare totally new Functions CR version, for example, the v2alpa1 that will contain only necessary fields.
Unfortunately, migration from version v1alpha2 to v2alpa1 will be not possible so we should deprecate old functions and help users with migration from old to new solution, but we can't propose any automatic mechanism.
Conclusions

There will be no NFS server and no PVC for function

We can't support user dependencies
We should prepare a few variants of our runtimes
We can support users by adding their own variants

We can perform hot-deploy functionality based on behavior performed by every pod
We can't support the old Function v1alpha2 spec

We should propose a new v2alpha1 version
We can't migrate the v1 to the v2 but we can help users with migration (create a tutorial or something)

Function v2alpha1
In this POC we mentioned that we should prototype and implement another version of our Functions. I would propose the very first shape of such an API. I prepared it based on the existing solution, but without fields that we can't support (like things about build configuration like spec.resourceConfiguration.build or old-fashioned thingies like spec.scaleConfig). The new Function may look like:
apiVersion: serverless.kyma-project.io/v2alpha2
kind: Function
metadata:
  name: function
spec:
  replicas: 1
  runtime: nodejs12
  runtimeImageOverride: pprecel/nodejs20-custom:0.1
  source:
    inline: |-
      function main() {...
    # or
    # gitRepository: ...
  env:
    - name: MY_ENV
      value: MY_VALUE
  resourceConfiguration:
    profile: XL
    # or
    # requests...
    # limits...
  secretMounts:
  - secretName: my-secret
    mountPath: /tmp/secret
  labels:
    test-label: test-label-value
  annotations:
    test-annotation: test-annotation-value

New Horizon
These changes are the very end of certain features but the beginning of a new, better buildless-serverless life, and a new horizon.
We can support users who have prepared custom runtime bases with additional functionalities or dependencies and want to pull these runtime bases from private registries. Previously we had to connect our ServiceAccounts to every functions pod because these ServiceAccount allows a pod to pull images from a private in-cluster registry where we store such images. Right now we can allow users to use their own ServiceAccount for every function to allow users to pull images from private registries and for example to configure RBACs for every function.
For example:
A user may want to deploy a function that has to update configmap or any other resource after getting a request. Then user can define a custom ServiceAccount with a Role and RoleBinding that allows to do such operations on the cluster.
When a user wants to deploy a function with a custom base runtime image, and such image is located inside the private registry, then ServiceAccount with imagePullSecrets configured:
imagePullSecrets:
- name: private-registry-configuration

New Challenges
Right now we keep a kind of hot-potato in our serverless manager, called libgit2 which is really hard to maintain from our perspective. It gives us strong possibilities because we can easily handle connection with every kind of git provider in a new version. The problem is that libgit2 faces memory leak issues that are described here and I don't see the possibility of fixing these problems, because git2go (go implementation for libgit2) is unmaintained (more info).
If we want to propose and still support git-sourced functions I would suggest thinking about alternatives. The huge problem is the best (from my perspective) alternative is go-git but as far as I know the input data needed for connections looks a little bit different and we should prototype and refactor our actual API under the spec.source.gitRepository field.
New Possibilities
From our perspective, the actual Serverless is the developer-only tool. It means that is does not meet production-grade requirements like SAP-SLC29. The good news is in our new architecture we may re-investigate this topic and maybe we can meet such requirenments with git-sourced functions.
This is only a quick thought and as I said it requires re-investigation in this area, but hope is our fuel.

Having consulted @pbochynski and @varbanv, we decided that possibility for users to define custom dependencies should be preserved.
Only thing that should be dropped is the kaniko build itself.
As a next step, please implement a prototype (v3) with the following assumption:

function code is injected into the runtime pod w/o a need for build (consider injecting handler code during container start or as mounted config map )
function dependencies are resolved at the start time of the function pod (additional npm install)

- command:
      - "bash"
      - "-c"
      - "echo <FUNCTION_CODE> > handler.js; npm install; npm run"

Please prove that the same assumptions are applicable for python functions as well.
The possibility of skipping runtime dependency resolution in favor of using SAP provided runtime images (with a set of commonly used libraries) will be considered in the next steps (as a path towards enabling SLC-29 compliance)

POC v3 result
Introduction
As @kwiatekus mentioned, the goal of the next POC iteration is to prove that it's possible to implement a new serverless without the build phase, without the NFS server but still compatible with old functionality. The plan is to support flow described in the POC v2 but without getting rid of support of Functions dependencies (in the Function CR spec).
Implementation
The POC implementation lands in this PR and can be run using these spells:
docker buildx build --platform linux/amd64 -t pprecel/buildless-serverless:alpha1 -f components/buildless-serverless/Dockerfile .
k3d cluster create
k3d image import pprecel/buildless-serverless:alpha1
kubectl create ns kyma-system
helm template --namespace kyma-system config/buildless-serverless | kubectl apply -f -
sleep 5
kubectl wait --for condition=ready pod -l app=buildless-serverless -n kyma-system --timeout 3m

Features
The POC v3 is almost the same as v2, but we decided to check how resource and time-consuming will be adding dependencies resolving s functions pod startup (in runtime). The second important difference is support for python3.12 functions to check if there will be any differences in behavior or further problems.
The second change is support for resource specification
Measurements
This section describes how I tested POC v3 implementation on BTP cluster
Functions
I've decided to deploy four small functions to check how fast these will be fully operational (running):

nodejs20
apiVersion: serverless.kyma-project.io/v1alpha2
kind: Function
metadata:
  name: nodejs
spec:
  runtime: nodejs20
  source:
    inline:
      source: |
        module.exports = {
          main: function(event, context) {
            return 'Hello Serverless!';
          }
        }

nodejs20 with a few dependencies
apiVersion: serverless.kyma-project.io/v1alpha2
kind: Function
metadata:
  name: nodejs-deps
spec:
  runtime: nodejs20
  source:
    inline:
      dependencies: |
        {
          "name": "nodejs-deps",
          "version": "1.0.0",
          "dependencies": {
            "lodash":"^4.17.20",
            "@sap/xsenv":"5.3.0",
            "@sap/hana-client":"2.22.27"
          }
        }
      source: |
        const _ = require('lodash');
        var hana = require('@sap/hana-client');

        module.exports = {
          main: function(event, context) {
            return _.kebabCase('Hello World from Node.js 20 Function');
          }
        };

python3.12
apiVersion: serverless.kyma-project.io/v1alpha2
kind: Function
metadata:
  name: python
spec:
  runtime: python312
  source:
    inline:
      source: |
        def main(event, context):
            return "Hello Serverless!"

python3.12 with a few dependencies
apiVersion: serverless.kyma-project.io/v1alpha2
kind: Function
metadata:
  name: python-deps
spec:
  runtime: python312
  source:
    inline:
      dependencies: |
        requests==2.31.0
        camelcase==0.2
      source: |
        import requests
        import json
        from camelcase import CamelCase
        def main(event, context):
            r = requests.get('https://swapi.dev/api/people/13')
            c = CamelCase()
            return c.hump("response is:") + r.text

All functions were deployed at once with modified resource configuration in a few variants described below:
XS:
  requestCpu: "50m"
  requestMemory: "64Mi"
  limitCpu: "100m"
  limitMemory: "128Mi"
S:
  requestCpu: "100m"
  requestMemory: "128Mi"
  limitCpu: "200m"
  limitMemory: "256Mi"
M:
  requestCpu: "200m"
  requestMemory: "256Mi"
  limitCpu: "400m"
  limitMemory: "512Mi"
L:
  requestCpu: "400m"
  requestMemory: "512Mi"
  limitCpu: "800m"
  limitMemory: "1024Mi"
XL:
  requestCpu: "800m"
  requestMemory: "1024Mi"
  limitCpu: "1600m"
  limitMemory: "2048Mi"

Result
The measurement process was really simple and based on the startupProbe looking like this:
startupProbe:
      failureThreshold: 300
      httpGet:
        path: /healthz
        port: 8080
        scheme: HTTP
      periodSeconds: 1
      successThreshold: 1
      timeoutSeconds: 1

This allows using the kubectl to check after what period of time the functions pod will be ready with the accuracy of 1s. I know that Kubernetes needs some time to prepare resources for the container, pull images, and so on, so I decided to treat diff times between the Running 0/1 and Running 1/1 as the time needed for the function to be operational. The result of the test is described below:

XS
S
M
L
XL
No Resources

NodeJS 20
~11s
~5s
~3s
~2s
~1s
~2s

NodeJS 20 with deps
~70s
~29s
~13s
~7s
~6s
~5s

Python 3.12
~10s
~6s
~3s
~2s
~1s
~1s

Python 3.12 with deps
~53s
~33s
~12s
~7s
~5s
~5s

As we can see running package managers (npm, pip) requires more time to fully run the function's code. But in my opinion, this time is still satisfactory during we are talking about seconds, not minutes. Of course dependencies I chose for the test are relatively light and probably running functions with the AI toolset will require much more memory, CPU, and time but this is obvious and in my opinion, this is not the use case for Kyma Functions.

why k3d and not kyma as a testbed?

why k3d and not kyma as a testbed?

I only showed how to run POC on k3d, because it doesn't require any additional action. Personally, I used BTP to run and test POC implementation. To do this, switch to sources from this PR, export KUBECONFIG env with the path to your cluster kubeconfig file, and run:
helm template --namespace default config/buildless-serverless | kubectl apply -f -
sleep 5
kubectl wait --for condition=ready pod -l app=buildless-serverless -n default --timeout 3m


helm: Avoid error in IDE due to .range keyword

Description
As range is a keyword in jinja template, using the expression with usual attribute name (e.g. .Values.nodePort.range) will cause the error in IDE. This issue makes it hard for deployment helm for normal operation like checking where the flag is used.
This commit is to use alternative way to get around the issue with get function.
Testing was done as per below
$ cat temp_values.yaml
nodePort:
  range: "30000,32767"
$ helm template cilium install/kubernetes/cilium -f temp_values.yaml | grep node-port-range
  node-port-range: "30000,32767"
  enable-auto-protect-node-port-range: "true"

/test


Mousing over main navigation causes 1 pixel bump down

Underline gets added, but rolling over navigation causes 1 pixel (I assume) shift in the content.
Maybe something with the fiddling with the "Sign Up" button caused this.
Seems to happen in both latest Chrome and Edge.

Addressed with cc197a81177f555464a49441a2a7c28e56dc1f4f.


i18n(fr): Update guides/cms/builderio.mdx from #9611

Description (required)
Update guides/cms/builderio.mdx from #9611

Related issues & labels (optional)

Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

fr
guides/cms/builderio.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Fetching BGP metrics using snappi against ixia-c-controller intermittently fails with 500 Internal Server Error

closing this issue as of now.


Use spf13/cobra for docker import

Moves import command to api/client/image/import.go and use cobra  🐍.
/cc @dnephin @thaJeztah @LK4D4 @cpuguy83
🐸
Signed-off-by: Vincent Demeester<EMAIL_ADDRESS>

Hum… there is a weird error on DockerSuite.TestEventsImageImport... looking into it

Hum, so cobra is eating - arguments (without saying anything which is worrying me a bit) and thus docker import - is failing with "… requires a last 1 argument(s)".
/cc @dnephin

hmm, I'll look into it later today. Might be a bug in https://github.com/dnephin/cobra/blob/fork/command.go#L355-L393

@dnephin yeah I was looking into that. Note that it's just the "args" passed on the Args function of the command. The "args" passed to the Run are ok ; I'll update the PR with a small temporary fix

@vdemeester I pushed a fix for this. If you update the vendor to 3bfe23ade4a4657b00fb065297461ee282dfb822 it should work correctly.
The fix is here: https://github.com/spf13/cobra/pull/284/commits/c76d2faa30cf97bd5c88152b5c261068e4c010d5

@dnephin are you sure on the hash, it removes the SetFlagErrorFunc function and such :sweat:

hmm, it shouldn't remove anything.
Try 75205f23b3ea70dc7ae5e900d074e010c23c37e9. I rebased it on spf13/master again.
This should be right: https://github.com/dnephin/cobra/commits/fork

ping @vdemeester this needs a rebase now :cry:

LGTM

LGTM, thanks!