Joyn loyalty functionality

We are partnering up with Joyn in BE. They will be our partner when it comes to loyalty systems. Existing BE merchants can still use the OCA loyalty system if they want. However, they should have the possibility to switch to Joyn loyalty. They cannot use both loyalty systems at once. New BE merchants can only go for the Joyn loyalty, and not the OCA loyalty anymore. However, they can still choose to download the OCA Terminal app to receive notifications when an inbox message arrives, or to show slides or to quickly open their dashboard and website.

[ ] Update the title of the existing 'loyalty' functionality on the "Functionalities" page

customer outside BE or 'loyalty' in modules

EN: OCA Loyalty
NL: OSA Klantenkaart

else (customer in BE and 'loyalty' not in modules)

EN title: OCA Terminal
NL title: OSA Terminal
EN description:
NL description:

[ ] The Settings > Loyalty page

customer outside BE or 'loyalty' in modules

Rename to "OCA Loyalty"

else (customer in BE and 'loyalty' not in modules)

Rename to "OCA Terminal"
Hide all scan/loyalty related stuff

[ ] Add a new functionality: SolutionModule.JOYN = 'joyn'

Only show this for customers in Belgium
title:

EN: Joyn Loyalty
EN: Joyn Klantenkaart

description:

EN: Reward your loyal customers with your digital customer card
NL: Beloon je trouwe klanten met je digitale klantenkaart

image:

[ ] When activating the Joyn functionality, check if the loyalty functionality is enabled. If so, show a confirmation that the OCA Loyalty functionality will be disabled. Disable it after confirming.

[ ] When people try to send a coupon, and they don't have the 'loyalty' or 'joyn' module

customer outside BE: keep current code (request loyalty system)
customer inside BE: explain they can activate the JOYN module and signup for Joyn at

NL: https://www.joyn.be/nl/for-merchants
FR: https://www.joyn.be/fr/for-merchants
other: https://www.joyn.be/en/for-merchants

[ ] Right now, for customers that don't see the Functionalities page (app without signup), the loyalty tab is always shown, even if they don't have the loyalty module.

In case the merchants lives in BE (regardless of signup enabled), explain how to become a Joyn merchant. Show a description and a button on this page.

Description

NL: De oplossing voor lokale handelaars die willen groeien
FR: La solution au service des commerçants locaux qui veulent grandir
other: The solution for local merchants who want to grow

Button

NL: Word Joyn-handelaar --> https://www.joyn.be/nl/for-merchants
FR: Devenir commerçant Joyn  --> https://www.joyn.be/fr/for-merchants
other: Become a Joyn merchant -- > https://www.joyn.be/en/for-merchants

[ ] ~Add the action 'Joyn Loyalty' when publishing, such that endusers can see clearly which merchants use this module.~

~NL: Joyn Klantenkaart~

In short BE customers can no longer signup for our loyalty but need to use joyn.
When enabled/disabled a link to joyn website will be shown.

actions can only be added to a service when there is a menu item present

Ok, we'll have to move that part to #824

https://github.com/rogerthat-platform/rogerthat-backend/pull/456
https://github.com/our-city-app/oca-backend/pull/841


Add Travis Continuous Integration

There is a .travis.yml, so if your Travis integration is well setting-up you should see tests start after merged this pull-request.
#340

Nice, thanks! Merged.


Add ability to run tests in a mocha instance multiple times

Description of the Change
These changes allow mocha to run multiple times with the same test suite programmatically (without reload). It does this with minimal code changes.
It also adds to validations, for when people call mocha.run at the wrong time.
For more details and reasoning, please see https://github.com/mochajs/mocha/issues/2783#issuecomment-616446938
Fixes #2783

Alternate Designs
Alternatively, we could have totally removed all state from tests, suites and runnable, but we don't want to change the entire way of keeping state. Please see #2783 for the entire history.

Why should this be in core?
A lot of people seem interested in running a test suite multiple times without reloading files from disk. See #2783. I personally will use it to implement mutation switching in Stryker
Benefits
Huge performance gain for my mutation testing use case. Other people have valid use cases as well.
Possible Drawbacks
It should be backward compatible, but since I had to rewrite parts in the core, I might have introduced undesired side effects 🤷♂. Although the integration test suite is awesome!

Applicable issues
#2783
Todo:

[x] Test: implement reset
[x] Suite: implement reset
[x] Runnable: implement reset
[x] Mocha: implement dispose and cleanReferencesAfterRun
[x] Mocha: throw errors when run call is invalid.
[x] Runner: make sure to not leak event listeners.
[x] Runner: implement dispose and cleanReferencesAfterRun
[x] Unit tests
[x] Integration tests
[x] Docs

Coverage increased (+0.2%) to 93.213% when pulling 2da46888ccbb239c33c9400f8c4eb32b5a322d8e on nicojs:feat/hot-reload into 38d579ac4156545c21a027bba640d49428d6bcfb on mochajs:master.

Coverage increased (+0.2%) to 93.213%

You're welcome 💁♂

@boneskull the documentation website build failed because of an http error, not my doing. Please rerun that job if you can, thanks!

I will be paying close attention to this PR, for now, it looks good!

Huh, I am not sure how to re-deploy this on netlify.  I don't see the option.

I've implemented (most of) the requested changes.
I've also added one last bit. When disposed of, a Mocha instancet will now unload files internally. That makes a lot of sense to me. If someone wants to create a new mocha instance in the same process and add the same files again, he should be able to.

ty for the update.  looks like there's a conflict.

 Fixed once more 🤸♂

You're quite good at keeping me busy 🙊
I've implemented the reset on hooks. I saw that state and err could also be set on a test/hook during a run, so I've added those fields to Runnable.reset(). I've also solved the merge conflict.
As far as I know, I've fixed all issues/recommendations.

@boneskull can you take a look if it is good to go? 🚀

Seems to be yet another conflict.

I would like to call this a "bugfix", since it really always should have worked properly.  But I could see how others may consider this a feature.  Thoughts, @mochajs/core?

Something's gone wonky with the changesets here.
I tried to rebase back onto master, but that didn't work, and I had more conflicts.  then I did a merge via the GitHub UI to resolve those conflicts, and now I just have...more conflicts.
@nicojs Sorry, I tried to help.

It looks as if there are changesets in here that shouldn't be in here;
66d9b29 and later.  A rebase will need to ensure those changesets don't end up in this PR.
@nicojs I'll give you a chance, but please let me know if you want me to give it another go.
Might even be best to not pull your branch back down, and instead just retry a rebase onto master from your working copy's branch.

Might even be best to not pull your branch back down, and instead just retry a rebase onto master from your working copy's branch.

This is basically what I did.
git checkout feat/hot-reload
git fetch origin master:master
git rebase master
# Then I fixed the rebase issues that came up and continued rebasing (18 commits).
git push --force

thanks, looks like you fixed it.

IMO this can land, but want to know if @juergba has any concerns.

Any updates on this PR @boneskull @juergba ?

@mochajs/core any thoughts on whether this should be a patch or minor?  If our next release will be v8.0.0, I guess it's moot.

It should be a minor version IMHO, since it adds a new feature, right?

Agree on it being a minor release (or rolled into the next major)

Will give @juergba 48h to look at this; if he declines to review I'll merge it

This is one of those "missing features" that is only a bug because it was missing.  😄

True.
To be fair, I think we same problem in Stryker itself. Creating an instance of Stryker and running mutation testing twice is probably not working 🙄 Just don't tell anyone 🤐

So... I guess this will be merged soon 🤗

yes

So it looks like I can't actually use this for the parallel runner.  What I had hoped to do is re-use the same Mocha instance... except with different files (specifically, a single file) on every run.
@nicojs Wondering if you have an idea about what could be causing this behavior.  What I'm trying to do is:

Initialize a Mocha instance.  Set cleanReferencesAfterRun to false.
Repeat for n files:

Add a file to Mocha instance
call Mocha#run()
Upon completion, "reset" Mocha and remove all files from the Mocha#files array.

I attempted to "reset" by calling dispose() upon completion (step 2.iii.).  But this fails at the next run, because:
Mocha instance is already disposed, cannot start a new test run. Please create a new mocha instance. Be sure to set disable `cleanReferencesAfterRun` when you want to reuse the same mocha instance for multiple test runs

Of course, if I don't call dispose(), things get really confused due to extra hooks hanging around.
Why can't I reuse the Mocha instance after dispose()?

Should I just not call cleanReferencesAfterRun?  Would it work then?

(I suppose I'm rubbber-ducking now...)

I think, maybe, that it wasn't the problem you were trying to solve.  but it seems to get most of the way there.

OK, so, I am thinking it's really not worth the bother to try to reuse Mocha instances in the manner I'm trying (in #4245), even with your code now merged.  Too many things to worry about.  Like dumping files out of the module cache--but we're still running root-level hooks from those files, root-level hooks being applied nondeterministically, etc.  I mean, it's possible, just difficult to do correctly (for some definition of correctly).
anyway, thanks for the PR 😄

Yeah, it wasn't the problem I was trying to solve. The reason I added the behavior of throwing an error on run after dispose was just because thought that made the most sense. Feel free to change that behavior, no harm done since it wasn't released yet, right? As long as I can run the exact same suite without reloading files, I'm happy ;)

This appears to cause breakage for me:
https://github.com/birtles/rikaichamp/runs/707671695#step:5:71
I am getting createMochaInstanceAlreadyRunningError when trying to update mocha.
I haven't had a chance to debug why yet. Any tips would be appreciated.

@birtles Please could you submit this bug as a new issue? Please include details of versions as well as how you are calling mocha. Thanks

@birtles Please could you submit this bug as a new issue? Please include details of versions as well as how you are calling mocha. Thanks

Hi. I went to submit a bug but the bug form was requiring a little bit more time than I can currently afford, unfortunately. I discovered that dropping a call to mocha.run() resolved the issue for me. I have no idea why the call to mocha.run() was needed in the first place.
For what it's worth, I'm running with karma and karma-firefox-launcher.

i updated the thread https://github.com/mochajs/mocha/issues/2314 and I found out that there must be a bug in the options parser.
by forcing _cleanReferencesAfterRun = false after you instantiated a new mocha, it actually let you re-run your tests! lost 2 hours on this one. You're welcome.
var mocha = new Mocha(mochaOptions)
mocha._cleanReferencesAfterRun = false


Can Jobs be used with the new async system in vapor 3

@BrettRToomey, Can Jobs be used with the new async system in vapor 3?

Would love to know how this would work in vapor 3 or if there is something similar for vapor 3. Do you know if you will update this for vapor 3? If I want to repeat a task within my vapor app every 10 seconds, is this the correct package/framework to use?

@nevinjethmalani With NIO, you can schedule tasks on an EventLoop using `scheduleTask(in:_:)

@Mordil can you tell me how I would do that? I am new to vapor and don't even know where I would start putting code for something like this.

@nevinjethmalani In your boot(_:) method (using the default structure defined in the Application docs), you can use the eventLoop property on the Application passed to the method to schedule the task as I described before.
You can recursively schedule the same task again as the final thing done in the task you schedule, so that it repeats indefinitely for the app's lifetime.


fix trained model ready status

What this PR does / why we need it:
This change would fix the issue with trained model status showing unknown even the model is ready and responding for requests.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Type of changes
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

Feature/Issue validation/testing:
Please describe the tests that you ran to verify your changes and relevent result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[ ] Test A

[ ] Test B

Logs

Release note:

NONE

Just a note FrameworkSupported was removed part of the config map cleanup https://github.com/kserve/kserve/pull/2225/files
/lgtm
/approve


rauth Oauthsession1 with twitters' verify credentials api

I'm using rauth to identify the authenticating user, using twitter's verify credentials endpoint as specified on their docs. The access token and secret come from my frontend.  When I set my consumer credentials, (my apps creds), I can get a valid response, returning the apps owner, however setting the authenticating user's creds, I will get a 401. Am I misusing this rauth-client inteface?
Am i supposed to set my app's credentials to in OAuth1Session? If that is the case, where do I pass the authenticating user's token and secret?
class TwitterAuth():
"""
twitter auth class
"""
# api client for oauth1
tw_rauth = rauth.OAuth1Session(
"xxxxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxxxx",
access_token="",
access_token_secret="",
)
profile = {}
def get_profile(self, auth_user_access, auth_user_secret):
    """
    get profile using verify Credentials
    verify credentials will return the user given
    of an access token and secret
    """
    self.tw_rauth.access_token = auth_user_access
    self.tw_rauth.access_token_secret = auth_user_secret
    profile = self.tw_rauth.get('https://api.twitter.com/1.1/account/verify_credentials.json',
            params={'format': 'json'})
    if profile.status_code == 200:
        self.profile = profile.json()
       return self.profile
    else:
        raise ValidationError('Credentials Provided Were Not Valid')

new_user = TwitterAuth().get_profile(auth_user_access, auth_user_secret)

verify credentials appears to be a single user authentication endpoint. one who has consumer and user keys. many people have been misunderstanding this and question on stack have gone unanswered. but closing this as I have not even received a straight forward answer on the twitter forums.


Fix fastrand bug when p1 = 1.0.  int was overflowing.

Add the ability to run an individual Python test with the right
PYTHONPATH.

Oh OK we're thinking about the opposite cases... < creates the edge case with RAND_MAX, and <= creats it with 0.  Maybe I can use RAND_MAX+1.  Let me look it up.

Consider there are three relevant cases p=0, p=1, 0<p<1
in the p=0 we need the result to be zero.
in the p=1 we need the result to be one.
in the other cases either way as it will be accurate to within 1/Max_rand
I think the solution is to subtract one from the generated value, as adding one to Max_rand may overflow.

Never mind. Max_rand has to be an integer as long as threshold is a uint it can hold max_rand+1

OK, I fixed it and added a big comment explaining it.


[Typed Event] TCK Missing coverage areas

[x] No test DTOs have nested data (<IP_ADDRESS>)
[x] No checking of nested data in untyped DTOs (157.2.2)
[x] No use of auto-generated topics in delivery (157.3)
[x] No use of conversion to reified type in a TypedEventHandler (157.4.1)
[x] No use of service properties to override reified types in a TypedEventHandler (157.4.1)
[x] No use of event filters (157.4.5)
[x] No tests of handler error states (157.4.8)
[x] No tests for the Event Monitor service (157.6)
[x] No check for the spec mandated capabilities (157.7)

I have a view on this and some more tests that uses the pattern like your tests.
https://github.com/apache/aries-typedevent/blob/main/org.apache.aries.typedevent.bus/src/test/java/org/apache/aries/typedevent/bus/osgi/EventDeliveryIntegrationTest.java#L108
Waiting to get Mockito in with the TCK for the features.

The Typed Events TCK now has good coverage of the specification


Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Hi,
I am getting error here:
 File "C:\Work\python38\lib\site-packages\towhee\__init__.py", line 77, in __call__
    return format_handler(out_df)

  File "C:\Work\python38\lib\site-packages\towhee\pipeline_format.py", line 48, in __call__
    data = next(it)

  File "C:\Work\python38\lib\site-packages\towhee\dataframe\iterators.py", line 107, in __next__
    raise IndexError

This happens when I process a lot of images one by one with:
embedding = embedding_pipeline(file_path)
After 4500 images it gives this error and before that it is OK. I do not think it is a memroy issue. I still have free memory left on my 16GB system.
Expected Behavior
Generate a correct embedding without error.
Steps To Reproduce
No response
Environment
- Towhee version(e.g. v0.1.3 or 8b23a93): 0.5.0
- OS(Ubuntu or CentOS): Windows
- CPU/Memory: Core I7, 16GB
- GPU:
- Others:

Anything else?
No response

Any chance I can get the full pipeline details?

Yes. This is how I use it:
    images_loaded = 0
    embedding_pipeline = pipeline('image-embedding')
    for filename in os.listdir(folder):
        if filename.endswith(".jpeg"):

            #print(os.path.join(folder, filename))
            base_name = os.path.basename(filename)

            parts = base_name.split("_")
            #print(parts)
            label = int(parts[4].split(".")[0])
            subject = int(parts[1])
            #print("Subject: ", subject, " Label: ", label)

            if (subject < n_max_subjects):

                if (label == 0 and samples_class1[subject] < n_max_samples) or (label == 1 and samples_class2[subject] < n_max_samples):

                    images_loaded = images_loaded + 1
                    file_path = os.path.join(folder, filename)
                    print(file_path)

                    if label == 0:
                        samples_class1[subject] = samples_class1[subject] + 1
                    elif label == 1:
                        samples_class2[subject] = samples_class2[subject] + 1

                    embedding = embedding_pipeline(file_path)

                    #print(embedding[0])

                    epochs_all_subjects.append(embedding[0])

                    label_all_subjects.append(label)

                    print(images_loaded)

        else:
            continue

Hey, just wanted to give you a quick update. I found out where the error is coming from and need a little bit of time to figure out what the best fix would be. Thanks for the great catch! Turns out this error can happen at any time and is up to chance of when two threads run in different order.

@junjiejiangjjj This error is coming from the fact that we are creating the final df reader in OutputFormat (pipeline_format.py). Because the map iterator is created outside of the graph_context, we break the guarantee that all iterators/readers that will exist are created at graph_context creation. This in turn causes garbage collection to sometimes delete the output data before the iterator can access it as it sees that there are no iterators currently reading its data.

Hi,
I installed your fork with your potential fix. Unfortunately it did not work.
One temporary solution is not to trigger the garbage collector, right? I will try to free at maximum my RAM.
Would doing things in batches will help?

Hi,
Your fix did work one time.

Is it failing the other times? I wasn't able to trigger the problem after 10,000 images while before it was triggering within 1200.


'IE8 - Win7' combo not supported

While looking in ievm.coffee, IE8 - Win7 is listed as a valid combo.
However when I try to install it, I have this error:
$ iectrl install "IE8 - Win7"
ERROR: no matching virtual machines found

Any idea?

So there's no way to install IE8/Win7 without resorting back to ievms?

@jasonkarns - iectrl is just a wrapper around ievms, so the curl I posted above ensures your system will install ievms correctly to "open" up the option to use "IE8-Win7" with iectrl.  The problem is that the default ievms installation that iectrl uses installs IE8 by "reusing" the Windows XP image, so therefore the IE8+Win7 combo isn't available.


[UX] No endpoint type is selected for SOAP APIs

Description:
Please refer the screenshot below:

Steps to reproduce:
Create SOAP API by providing name, version, context and endpoint.

Fixed with https://github.com/wso2/carbon-apimgt/pull/10461/commits/e16b968bc39c66c2c907fd00624f5682bce84cdb


Error Exception isAdminEnd

Unknown Property – yii\base\UnknownProperty Getting unknown property: yii\web\Application::isAdminEnd
help me?

fixed at v0.19.7


Enhance for function template & CppType FullName support.

add support for function template
add inline namespace support
change FullName as a CppType property, and deduce the CppClass full name with specialized template right, you can just use CppClass full name in a generated c++ codes now.
FindByFullName() now can search auto ignore inline namespace now(such as clang std::__1::vector, now you can just use std::vector to search)
fix crash when the CppClass has a  specialized template with PartialSpecializedTemplateDecl
fix crash when typedef with a AliasTemplateDecl for Underlying type.

I'm trying to do attribute enhance now, include on line attribute support for CppField and CppFunction, also include a special annotate attribute you can pick to use for macro need case.  The features for enhanced the meta attribute will be PR after this PR.


ContentGroups can be rendered off screen

In some cases where the content group width is large and the viewport is small, the content group is rendered off screen. This is common for the left most or right most content groups. See screenshot below. The solution is to detect the left position of the content group prior to rendering it. If the left position is off screen, move it so that it's just on-screen.

This has been fixed in release v0.2.2


Epic: Publishing Workflows

As a Content Creator I want publishing workflows so that I can have an approval chain for my content.

Whiteboarded concept walkthrough

whiteboard concept


Feature Request: Ability to add official decks to the user's collection

It would be nice if a user could add the official decks to their collection and have all cards within added to their collection at the same time. Thus, if the user added ST1 to their collection, all cards in the deck would be added in the correct count to the user's profile.

Started Designing a UI for that this week :)

One question in doing this is if it should also add the promos bundled with certain decks. It's possible to buy the decks second-hand without the promos. It would probably be best to have a toggle that determines if the promos are added as well.

I would add only the deck cards, at the start.
The promos aren't always the same for the decks, as far as I know.


Feature: Don't launch Files when user clicks on certain kinds of app notification

What feature or improvement do you think would benefit Files?
If you receive a Files' "Unhandled exception, submit feedback" app notification and click on it, a new Files window will launch. I don't consider this behavior appropriate since people don't intend to get a new Files window when they click on the "submit feedback" button on the notification.
Therefore, I think it's better to add some logic to the app notification activation handler to prevent launching another instance for some kinds of app notifications.
Requirements

This proposal will accomplish: Not launching the app when users click on certain kinds of app notifications

Files Version
<IP_ADDRESS>
Windows Version
Windows 11 22H2 10.0.22623.1325 (beta)
Comments
No response

Default Windows behavior is to open the app that created the notification, I don't think we have control over this.

@yaira2 Yes, we cannot control the opening process. But we can check the activation type AppInstance.GetCurrent().GetActivatedEventArgs()?.Kind == ExtendedActivationKind.AppNotification and call Exit or Process.GetCurrentProcess().Kill() before the MainWindow is shown, so that users won't see anything.


queuepayment negativ quantity

picopayments-cli --testnet queuepayment 08ed5def131032029d7194622f59a058a62a75672f2b7c6c8b7e933a34efba87 08dd547aa7f9ce78aa4d4391506d43b0d45b971964fcde344c9c133dfb091be0 -1337
root@micropayment:~/.picopayments# picopayments-cli --testnet sync --handle 08ed5def131032029d7194622f59a058a62a75672f2b7c6c8b7e933a34efba87
/usr/lib/python3/dist-packages/urllib3/connectionpool.py:732: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html (This warning will only appear once by default.)
  InsecureRequestWarning)
Traceback (most recent call last):
  File "/usr/local/bin/picopayments-cli", line 21, in <module>
    result = api.__getattribute__(command)(**kwargs)
  File "/usr/local/lib/python3.4/dist-packages/picopayments_cli/api.py", line 282, in sync
    "received_payments": client.sync()
  File "/usr/local/lib/python3.4/dist-packages/picopayments_cli/mph.py", line 125, in sync
    handle=self.handle, sends=payments, commit=commit, revokes=revokes
  File "/usr/local/lib/python3.4/dist-packages/picopayments_cli/rpc.py", line 90, in wrapper
    password=self.password
  File "/usr/local/lib/python3.4/dist-packages/picopayments_cli/rpc.py", line 53, in auth_jsonrpc_call
    password=password, verify_ssl_cert=verify_ssl_cert)
  File "/usr/local/lib/python3.4/dist-packages/picopayments_cli/rpc.py", line 42, in jsonrpc_call
    raise JsonRpcCallFailed(payload, response)
picopayments_cli.rpc.JsonRpcCallFailed: Rpc call failed! {'params': {'handle': '08ed5def131032029d7194622f59a058a62a75672f2b7c6c8b7e933a34efba87', 'commit': None, 'next_revoke_secret_hash': '51211b95e59573d48b7d363843f4c9d8df9d7541', 'pubkey': '032e23f28e9595b30f38f92d30286789713092f3706816300ea4bb1a080d8ba443', 'revokes': [], 'signature': '3046022100dc55fbdd8c4f1b8005935cb6859fb0a479121df44ee73bb1d5d2677a6a430bda022100f59898ce535023e0c3ed4781dd34b10670b1599fcacb51c8651344958908891d', 'sends': [{'payee_handle': '08dd547aa7f9ce78aa4d4391506d43b0d45b971964fcde344c9c133dfb091be0', 'amount': -1337, 'token': 'a39f0a466c5ac10b7ed3018a557de5ebeb30a79a265be4837057c4035084c0e9'}]}, 'method': 'mph_sync', 'id': 0, 'jsonrpc': '2.0'} -> {'error': {'message': 'Server error', 'code': -32000, 'data': {'type': 'InvalidQuantity', 'message': "Invalid quantity: '-1337'", 'args': ["Invalid quantity: '-1337'"]}}, 'id': 0, 'jsonrpc': '2.0'}

Obviously transferring a negative quantity is invalid and you get an error. You will have to manually remove the queued payment from the  ~/.picopayments/testnet.data file.
I will add a remove queued payment command to help with this.


Screen for guessing recreations

Story #12 Recreation Guessing
Sub-Tasks:

[x] CSS
[x] Display the original picture grid
[x] Display the recreations in a second grid or list
[x] Fields for guessing on each recreation
[x] Submit guess button
[x] When all players submited the client redirects to scoring at end of round/game
- [ ] Countdown that triggers a random guess on all empty fields after it hit zero

Estimate: 10h

8dafcbb5780921dbb5b0d0eaca00e0e00598d467


Checksum generator

Checksum generator doing strang output. I have randomly download few files
use mac shasum -a 256 filename and same in app but this sums dont match. shasum function geting right result but in devtools is a little different result.
TEST FILE: https://github.com/ObuchiYuki/DevToysMac/archive/refs/tags/<IP_ADDRESS>.tar.gz
SHASUM -<PHONE_NUMBER>28b59dfc66745d1400642393a3fd18a03a81b28e01284ba064cbca  DevToysMac-<IP_ADDRESS>.tar
DevToys -<PHONE_NUMBER>28b59dfc66745d140642393a3fd18a03a81b28e1284ba064cbca

@jaroslavmraz Thank you for your issue! I solved this problem.

This seem link hex convert bug. 0F had been converted to F. I added the padding zero to fix this!

@jaroslavmraz  Fixed on https://github.com/ObuchiYuki/DevToysMac/releases/tag/0.0.8


Dynamically generate version number based on git repo tags

@pmskintner this is ready for review. Try building and testing. Let me know if you have any questions.


Update screenshots for tag related features with new GUI changes

This PR will do the following:

Replace existing screenshots for tag related features with new screenshots that reflects the new GUI.

Update the Ui.png with latest GUI changes

Codecov Report

Merging #198 (5bf6133) into master (9405ee1) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #198   +/-   ##
=========================================
  Coverage     60.11%   60.11%
  Complexity      755      755
=========================================
  Files           139      139
  Lines          3034     3034
  Branches        331      331
=========================================
  Hits           1824     1824
  Misses         1089     1089
  Partials        121      121

Continue to review full report at Codecov.

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


Add endpoint tests

Codecov Report
Attention: Patch coverage is 95.65217% with 1 line in your changes missing coverage. Please review.

Project coverage is 67.54%. Comparing base (098901f) to head (22edaa2).

Files with missing lines
Patch %
Lines

fluid/scheduler/endpoints.py
83.33%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #48      +/-   ##
==========================================
+ Coverage   65.71%   67.54%   +1.82%
==========================================
  Files          40       40
  Lines        2392     2400       +8
==========================================
+ Hits         1572     1621      +49
+ Misses        820      779      -41

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests


Add mechanism to allow linking anchors for XMI defined objects that are not generated in document

From https://github.com/metanorma/ogc-citygml-xmi/issues/110
In the CityGML 3.0 XMI file, the following classes are used (by other classes) but not defined because they are out of scope:
Area
Boolean
Character
CharacterString
Date
DateTime
EngineeringCRS
GenericName
Integer
Length
Measure
Real
ScopedName
TM_Duration
URI
UnitOfMeasure
Volume

However, the plugin today creates links to these anchors but they are not present in the current document:
Area-section
Boolean-section
Character-section
CharacterString-section
Date-section
DateTime-section
EngineeringCRS-section
GenericName-section
Integer-section
Length-section
Measure-section
Real-section
ScopedName-section
TM_Duration-section
URI-section
UnitOfMeasure-section
Volume-section

This means we need to have a YAML configuration that "defines where the classes that are out of scope should link to", e.g.
packages:
  - "Core"
  - "Appearance"
external_classes:
  - "Area": {{Area}}
  - "Boolean": my-section-for-boolean
  - ...
section_depth: 3
render_style: data_dictionary
include_root: true

From @w00lf

I have implemented https://github.com/metanorma/metanorma-plugin-lutaml/issues/70, tried to implement it for https://github.com/metanorma/ogc-citygml-xmi/issues/101 issue but now i see that sections were changed to the new lutaml format, eg:
term-URI => URI-section
Should i create a PR with the old mappings and return old refs?

Yes. The anchors in this commit (https://github.com/metanorma/ogc-citygml-xmi/commit/bcc7cf7b979784fe14accf80eadc12aaad7f0bf1) should be removed and replaced with the new functionality. Thanks!

@ronaldtse used new logic in https://github.com/metanorma/ogc-citygml-xmi/pull/122

@w00lf this is not fixed because the exceptions are manually encoded. We need an automatic solution where LutaML detects which models are not defined in the document, and does not create those links.


Added footer on all pages

Fixed #36.

@Nikhil-Vats please include a screenshot

@sarthak-sehgal I have added the screenshots.

Looks good!


YouTube version

Available at
https://www.youtube.com/watch?v=iKlVmu-r0JQ

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

ID: 0dd2991d-c22d-ad0f-80b6-bd1b503db8f3
Version Independent ID: 5e3fbe1d-c97f-9940-4f0c-067d4b2112b1
Content: Get started with ASP.NET Core SignalR
Content Source: aspnetcore/tutorials/signalr.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @bradygaster
Microsoft Alias: bradyg

@wadepickett  add link at end of tutorial and close/lock issue


[BUG]

What is the bug?
When someone on our server does /team disband the team disbands but doesnt delete it from the files so the name cant be reused
Expected Behaviour
the team name should be able to be reused after someone disbands a team with the same name
How to Reproduce
/team create testnation
/team disband testnation
Error message
No response
Output of /teama version
[10:41:30 INFO]: [BetterTeams] Storage Method: com.booksaw.betterTeams.team.storage.storageManager.SeparatedYamlStorageManager
[10:41:30 INFO]: [BetterTeams] Minecraft Version: git-Purpur-1916 (MC: 1.19.3)
[10:41:30 INFO]: [BetterTeams] Language Selected: messages
[10:41:30 INFO]: [BetterTeams] Current plugin version: 4.6.2
Additional Information
No response

As shown in the screenshot below, I am unable to reproduce the bug. Please could you include screenshots demonstrating an exact case reproducing this issue.

This issue is being closed for inactivity. If you are still having problems feel free to open a new issue linking this one, make sure you answer any questions asked in the new issue.


add custom Referer

add Updater.SetExtraHeaders and WebRequestStreamProvider.SetExtraHeaders to set custom http request header

ignore tls error when use Self-signed certificate

ignore tls error when use Self-signed certificate

It should be handled by AutoUpdater. I will implement this feature based-on your change.

Close by alternative implementations:

https://github.com/carina-studio/AppBase/commit/9d4e7fcf6100c695263a2bb5b016636e3244102f
https://github.com/carina-studio/AppBase/commit/2a5faa60d839503ba0f2d70e466ab4cabde9d7ab
https://github.com/carina-studio/AppBase/commit/cefb81a4d5d58c2b0f6f72334d108a186ff58e38


OptionButton.grab_focus() does grab_click_focus(), grab_click_focus() does nothing

Godot version:
Godot 3.2.1
OS/device including version:
Windows 10
Issue description:
It appears that OptionButton.grab_focus() does what grab_click_focus() is supposed to do. But grab_click_focus() does not appear to do anything. I believe that grab_focus() should grab focus without opening option menu and grab_click_focus() should grab focus and open the options menu.
Steps to reproduce:
Create an OptionButton, add some items.
in _ready(), add $MyOptionButton.grab_focus()
Minimal reproduction project:

Can't reproduce 100%, since grab_focus() does not do what grab_click_focus() is supposed to do, but I do see a bug...
grab_focus() works as intended.
grab_click_focus() does nothing.
Note that grab_*() functionality is located in the Control class, so all controls will have this bug (theoretically), not just OptionButton.
Tested with OptionButton, CheckButton.

I thought grab_focus() will highlight the control, but not open a control like OptionButton. But in my case, OptionButton menu opens with grab_focus(). To me, it seems like grab_click_focus() should open the menu of OptionButton, grab_focus() should set the OptionButton highlighted.

You are correct, I am just saying I can't reproduce the behaviour when I try to (but I can see that grab click focus does nothing) . Could you post a zip file with the minimum set up to reproduce the bug?

Ok so I think I figure it out at least partially. The behaviour is quite strange, but I have stepped through the C++ to see what was happening.
As per the docs, it says
func _process(delta):
    grab_click_focus() #when clicking another Control node, this node will be clicked instead

So I added this to one of the OptionButtons... I just made it poll every frame and call this. As per the docs... what is expected happens. It redirects all clicks on the control to that option button. Click anywhere, and that option button shows it's popup. Now essentially what happens is that the viewport says 'hey, I got a click... and also a control I have registered said that it grabs clicks, so I'm going to redirect that click'. That's why it works with polling. For it to work on _ready(), you would need to click on the exact frame that it is called grab_click_focus() (not really possible, of course).
You can see this in action when you add a normal Button and hook up "pressed" to call OptionButton2.grab_click_focus(). You still need the other OptionButton1 polling each frame for this to work. When you click the Button, this is what happens:

The viewport detects the user's click and goes, "hey, I should redirect this to OptionButton1".
The viewport then detects that 'generated' click, and redirects that to OptionButton2!
Both option buttons are clicked in the same frame, opening both.

Here is where that check happens of where it should redirect to.
https://github.com/godotengine/godot/blob/2435d4bdb93c65465cfddd027bfaa02b9ca60c8d/scene/main/viewport.cpp#L2635-L2646
If the functionality it wanted (could be useful), I think it is possible add an else statement onto the end of this if, and handle the case where we just want to do a click via code... without redirecting an existing user click.

Thank you so much for looking into this and explaining what grab_click_focus() was intended to do. I will find some work around in my project.


Type alias AST backtrace

Hi! Really new Pony user here.
Found an issue with the AST parser:
type Blocksize is (U8, U32)
class Block[T: Blocksize]

I understand the type should actually be (U8 | U32).
But the compiler produces on current master (59dddb6) and on last release:
/tmp/ponyc/src/libponyc/type/typeparam.c:338: cap_from_constraint: Assertion `0` failed.

Backtrace:
  /tmp/ponyc/build/debug/ponyc(ponyint_assert_fail+0xf5) [0x55c87676b5b3]
  /tmp/ponyc/build/debug/ponyc(+0x4d9842) [0x55c876708842]
  /tmp/ponyc/build/debug/ponyc(typeparam_set_cap+0xa2) [0x55c876708e8f]
  /tmp/ponyc/build/debug/ponyc(flatten_typeparamref+0x3f) [0x55c8767608fb]
  /tmp/ponyc/build/debug/ponyc(pass_flatten+0x17e) [0x55c8767612b0]
  /tmp/ponyc/build/debug/ponyc(ast_visit+0x290) [0x55c8766ca827]
  /tmp/ponyc/build/debug/ponyc(ast_visit+0x1d5) [0x55c8766ca76c]
  /tmp/ponyc/build/debug/ponyc(ast_visit+0x1d5) [0x55c8766ca76c]
  /tmp/ponyc/build/debug/ponyc(ast_visit+0x1d5) [0x55c8766ca76c]
  /tmp/ponyc/build/debug/ponyc(ast_visit+0x1d5) [0x55c8766ca76c]
  /tmp/ponyc/build/debug/ponyc(ast_visit+0x1d5) [0x55c8766ca76c]
  /tmp/ponyc/build/debug/ponyc(ast_visit+0x1d5) [0x55c8766ca76c]
  /tmp/ponyc/build/debug/ponyc(+0x49ac43) [0x55c8766c9c43]
  /tmp/ponyc/build/debug/ponyc(+0x49afb2) [0x55c8766c9fb2]
  /tmp/ponyc/build/debug/ponyc(ast_passes_program+0x2c) [0x55c8766ca35e]
  /tmp/ponyc/build/debug/ponyc(program_load+0xc5) [0x55c8766ec6ec]
  /tmp/ponyc/build/debug/ponyc(+0x44622b) [0x55c87667522b]
  /tmp/ponyc/build/debug/ponyc(main+0x16d) [0x55c876675436]
  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fddc013b0b3]
  /tmp/ponyc/build/debug/ponyc(_start+0x2e) [0x55c8766750be]

We discussed during sync. It would appear the compiler is chocking on getting a tuple where it expects a valid type alias.
We want to catch that and display a nice error message.

You get a nice error for this when you remove the type alias indirection. The error message is:

tuple types can't be used as type constraints

So we want this to fix it so that the compiler can show the same nice error message as above, after digging through the type alias reference.


Split code.

Original version

You are changing things ...do let me know when this is clean from device-tracker related things and ready for review, no time to check over and over again :)

Deploying PR is a not as straightforward ... I know.... just let me know when done
Another comment...  the (new) local stop sensor list will eventually pose issues as it will grow out of acceptable size if you are in a big town and/or big radius....

i have no quick easy solution.
If u think there is a risk, then may be we should revert everyting back... and delete this PR.

I will continue on my fork.... I still need to find out the "destination" of the route. Otherwise this whole development is useless.
Regards

Yep...do continue and you can run all you build for yourselves of course. I can also have a look at the fork when you think you are done..merging with my main needs a reasonably OK basis (perfect does not exist :) ). For the local list, yes...this is going to be a possible issue...this is the 'warning' that will follow in such cases, not sure if it truncates
.... exceed maximum size of 16384 bytes. This can cause database performance issues; Attributes will not be stored
` `

I will continue on my fork.... I still need to find out the "destination" of the route. Otherwise this whole development is useless. Regards

I can only say good-luck but I have to admit that I personally donot dee that happening

Thanks for your research.... => 16Kb ... that should be enough for my needs...
It's already a huge timetable if I remove some info like route_name, coords,...
What a week!!!
First dev in python 👍, first tme with github 👍, and first "custom component" ! 👍
That's too much in parallel ;-) ;-) ;-)
Sorry

Further small test.. I added a zone in amsterdam with many stop sbut there is no stop and no list, als the one that showed above 10k before no longer pops-up with data. I will revert this as it is not stable... thorough testing is required first.
I will add a DEV branch so you can sync with that

New branch dev created on the 'main' before applying your previous PR, I can create releases either from main or dev so this at least keeps 'main' as clean as can be ... and donot get me wrong, I do have to return quite often on my code :)
Still, I propose you first create a working version on your fork, test this for zone and person and for multiple sources ....  and when ready I will test it out as well

Perfect!

btw... to avoid making this a semi-chat post ...I am on disocrd with the same name, easier and less polluting for others :)

Closing as this has mostly been used for chatty stuff and the PR is not complete


Fix Hyper-V test cases.

Fix P2 HYPERV test cases.

CentOS -
``
[LISAv2 Test Results Summary]
Test Run On           : 12/25/2019 09:38:37
VHD Under Test        : \redmond\wsscfs\OSTC\LIS\VHD\Cloudbase\CentOS\CentOS_7.5\CentOS_7.5.vhdx
Initial Kernel Version: 3.10.0-862.el7.x86_64
Final Kernel Version  : 3.10.0-862.el7.x86_64
Total Test Cases      : 3 (3 Passed, 0 Failed, 0 Aborted, 0 Skipped)
Total Time (dd:hh:mm) : 0:0:33
ID TestArea             TestCaseName                                                                TestResult TestDuration(in minutes)
1 PROD_CHECKPOINT      PRODUCTION-CHECKPOINT-ISO-NONETWORK                                               PASS                 1.92
2 BACKUP               VSS-BACKUPRESTORE-ISO-NONETWORK                                                   PASS                10.31
3 BACKUP               VSS-3CHAIN-VHD-BACKUP                                                             PASS                12.21

P2 test results for CentOS, find some places need improved.
[LISAv2 Test Results Summary]
Test Run On           : 01/06/2020 13:05:10
VHD Under Test        : \\redmond\wsscfs\OSTC\LIS\VHD\Cloudbase\CentOS\CentOS_7.5\CentOS_7.5.vhdx
Test Priority         : 2
Initial Kernel Version: 3.10.0-862.el7.x86_64
Final Kernel Version  : 3.10.0-862.el7.x86_64
Total Test Cases      : 95 (91 Passed, 2 Failed, 0 Aborted, 2 Skipped)
Total Time (dd:hh:mm) : 0:18:5

   ID TestArea             TestCaseName                                                                TestResult TestDuration(in minutes)
-------------------------------------------------------------------------------------------------------------------------------------------
    1 LTP                  LINUX-TEST-PROJECT-TESTS                                                          PASS                 48.8
	binfmt_misc01 : FAIL
    2 NETWORK              NET-PRIVATE                                                                       PASS                 4.48
    3 NETWORK              NET-CHANGE-PRIVATE-NIC                                                            PASS                 4.22
    4 NETWORK              NET-COPY-LARGE-FILE                                                               PASS                 5.46
    5 NETWORK              NET-COPY-FILE-DIFFERENT-MTU                                                       PASS                 5.03
    6 NETWORK              NET-COPY-BOTH-WAYS                                                                PASS                15.05
    7 NETWORK              NET-VXLAN                                                                         PASS                  8.3
    8 NETWORK              NET-MULTICAST                                                                     PASS                 6.19
    9 DYNAMIC_MEMORY       DYNAMIC-MEMORY-HOTADD-STRESS-APP                                                  PASS                  8.6
   10 DYNAMIC_MEMORY       DYNAMIC-MEMORY-STRESS-HOTADD-5SECONDS                                             PASS                11.26
   11 DYNAMIC_MEMORY       DYNAMIC-MEMORY-STRESS-HOTADD-1SECOND                                              PASS                 9.13
   12 DYNAMIC_MEMORY       DYNAMIC-MEMORY-STRESS-LARGE-CHUNK                                                 PASS                11.33
   13 DYNAMIC_MEMORY       DYNAMIC-MEMORY-DEMAND-PRESSURE                                                    PASS                10.44
   14 DYNAMIC_MEMORY       DYNAMIC-MEMORY-TOP-LOAD-AVERAGE                                                   PASS                10.05
   15 DYNAMIC_MEMORY       DYNAMIC-MEMORY-HOT-REMOVE-THEN-PRESSURE                                           PASS                11.56
   16 DYNAMIC_MEMORY       DYNAMIC-MEMORY-HOT-ADD-EAT-MEM-SMP                                                FAIL                13.32
Calling function - Run-LinuxCmd.

@LiliDeng  "Calling function - Run-LinuxCmd. Timeout while executing command : . utils.sh && UtilsInit && CheckCallTracesWithDelay 120" ?

30 files change? :dizzy_face:

@LiliDeng  "Calling function - Run-LinuxCmd. Timeout while executing command : . utils.sh && UtilsInit && CheckCallTracesWithDelay 120" ?

Hit this issue since the kernel hit OOM, we should take a look at this case in deep.

30 files change? 😵

Actually there many places need to update/improve for Hyper-V cases


Adds customization to the bottom metadata

Fixes #87 by adding the fields Author, Date and Numbering in the Meta struct.
Not sure where/how to document what I had in mind, so I drafted this table:

Field
Default
Behavior os the custom value

Auhtor
Current OS user's full name
The string from the YAML replaces the name (including an empty string)

Date
Today's date in the YYYY-MM-DD format
If the date passed is a valid form of 2006-01-02, it is used to format today's date, otherwise, it just replaces the date with this string

Numbering
"Slide %d / %d"
If the value contains one occurrence of %d it is used in fmt.Sprintf with the current slide number; if it contains 2, with the current slide number first and the total slide number last; otherwise, it just replaces the numbering with this string

From a first glance this looks fantastic! Thank you so much!
I think the only feedback I have is that the Numbering name might be better as PageDisplay/Paging but I love how you can pass a format string! Really great idea!
The document looks great! We can add that to the readme. Overall this improves slides a lot! I will test and merge this today.

I am happy it actually helps the project!

the Numbering name might be better as Paging

100% agree.
I won't be able to change that and to add the docs to the README.me in the next few days. But anyone surely is free to take over from here… otherwise I do it next week  : )

But anyone surely is free to take over from here

Sounds perfect! I can take over from here and get this merged. Thank you so much for the contribution, and thanks again for putting lots of care into the code in this PR, its very much appreciated!


Added carets to collapsible sections in the overlay modal

Description Of Changes
Cherry-picking the CSS used to implement an animated caret for the notice elements. See https://github.com/ethyca/fidesplus/pull/1374#discussion_r1556149459
Also changed CSS  so that the caret will rotate the right way - counter clockwise on open.

Code Changes

[x] CSS change using pseudo-elements

Pre-Merge Checklist

[x] All CI Pipelines Succeeded
[x] Update CHANGELOG.md

@gilluminate assuming the checks will pass, this is ready to go! Just needs an approving review to merge.


tensor: support string encode/decode to a tensor

The API might be here: https://github.com/yorkie/tensorflow-nodejs/blob/master/tensorflow/include/tensorflow/c/c_api.h#L275, and the answer might be TF_StringEncode and TF_StringDecode :)

interesting working with TF_StringEncode and TF_StringDecode function, also find the calls to TF_StringEncodedSize is 2 for normal usage. Anyway, it works by this commit 74e2426

74e2426 just are the partial of this issue, reopening this.
The full design of this string tensor is: a string tensor is an array of strings, and every elements are encoded with the function TF_StringEncode, and the whole buffer structure are: elements offsets + elements buffer.
For example, if we want to encode a string: [ "foobar" ], it's:
offsets[1] + [ encode("foobar") ]

and [ "foobar", "beep" ]:
offsets[1, x] + [ encode("foobar"), encode("beep") ]

In offsets part, it's an array, too. every element is an uint64 to represent the offset of its elements in the whole buffer. That means the offsets length is the elements number.


Restrict responses to full Slack members only

Looker can contain some pretty sensitive information about a company's operations, and a company's Slack instance could contain users who are "guests" (either single or multi-channel). These guests can still talk to @looker (via in channel or in DM) currently, causing possible security/privacy issues.
Would be good to have an option that restricts any Lookerbot responses to full members of a Slack instance only.
It took a while to figure out how to differentiate between full vs. guest users, but finally figured out that this information can be gleamed from users.info or users.list via the is_restricted (Multi-Channel Guest) and is_ultra_restricted (Single-Channel Guest) boolean attributes.

Good call. Implemented!

<3 <3 <3 <3
Can you do a new release?

Done: https://github.com/looker/looker-slackbot/releases/tag/0.0.12


Deleting Legacy binds?

Since everyone is on reborn now (and have been for a while), I think it would be a good idea to remove the legacy layouts since there is no longer any need for them, and their presence would only confuse some people.

I do agree, but I think we need to make a folder called "Archive" instead and add it inside that, layered and out of reach.
We also have to update the readmes to be particular to Reborn.

Alternatives to an archive folder:

Just delete the config (git will save it and you can browse old commits)
Move the config to a different branch (might be the best solution)

I think any of the 3 options is viable and better than leaving them lying around.

Since it's not possible to create a pull request to create an upstream branch, I would probably recommend just deleting the legacy folder per @dodekeract's suggestion.


Add new Style/SingleLineDoEndBlock cop

This PR adds new Style/SingleLineDoEndBlock cop that checks for single-line do...end blocks.
# bad
foo do |arg| bar(arg) end

# good
foo do |arg|
  bar(arg)
end

# bad
->(arg) do bar(arg) end

# good
->(arg) { bar(arg) }

In practice a single line do...end is autocorrected when EnforcedStyle: semantic in Style/BlockDelimiters. It can also be detected by this cop if it is written by handcraft. So I decided to introduce this new cop instead of an autocorrect extension of Style/BlockDelimiters.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Thanks!


go like defer

Hi,
I've been reading a lot of go code lately and I really like the defer method, is this something that crystal could/should support?
Multiple defers would append the statements to the ensure block.
If an ensure block is also present for the method, I would expect that the defers are also appended to that block.
def read_file
  file = File.open("somefile.txt", "r")
  defer { file.close }
  defer { puts "file is closed" }

  puts file.read
ensure
  puts "I will clean up"
end

# Would be the same as

def read_file
  file = File.open("somefile.txt", "r")

  puts file.read
ensure
  puts "I will clean up"
  file.close
  puts "file is closed"
end

Well, Crystal inherited the block style way of doing this from Ruby, so the preferred version would be
def read_file
  File.open("somefile.txt", "r") do |file|
    puts file.read
  end
ensure
  puts "I will clean up"
  puts "file is closed"
end

And I would still prefer it even when defer exists.
Maybe I'm missing a more compelling usecase that isn't coverable by yielding methods?

If you only have one block that is indeed the preferred version, but could become a bit messy if you have multiple nested blocks.
MUTEX = Mutex.new

def write_lines
  MUTEX.synchronise do
    File.open("somefile.txt", "w") do |file|
      10.times do |i|
        file.write "Line: #{i}"
      end
    end
  end
end

def write_lines
  MUTEX.lock
  defer { MUTEX.unlock }

  file = File.open("somefile.txt", "w")
  defer { file.close }

  10.times do |i|
    file.write "Line: #{i}"
  end

  puts "lines written"
end

Why would you prefer to write the second version? It's longer and bug prone because you can forget to write the defer. Using the block form it's impossible to forget to close a file or to unlock a mutex (well, you can forget to use the block, but it's an idiom that's very common in a lot of APIs). Also, reading the code is straightforward, with defer I... don't know how to read that code (it's not linear).
I don't see a compelling reason to add this. Plus it will mean there will be two ways to do the same thing.
I'd say Go has defer because it doesn't have true exception, but that's not true because D has something similar, and it has exceptions. But D doesn't have blocks, so maybe that's the reason.

I write PoC just now, however I won't use it.
module Defer
  @@indexes = [] of Int32
  @@defers = [] of ->

  @[AlwaysInline]
  def self.defer(&blk : ->)
    @@defers.push blk
  end

  @[AlwaysInline]
  def self.scope
    @@indexes.push @@defers.size
    with Defer yield
  ensure
    index = @@indexes.pop
    while @@defers.size > index
      @@defers.pop.call
    end
  end
end

MUTEX = Mutex.new

def write_lines; Defer.scope do
  MUTEX.lock
  defer { MUTEX.unlock }

  file = File.open("somefile.txt", "w")
  defer { file.close }

  10.times do |i|
    file.write "Line: #{i}"
  end

  puts "lines written"
end; end

All these cases are still relatively simple, but I would argue that it could sometimes be easier to read the core of the method and in this case that's to write 10 lines of "Line: <line_number>"
Maybe I've been reading too much go that I started to like certain aspects, lots of times I'd like to poke my eyes out while reading go ;-)

I've worked a lot using the "deferish" style before over the years, and the Crystal style of blocks is kind of new to me, and I'm already in love with it! It's so much cleaner, less error prone, etc. There's no reason to "go back" to worse methods!

I also checked this with @waj and he doesn't like defer either (or, better put, doesn't find it useful since we have blocks and ensure). So I'm closing this. (But please keep suggesting features, we do like some things from other language :-))

Nope that's it now, I'm removing my left pad crystal lib and I will switch to go :-P

Both blocks and defer are useful, consider temporary files, where the caller is on the hook to delete them. Without defer, simple code like this is wrong, because things can go wrong in tempfile that raise exceptions that do not result in a valid file being created.
def method
  tf = File.tempfile do |tf|
    tf.print("pre-change")
  end
ensure
  tf.delete
end

And it gets worse with more branches, as you might imagine.
defer gets the combinatorics right in more cases:
def method
  tf = File.tempfile do |tf|
    tf.print("pre-change")
  end
  defer { tf.delete }
end

def do_thing
  with_tmpfile do |tf|
     do_stuff_to_file(tf)
  end
end

def with_tmpfile
  tf = File.tempfile do |tf|
    yield tf
  end
ensure
  tf.delete
end

def do_stuff_to_file(tf)
  [...more code]
end

If you run into the risk of loosing track there, it's time to break stuff up into much smaller methods.

Bloated. I think that crystal's nil checking does a lot for this, though.


What's the real differences between github.com/golang/protobuf and google.golang.com/protocolbuffers/protobuf-go?

I have several questions:

what's the differences between the two repos? will I benefit from it?
how to migrate from this repo to google.golang.com/prototocolbuffers/protobuf-go? do we have a guide?
ps: really hard to remember and type.
which version of protoc, protoc-gen-go should I use?

I'm a little confused about this.
I see the README says, the repo github.com/golang/protobuf is implemented by google.golang.com/protoco...../protobuf-go, then do we need to explicitly change the import path from github.com/golang/protobuf to google.golang.com/protoco..../protobuf-go?

I have not heard of google.golang.com/protocolbuffers/protobuf-go. Are you thinking of google.golang.org/protobuf? If so, see this FAQ entry:

I have not heard of google.golang.com/protocolbuffers/protobuf-go. Are you thinking of google.golang.org/protobuf? If so, see:
https://developers.google.com/protocol-buffers/docs/reference/go/faq#modules
There is also a mirror of google.golang.org/protobuf at https://github.com/protocolbuffers/protobuf-go. You may safely ignore this mirror; the source of truth for the code is https://go.googlesource.com/protobuf and the import path is "google.golang.org/protobuf".

@neild Thank you.


routing corresponding to STYLE 02-12

removed .routes.ts files and replaced them with -routing.module.ts files (corresponding to Angular Style Guide 02-12)
removed extra blank line between Decoration and class

What's the benefit of doing it this way?

@netstart To keep up the consistency with the styleguide
@robstoll Thanks for the PR! I'll take a closer look on it later today

Ah.. path should be '.' I'll commit a fix later

@TheDonDope Is there still something open?

@robstoll nah its fine, but you need to rebase onto current master, since your branch is behind current master.

I've rebased it again, do not wait too long, there are too many contributors supplying pull requests :)

LGTM


docs(ast): improve docs for AstBuilder::move_* methods

#7995
#7994  👈 (View in Graphite)
main

How to use the Graphite Merge Queue
Add either label to this PR to merge it via the merge queue:

0-merge - adds this PR to the back of the merge queue
hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

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

Merge activity

Dec 18, 10:05 AM EST: The merge label '0-merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


Sails - Which Oracle Adapter to start with?

Hello,
I am new to sails.js, but I already need to set it up with a legacy Oracle Database. I see that there were many adapters created over the decade - which one would you recommend to start with trying? If none of them works, how can I extend Waterline with an Oracle adapter (found a 8 years old template repo in this group, is that still up to date)? Or if I need Oracle, maybe it is better if I go to the TypeORM way?
Context: Migrate a two-decade-old club website from Perl/PHP/ASP.NET/Oracle APEX to modern tech, over time, gradually.
Thanks for the replies ;-)
Cheers,
Lajos
PS:  Sorry for repeating this question, but the last comment I found on this topic was created two years ago, many others 3-5 years ago.

I have the same problem and tried many sails oracle adapters but non of them works.
is they any solution for this?
I tried TypeORM and it works OK with Oracle. Can I use TypeORM with Sails.js?

@muhammadnasr in the end for us Django and SQLAlchemy seems to be the way to go

@LajosCseppento Glad you found a solution that works for you!
@muhammadnasr We recommend taking a look at sails-hook-mongoose to see how to override the orm hook.


Fix the stripping of file lists from Git messages.

Currently, the stripping of the file list from Git messages only works for messages that include a summary. For instance:
This is my Git message title.

Some summary for my git commit.

--
 [ file list here ]

However, when syncing commits that only have a single line, and have no commit message, the file list is included because it can't find a new line prior to the "---".
This commit replaces this functionality to include a regex that looks at the beginning of the message, and then does a substr to determine the commit message.

Thanks; can you add a unit test? https://github.com/facebook/fbshipit/blob/master/tests/FileToSymlinkTest.php might be a useful example

@facebook-github-bot import

Also, if you found this for a Facebook project (eg react-native), it's likely that it's using ShipItRepoHG instead

Thanks for importing. If you are an FB employee go to Phabricator to review.

@fredemmott nope I'm actually using this internally! I think @expbot might be the first outside user of shipit bot (or at least one of the first).
Will add a test and fix the lint errors.

@fredemmott when I try to run the tests, I get this error:
Catchable fatal error: Hack type error: Could not find method markTestFailed in an object of type Facebook\ShipIt\ShipItShellCommandTest at /home/adam/__forks__/fbshipit/tests/ShipItShellCommandTest.php line 21 in /home/adam/__forks__/fbshipit/vendor/phpunit/phpunit/src/Util/Fileloader.php on line 56
My process for testing was:

Check out the project.
Run composer install.
Run vendor/bin/phpunit.

Ok actually, I see the issue.
It seems like the version of phpunit that's installed doesn't have markTestFailed -- instead, it has fail. When I update the call site to fail it works -- should we do that? Or should we use a different version of phpunit (and make sure it's locked)?

Got a diff up internally (D3394293) changing these to fail() - internal diff as the fb-examples/ stuff is special.

@fredemmott gotcha. Sounds good. Perhaps we should ship a composer.lock so this doesn't happen in the future? Also, we probably should put vendor/ in .gitignore eh?

Yep, though that'll take a bit longer - it's not currently there as internally we have a .hgignore, and a different composer.json

Just fyi @fredemmott I updated those tests with the change in formatting.

@facebook-github-bot shipit

I'm going to need to revert this, or we need a non-pcre implementation; for really huge patches (eg those created by --verify or --create-new-repo), this makes PCRE error out.

@fredemmott hmm ok. Yah maybe this can be done without regex.

@fredemmott take a look at the latest commit.
Instead of using PCRE, I do the following:

For the exceptional case, where there is no summary in $message, I look explicitly for ---\n at the beginning of the string, and if it's there, I know the message is empty.
For the rest of the cases, I use the behavior that was there before, with a slight modification -- use strrpos rather than strpos, so that it accounts for if a user put "---" in their commit message.

Looks good to me - can you put it up as a separate pull request please?

@fredemmott yah sorry np.

See https://github.com/facebook/fbshipit/pull/18


Appstudio update test-component-pac-svpw

Pipelines as Code configuration proposal

Pipelines as Code CI/test-component-pac-svpw-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
26 seconds
appstudio-init

✅ Succeeded
25 seconds
clone-repository

✅ Succeeded
14 seconds
appstudio-configure-build

✅ Succeeded
35 seconds
sast-snyk-check

✅ Succeeded
1 minute
build-container

✅ Succeeded
30 seconds
sanity-inspect-image

✅ Succeeded
30 seconds
deprecated-base-image-check

✅ Succeeded
2 minutes
clair-scan

✅ Succeeded
33 seconds
sbom-json-check

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
12 seconds
sanity-optional-label-check

✅ Succeeded
9 seconds
sanity-label-check

✅ Succeeded
6 seconds
show-summary

Pipelines as Code CI/test-component-pac-svpw-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
8 seconds
appstudio-init

✅ Succeeded
17 seconds
clone-repository

✅ Succeeded
25 seconds
appstudio-configure-build

✅ Succeeded
40 seconds
sast-snyk-check

✅ Succeeded
1 minute
build-container

✅ Succeeded
21 seconds
deprecated-base-image-check

✅ Succeeded
15 seconds
sanity-inspect-image

✅ Succeeded
45 seconds
clamav-scan

✅ Succeeded
12 seconds
clair-scan

✅ Succeeded
17 seconds
sbom-json-check

✅ Succeeded
10 seconds
sanity-label-check

✅ Succeeded
8 seconds
sanity-optional-label-check

✅ Succeeded
8 seconds
show-summary


NOT WORKING ON SAFARI

works well in chrome but not in safari.
Does anyone have same issues?

I do
I always get 204 on the OPTIONS request

A 204 is correct. Do you have an example app that someone can verify in Safari?

Yes i know the 204 is correct but for some reason Safari considers the request not finished (in the dev tools) but does the POST request as it should. I dont have any example anymore...

I couldn't say what's wrong in Safari, but your example shows that this works contrary to what I understood from your previous post. Could you try adding Content-Length: 0?

@hyochan35 did you find anything else about this issue?  I'm facing a similar smell.

@iesta did you resolve this somehow?

Content-Length: 0 did the trick for us @radius314, @blakeembrey , I sent a PR with that fix:
https://github.com/expressjs/cors/pull/121

I just reviewed the PR :) I'll release a new version as soon as it lands.

thanks @benjamine for jumping on this so quickly, good work!


BUG: Sudoku Solver

See the video for the problem.
https://github.com/Spandan-Bhattacharya/Solve_it/assets/95448248/1651502d-3c85-4795-a134-f8fb0e41731a
The reset button does reset the colours of the numbers when it is pressed.
Correct it for all 3 solvers.

assign me this under JWOC

@avirupnandi1 Go for it!

Any updates?

Doing it by tonight


Return error for incorrect argument of service update --publish-rm

- What I did
Currently --publish-rm only accepts <TargetPort> or <TargetPort>[/Protocol] though there are some confusions.
Since --publish-add accepts <PublishedPort>:<TargetPort>[/Protocol], some user may provide --publish-rm 80:80. However, there is no error checking so the incorrectly provided argument is ignored silently.
This fix is an attempt to address this issue.
- How I did it
This fix adds the check to make sure --publish-rm only accepts <TargetPort>[/Protocol] and returns error if the format is invalid.
This fix also fixes an issue in the equalPort() so that if tcp is not present in PortConfig, the equal check is still valid (i.e., 80/tcp == 80).
- How to verify it
Additional unit tests have been added.
- Description for the changelog
- A picture of a cute animal (not mandatory but encouraged)
The --publish-rm itself may needs to be revisited to have a better UI/UX experience,
see discussions on:
https://github.com/docker/swarmkit/issues/1396
https://github.com/docker/docker/issues/25200#issuecomment-236213242
https://github.com/docker/docker/issues/25338#issuecomment-240787002
This fix is short term measure so that end users are not misled by the silently ignored error
of --publish-rm.
This fix is related to (but is not a complete fix):
https://github.com/docker/swarmkit/issues/1396
Signed-off-by: Yong Tang<EMAIL_ADDRESS>

I'm not very familiar with these options, but my thinking is that it's best for --publish-rm to support a syntax that's consistent with --publish-add. It seems like a common point of confusion that people can't use --publish-add 80:81 and then --publish-rm 80:81.
Are there any obstacles to supporting --publish-rm 80:81?

When I raised #1396 I didn't mean to suggest adding a validation, but allowing --publish-rm to remove only one binding. Currently it's just not possible, and I want to remove only one binding, I need to remove all of them and re-add all the other ones.. what is not optimal?
I vote the same as @aaronlehmann (to fix that behaviour).

@aaronlehmann @sheerun
Currently the --publish-add takes the form of ip:published:target/proto, and in case of --publish-add 80 it represents ip:published:80/tcp so it matches the existing interpretation of --publish-rm target/proto.
Technically it is possible to extend the --publish-rm to take published port without breaking the backward-compatibility.
cc @thaJeztah @dnephin @dperny

LGTM

Not 100% sure I understand this, because I'd think I'd be able to use the full port spec to remove... e.g. 80:80/tcp, however it looks like from the test this would be rejected.

@cpuguy83 The current (1.12) behavior for --publish-rm is to only accept <TargetPort>/<Protocol> (No published port):
      --publish-rm value               Remove a published port by its target port (default [])

So --publish-rm 80:80/tcp will be considered as an invalid input.
However, in 1.12 there is no error output and the invalid input 80:80/tcp will be ignored silently (which caused confusion).
There are some related discussions:
https://github.com/docker/swarmkit/issues/1396
https://github.com/docker/docker/issues/25200#issuecomment-236213242
https://github.com/docker/docker/issues/25338#issuecomment-240787002
This pull request is to return an error message (not changing 1.12 behavior) so it is easy for end user to understand.
We could change the behavior to accept --publish-rm 80:80/tcp if it is agreed.

Ping for additional feedback for the PR (rebased).

ping @aboch

Ping  @mrjana @aboch.

Is it because there is no remote API counterpart to the --publish-add/--publish-rm cli options, so this is peculiar to the cli only ?

@aboch correct; the daemon has no option to "remove" or "add" an option; the client sends the full spec after applying the changes

Thanks @aboch for the review. The validatePort has been renamed to validatePublishRemove for better description.
As was mentioned by @thaJeztah, the swarmkit will only take a desired state of the service spec, so add or remove checking has to be done at the client side.

Thanks @thaJeztah and @yongtang for the explanation.
Changes look good to me.

Ping. Any additional issues need to address?

LGTM but needs a rebase.

Design wise this looks good.

Thanks all for the review. The PR has been rebased.

hm, doing some more testing, this does catch the invalid format (1234:456/tcp), but I wonder if this will lead to the expectation that any incorrect value will produce an error.
Basically, the docker service update command is still using the "reconciliation" pattern; in other words; removing something that didn't exist, doesn't produce an error, because it didn't exist in the first place.
Some examples;
With the service below;
$docker service create --publish 8080:80/udp --name web nginx:alpine
86q0pdryba8xj9k6e7vbkhz1l

Using source-port does not produce an error;
$ docker service update --publish-rm 8080 web
web

Using source-port/protocol does not produce an error;
docker service update --publish-rm 8080/udp web
web

Using a non-existing port also doesn't produce an error;
docker service update --publish-rm 1234 web
web

Perhaps it's not a blocker for this PR, because it does catch the incorrect format
$ docker service update --publish-rm 8080:80/udp web
invalid argument "8080:80/udp" for --publish-rm: invalid port format: '8080:80', should be <TargetPort>[/<Protocol>] (e.g., 80, 80/tcp, 53/udp)
See 'docker service update --help'.

just wondering if we should change that behavior.

discussing this in the maintainers meeting, and we can keep it for a separate discussion.


Add admin command to wait for strong consistency to be ready

The analog to riak-admin wait-for-service riak_kv would be really nice to have for the strong consistency sub-system.  The new ensemble-status information is nice and would help a human operator with knowledge about how the ensembles work to get a rough idea of whether they are ready or not.  But there is no reasonably good way for an operator to say "yep, it looks like a safe point to start directing load to the cluster without all/most request failing".  I understand this is a lot trickier to define for SC (should it respond "yes" when ALL ensembles are ready? Some percentage? Should it just return the percentage).  But if there is a reasonable way to achieve this, maybe we should add it.  Especially when paranoia is medium and AAE and larger than expected quorums are needed.
/cc @jonmeredith @jtuple @michellep for prioritization

Comment for Jira.


Wrong gradient calculated for API tf.keras.layers.Add

Issue type
Bug
Have you reproduced the bug with TensorFlow Nightly?
No
Source
source
TensorFlow version
tf 2.14.0
Custom code
Yes
OS platform and distribution
windows colab
Mobile device
No response
Python version
3.10
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
Forward mode differentiation for the case is inconsistent with the gradient calculated in reverse mode. They shoule be the same.
Standalone code to reproduce the issue
import tensorflow as tf
inputs_0_tensor = tf.random.uniform([], minval=0.3, maxval=1, dtype=tf.float32)
inputs_0 = tf.identity(inputs_0_tensor)
inputs_1_tensor = tf.random.uniform([], minval=1.1, maxval=10,dtype=tf.float32)
inputs_1 = tf.identity(inputs_1_tensor)
inputs = [inputs_0, inputs_1]
layer = tf.keras.layers.Add()

with tf.GradientTape(persistent=True, ) as g:
    g.watch(inputs)
    res_backward = layer(inputs)
grad_backward = g.jacobian(res_backward, res_backward)
print("res_backward:", res_backward)
print("grad_backward:", grad_backward)
tangent_1 = tf.constant(1,dtype=tf.float32)
tangent_2 = tf.constant(1,dtype=tf.float32)
tangents = [tangent_1, tangent_2]

with tf.autodiff.ForwardAccumulator(inputs, tangents) as acc:
    res_forward = layer(inputs)
    grad_jvp = acc.jvp(res_forward)
    print("res_forward:", res_forward)
    print("grad_forward", grad_jvp)

Relevant log output
res_backward: tf.Tensor(9.794308, shape=(), dtype=float32)
grad_backward: tf.Tensor(1.0, shape=(), dtype=float32)
res_forward: tf.Tensor(9.794308, shape=(), dtype=float32)
grad_forward tf.Tensor(2.0, shape=(), dtype=float32)

Hi @cheyennee ,
I was able to reproduce the issue on colab using TF v2.14, 2.15, and TF-nightly. Please find the gist here for reference.
Thank you!

Hi @cheyennee,
Please specify the arguments for Jacobian function as res_backward and inputs like grad_backward = g.jacobian(res_backward, inputs) instead of passing same argument( res_backward) to the Jacobian function. Please refer to the gist.
The issue here is that in the reverse-mode,  the gradients  are computed for each input independently, which results in the gradients [1.0, 1.0]. The same thing you can observe here in the grad_backward output:grad_backward: [<tf.Tensor: shape=(), dtype=float32, numpy=1.0>, <tf.Tensor: shape=(), dtype=float32, numpy=1.0>] which is expected behavior.
while forward-mode computes the total of derivatives, which is the sum of the gradients weighted by the tangents. Since your tangents are [1.0, 1.0], the result is the sum of the individual gradients: 2.0.
Thank You


A userscript wants to access a cross-origin resource

Every time I open a video on youtube a tampermonkey tab appears saying "A userscript wants to access a cross-origin resource". See attatched.

Latest version of Tampermonkey wants to know whether a userscript is allowed to access a certain URL. This is done with @connect which is missing.
You can click Always allow (domain).
You can disable @connect mode in TamperMonkey settings if you wish. This is not recommended by TM.
The request goes away if you add @connect youtube.com to the userscript.

Ok thank you!


How can I get rid of the white margins when I use coord_equal()?

Hi everyone
I'm trying to display ggplot2 on my Hugo Apero blog and I get some white margins when I'm using coord_equal(). Any idea how to get rid of them?
Link:
https://rtichoke-blog.netlify.app/blog/2022-03-27-rtichoke-quick-start/
Snippet:

In your code, you're specifying background colour. Removing that part should fix it.
  geom_abline(intercept = 0, slope = 1, col = "grey", lty = 2) +   theme(
     panel.border = element_blank(),
      panel.grid.major = element_blank(),
      panel.grid.minor = element_blank() #,
    #plot.background = element_rect(fill = "#fff7f5")) -- no background necessary


Blockchain package tests

Scope
What is changing with this PR?
Why?
Why are we doing this?
Todos
If any, what are the follow-up tasks required other than merging this PR?  Have they been arranged?

[ ] ???

closed. Branch name is not supported by CI. Open a different PR with branch name blockchain-package-tests


Add ctd-decoder to cri-containerd-cni---.tar.gz

What is the problem you're trying to solve
imgcrypt config was added to the default config.toml in https://github.com/containerd/containerd/pull/5135, but ctd-decoder binary is not available in the cri-containerd-cni-<VERSION>-<OS>-<ARCH>.tar.gz distribution.
Describe the solution you'd like
Add  ctd-decoder binary to the cri-containerd-cni-<VERSION>-<OS>-<ARCH>.tar.gz distribution.
Additional context
Originally suggested by @lumjjb in https://github.com/containerd/containerd/pull/5135#discussion_r593290636

Would this include a /etc/containerd/ocicrypt/ocicrypt_keyprovider.conf file as well?

I guess not

I don't think it would, its an optional config, and will work fine if the file is omitted.

PR: https://github.com/containerd/containerd/pull/5308


⚠ Bofrost.es has degraded performance

In 00621a0, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1382 ms

Resolved: Bofrost.es performance has improved in e4f2d04 after 10 minutes.


Initial implementation of findAndModify.

Implement findAndModify with collection helper methods.
This is a WIP which is mostly done and just requires some general feedback and a testing strategy if we're going to use GH actions. I also plan to add MongoKittenQuery versions of the helper methods.
Description
This PR implements the findAndModify database command.
In addition to the database command, this PR also adds the following helper methods to MongoCollection :
findAndModify
findOneAndDelete
findOneAndReplace
findOneAndUpdate
These helpers allow the flexibility of building a composable API by chaining options. This is achieved by introducing a new type FindAndModifyBuilder which is the return type of the methods.
public func findAndModify(...) -> FindAndModifyBuilder
public func findOneAndDelete(...) -> FindAndModifyBuilder
public func findOneAndReplace(...) -> FindAndModifyBuilder
public func findOneAndUpdate(...) -> FindAndModifyBuilder

The FindAndModifyBuilder  has convenience methods for adding additional options to the command before executing.
public func sort(_ sort: Sort) -> FindAndModifyBuilder
public func project(_ projection: Projection) -> FindAndModifyBuilder

The only caveat to this approach is that users will have to manually call execute() after they've chained additional options for the command.
Which results in an API that looks like this:
database["users"]
.findAndModify(where: ["name": "Kitty"], update: ["name": "Sir Kitty", "nickname": "Whiskers"])
.sort("age" < 9)
.project(["nickname": .included])
.execute()

Motivation and Context
This just implements more of the Database commands.
Specifically to achieve a use case of acquiring a Read Lock in a transaction as outlined here which requires findOneAndUpdate to be implemented.
How Has This Been Tested?
It has been tested on a local mongoldb instance and each function performs as expected.
Checklist:

[x] If applicable, I have updated the documentation accordingly.
[ ] If applicable, I have added tests to cover my changes.

Does Swift properly recognize which variation of findAndModify you want to be using? I've seen the compiler crash/error on far simpler cases of ambiguity. That's my main concern.

@Joannis I believe it does. So long as the caller is chaining commands like map etc. I saw it work. Gonna test this branch with my Vapor server in a second.

Did it work?

Yep the commands work as expected. I did notice the compiler get confused when I had multiple calls and I had to cast it to the correct return type 😓.

@Joannis I feel pretty comfortable with these changes. Maybe we can have a separate issue created for adding test cases for all CRUD operations to use with GHActions. And with that issue we can find a way to add the replica set for testing changestreams/transactions etc.

Agreed

@Joannis This is ready whenever you want to merge :)

Thanks for the PR! 💪


Remove Secret Generation Strategies extension

Based on the discussion in #158 and #156, this extension can become a
separate standard by itself.

Since this is our last "extension" should we also remove the whole section?

Also, let's make sure there's a concrete issue opened to ensure we don't lose the functionality, at least in an implementation and possibly as a separate spec.

I have added the current extension text verbatim to this repository:
https://github.com/secret-generator/spec

Notes from yesterday's meeting:

Evolved to a separate file
Still needs a full review of content
Think about how to display sub-specs (CloudEvents)

Think about how to display sub-specs (CloudEvents)

I have created a extensions list in the extensions/README.md


Experimental: feature refactor using attributes

design document
in discussion with @dickscheid and @AhmetNSimsek on the refactoring of features.
(from previous meeting notes)

Features are class based, which means new feature likely result in more engineering work (adding new class. See Tracer connectivity, streamline connectivity etc)

Pseudo code
import siibra
from abc import ABC, abstractproperty
from collections import defaultdict

cursor: "QueryCursor" = siibra.feature.get("foo", "bar")

class Intent(ABC):
    type: str="intent"

    @abstractproperty
    def key(self):
        raise NotImplementedError

    @abstractproperty
    def value(self):
        raise NotImplementedError

    def filter(self, *args, **kwargs) -> bool:
        """Filter method for intent. Subclasses can overwrite
        on how the parent feature should filter the feature."""
        return True

class Feature:
    id: str
    name: str
    desc: str
    intents: list[Intent]

    def filter(self, *args, **kwargs) -> bool:
        """Proxy method checks all intents. Shortcircuits
				if any returns false. """
        for intent in self.intents:
            if not intent.filter(*args, **kwargs):
                return False
        return True

class QueryCursor:

    def __init__(self, subfeatures: list[Feature]):
        self.subfeatures = subfeatures
        self.cursor = 0
        self._cached_attributes = None

    def seek(self, idx: int):
        self.cursor = idx

    def next(self):
        if self.cursor >= len(self):
            raise StopIteration
        f = self.subfeatures[self.cursor]
        self.cursor += 1
        return f

    def __iter__(self):
        yield self.next()

    def __len__(self):
        return len(self.subfeatures)

    def __getitem__(self, key: slice | int):
        return self.subfeatures[key]

    @property
    def attributes(self) -> dict[str, set[str]]:
        if self._cached_attributes is None:
            return_val = defaultdict(set)
            for f in self.subfeatures:
                for intent in f.intents:
                    return_val[intent.key].add(intent.value)
            self._cached_attributes = return_val
        return self._cached_attributes

    def filter(self, *args, **kwargs) -> "QueryCursor":
        filtered_features = [f for f in self.subfeatures if f.filter(*args, **kwargs)]
        return QueryCursor(filtered_features)

coincidentally similar to entity component system
to consider:

do we allow Component Inheritence?
do we allow Component member methods?

@dickscheid I have again added new commit, which, paired with configuration commit of 24d547c068237c4d3c808ea5f62a290797e03622 should work with VOI.
related to the over zoom discussion, I have elected to not remove VolumeProvider, but instead, use existing VolumeProvider to simplify how VoiDataAttribute fetches volume.
My reasoning is that volume provider is also used by map, and template. Rewriting it would have a lot of downstream effects. For this rewrite, we should keep the scope limited to features.
We can certain add a TODO to revisit on how volume is fetched, once we finish this rewrite.

todo for 2024 05 06

[ ] merge main -> this branch @AhmetNSimsek
[ ] fix kw_only @AhmetNSimsek

superceded by https://github.com/FZJ-INM1-BDA/siibra-python/pull/594


Update Vault version

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi @gautambaghel , Thanks for the update PR!
I'd like to make a request prior to merging - Since Vault was onboarded we have made updates to our functional testing requirements outlined here in which we'll need the tester to be implemented as a CronJob and set up to run once daily so that we can perform ongoing monitoring of the solution's stability and identify any issues quickly if they were to arise.  An example of what we are looking for can be found here
The functional tests that are being run look like they're in line with our updated requirements, so all we'll need is that Job converted into a CronJob and have it produce a successful test result across the environments before I can merge the PR

Hey @mikemcd3912 - that's fair, I'll track this request however, I won't be able to implement it until later due to other commitments. If you require the PR list to be clean, feel free to close this out I'll open it again.

@gautambaghel We can currently use the version updates. But please get us a new PR asap for CJ. @mikemcd3912 Lets test and merge this.

Looks like your deployment vault-vault-agent-injector is failing.
Specifically, it looks like these pods are failing:

Pod: vault-vault-agent-injector-74b8b4c8d7-9spxf.

@elamaran11 - what is the error exactly? can I get the logs?

@elamaran11 - what is the error exactly? can I get the logs?

@gautambaghel Statefulsets are not deploying on Hybrid nodes due to failing readiness probe. @mikemcd3912 Please share the logs from our environment to Gautham

@gautambaghel I was able to get my issue figured out on Hybrid Nodes, and the updated version looks good on our other platforms so no action needed! Thanks for checking in to offer troubleshooting assistance


[FEATURE] Show dependencies and extension-pack contents

The extension details page should list dependencies and extension-pack contents, similar to VS Code
Extension Pack

Dependencies

@timheuer can you assign this to me, please? I have working code locally, need to make it compatible with Blazor

We can close this once you merge PR #20


Mas 3.0 riakrunpath

There were three problems with the previous debian build:

It failed on debian/ubuntu boxes where /usr/sbin was not in the path (by default Google cloud debian instances this is the case);

There was an untidiness with requiring three scripts not one (e.g. riakpre, riak, riakrun);

As pointed out by Steve Wood relx expects you to override RELX_CONFIG_PATH and VMARGS_PATH, not mess around with links to repoint the default path.

This update resolves these problems and moves back to a single riak script again.  this works on Ubuntu 20 and also debian 9/10 when when /usr/sbin is not in the path.

@martincox - sorry, just when you thought we were all done ... I've gone and refined the build scripts again to go back to a single riak script (removing the riakpre/riakrun), and removing the need for the link to the link to the file.
This seems to solve the problem we were having with some debian/ubuntu setups where /usr/sbin was not in the path.

@martinsumner no worries, I'll test the changes out in centos this morning 👍

Looks good to me. Pushed a commit to remove the scripts from the specfile. All good 👍


Add hyperatompunk

Checklist for submitting an awesome plugin, theme, or resource:

[x] The title for my package/theme uses its npm title (eg. hyper-example)
[x] The link for my package/theme uses its npmjs.com link (eg. https://www.npmjs.com/package/hyper-example)
[x] There is a screenshot in my repo showing what Hyper looks like when my plugin/theme is applied.
[ ] If it's a plugin or resource, put your awesome item at the BOTTOM of the correct section.
[x] If it's a theme, insert it according to the ALPHABETICAL order.
[x] VERY IMPORTANT: I've written a short (one sentence) description for the awesome item I'm submitting.

thanks


[Request feedback] Looking for feedback about the UX experience

The engineering team here at Elastic is looking for developers to participate in research and feedback sessions to learn more about how you use our .NET v8 client and what improvements we can make to their design and your workflow. If you're interested in sharing your insights into developer experience and language client design, please fill out this short form. Depending on the number of responses we get, we may either contact you for a 1:1 conversation or a focus group with other developers who use the same client. Thank you in advance - your feedback is crucial to improving the user experience for all Elasticsearch developers!

Currently, there are too many bugs that require too many workarounds if possible and missing functionality compared to NEST. Incomplete documentation is also an issue. Personally, I am eagerly awaiting the new generator implementation I have read about in other issues. Hopefully, this will significantly improve the developer experience.

Hi @gpetrou, thanks for your feedback. It would be nice if you could as well enter this in the provided form (if you did not already do that).
Just to be completely transparent here:
With the first set of generator changes, we are aiming for full support of all endpoints and server features (e.g. the currently missing aggregations). Initially there will be no major UX/quality of life improvements.
However, this feedback request has been opened for this very purpose. After we have collected the major issues, we will fully focus on improving the developer experience when using this library.
Regarding NEST features: Simplifying the client and removing some features of NEST in the process was a conscious decision of the previous maintainers (which I fully support). This step, and also the use of code generation, is necessary to make the maintenance effort bearable for a single person.
This does not mean that no NEST features will be re-implemented in the v8 client, but a large part will probably not be able to be migrated at this stage. I would be interested to hear the exact names of the NEST features that are important to you.

ATM keeping up to date with the package is a real PITA. Nearly each Patch Version has Breaking Changes..

@stefannikolei 8.13 was shipped with breaking changes which were unavoidable. More about the reasons here:

https://github.com/elastic/elasticsearch-net/issues/8091#issuecomment-2059059297
https://github.com/elastic/elasticsearch-net/issues/8091#issuecomment-2059155570

The patch releases 8.13.x fixed some unintentional breaking changes, but should otherwise not have affected the public API.
Could you please elaborate which breaking changes you've encountered in the latest patch releases? Just trying to figure out if there were more unintentional changes.

For example with v8.13.9 we had breaking changes.
We had to change from
qd.Terms(t => t.Field($"id"))
to qd.Terms(t => t.Field($new Field("id")))


exposing ROI and ARP

[ ] update tool tip text
current: Total returns of the strategy from the creation.
updated: Total percentage returns of the strategy from its creation.

[ ] decimals
current: we show 1 decimal number (i.e. 11.2%)
updated: show 2 decimals (i.e. 11.23%)


Android can not full screen

Describe the bug
I use Avalonia develop an Android, when version is  Avalonia 11.1.0 , app can full screen ,but when update to 11.2, can not.
My code:

To Reproduce

Create a crossplantfrom applicaiton.
run in android, can full screen.
update all avalonia nuget to 11.2.2
run in android, can not full screen.

Expected behavior
No response
Avalonia version
11.2.2
OS
Android
Additional context
No response

Use the InsetsManager(retrieved from Toplevel) to configure full screen.

Use the InsetsManager(retrieved from Toplevel) to configure full screen.

I set IsSystemBarVisible, but not effect

Use the InsetsManager(retrieved from Toplevel) to configure full screen.

I set IsSystemBarVisible, but not effect

I solved this problem. InsetsManager should used in Loaded Event:


feat: optimize storage init logic

Types

[x] 💄 Code Style Changes

Background or solution
减少重复 IO
Changelog

optimize storage init logic

Codecov Report

Merging #674 (e980caf) into main (cfa4fe4) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #674   +/-   ##
=======================================
  Coverage   58.99%   59.00%
=======================================
  Files        1209     1209
  Lines       74650    74671   +21
  Branches    15465    15472    +7
=======================================
+ Hits        44038    44056   +18
- Misses      27909    27912    +3
  Partials     2703     2703

Impacted Files
Coverage Δ

packages/storage/src/browser/storage.service.ts
85.33% <100.00%> (-6.17%)
:arrow_down:

...ages/file-service/src/node/file-service-watcher.ts
71.18% <0.00%> (-1.70%)
:arrow_down:

...uick-open/src/browser/prefix-quick-open.service.ts
74.52% <0.00%> (-1.30%)
:arrow_down:

packages/core-common/src/utils/ipc.ts
83.33% <0.00%> (ø)

packages/core-browser/src/utils/electron.ts
50.00% <0.00%> (ø)

packages/core-browser/src/quick-open/index.ts
79.72% <0.00%> (ø)

...ages/editor/src/browser/fs-resource/fs-resource.ts
72.88% <0.00%> (ø)

...ges/extension/src/node/extension.service.client.ts
67.56% <0.00%> (ø)

...ges/editor/src/browser/workbench-editor.service.ts
62.67% <0.00%> (+0.11%)
:arrow_up:

... and 9 more

Continue to review full report at Codecov.

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