Breaks when I try to uninstall

Here's what I get after clicking 'Uninstall' and try to view the Plugins page:

Let me know if you need any more information.

Hmm. I guess this is because I removed the credentials and uninstalled the oauth plugin before I uninstalled the YouTube uploader plugin I also had installed that was using the oauth plugin.
I just removed both folders, deleted the rows from the plugins database table and that fixed it.


Networking hardware

This may not be a fastrtps issue per-se, but in our application we see frequent delays in messages getting through to their destination. Since our wrapper on top of fastrtps implements a timeout mechanism, we end up timing out quite a lot. Our data rates aren't too high - at most a few tens of messages bouncing around the network consisting of less than 10 nodes. Max message size is < 400 bytes. We aren't doing anything crazy like posting image data over the network. Just out of interest, what kind of networking hardware infrastructure and setup would you recommend to get the most out of fastrtps? We tried a dedicated 2.4GHz wireless network with COTS hardware and that was worse than a shared 5GHz wireless network we use in our office (with all the internet traffic)

OK. Looks like this is too general a question. Closing.


Cannot build react-native project under xcode 7 beta

I have installed XCode Version 7.0 beta 4 (7A165t), tried to build project under<EMAIL_ADDRESS>and got that error on RTCDownloadTaskWrapper.m
- (NSURLSessionDownloadTask *)downloadData:(NSURL *)url progressBlock:(RCTDataProgressBlock)progressBlock completionBlock:(RCTDataCompletionBlock)completionBlock
{
  //Got error here "Null passed  to a callee that requires a non-null argument"
  NSURLSessionDownloadTask *task = [_URLSession downloadTaskWithURL:url completionHandler:nil];
...

According to docs:

Unless you have provided a custom delegate, this parameter must not be nil, because there is no other way to retrieve the response data.

It's been fixed in 0.9.0-rc :)

@ide Yep, have checked it, it compiles. Thanks


[DM Setup] When DM is created->deleted->created, VM SA binding is left around

This is likely a bug in DM or the way we are setting up the IAM binding.
If you create the DM template and then delete it, the service account for the student VM is deleted but the role binding on the project still exists. When the deployment is created again the binding is not updated to point to the new SA (with the same name).

To fix:
Delete the deployment->Delete the role binding in the projects IAM-> Recreate the deployment


Switch to Borg backup

Replace Attic with Borg backup - issue #1

We'll remove the Attic role and files in a few weeks to allow migration.


Markdown Here doesn't work for Evernote in Chrome

Is there a special way to use Markdown Here in Evernote?
Clicking the button while editing a note doesn't do a thing for me.
Kind of surprising given that Evernote is listed in "works great" in wiki.

Weird, it doesn't work for me neither. I'm using the latest version of MDH and Chrome 47.0.2526.106.
Perhaps Evernote changed the type of Textbox that they use?

I tried lately and Markdown Here now works with Evernote. I don't know why it didn't work / works now.

@antonio-gil - if it works for you too, I could close this issue.

Unfortunatelly the issue is more complicated: for example it works in Evernote in Chrome on my desktop but doesn't work in Evernote in Chrome on my laptop. I will compare Chrome versions etc. later today.
If anyone is interested in (hopefully fixing) this issue - let me know if you have any suggestions on what to try.


Installing A9LH - Section IV - Step 3.

It reads:

Regardless of whether or not you did either of the above two steps, update your 3DS by going to System Settings, then “Other Settings”, then going all the way to the right and using “System Update”

Updates while using A9LH + Luma (what you have) are safe, stop asking about it
If this gives you an error, set your DNS settings to “auto”
If this still gives you an error and your NAND is below 9.2.0, follow 9.2.0 ctrtransfer

Doesn't a New 3DS brick if you try to update from 2.1.0?
(We are assuming here that the person decided to skip step one as step three says "regardless of whether or not you did either of the above two steps" )

If the user is on 2.1.0, then they would need to follow step one before following step 3. This is indicted in the guide.

If you have done 2.1.0 ctrtransfer, restore NANDmin.bin:

I know, but as step 3 disregards step 1 maybe errors may occur.

Doesn't a New 3DS brick if you try to update from 2.1.0?

Luma3DS cannot even boot 2.1.0 on n3ds.


chore: add a one hour timeout to all tests

Why is this needed?
It's difficult to reproduce, but I've seen the github actions test suite take more than 6 hours. Having a timeout set will allow us to get some sort of useful debug information instead of having github actions kill it off before we can analyze anything.
Note: We might not need to merge this if we can use this PR to figure out what's going on with the long tests.
Proposed Changes

Do not allow any one unit test to take more than an hour. If it takes longer than an hour, kill it off and print some basic debug info.

Does this PR introduce any breaking change?
No -- this is intended to help debug the test suite.

Codecov Report
Base: 94.59% // Head: 94.32% // Decreases project coverage by -0.27% :warning:

Coverage data is based on head (e54b2bd) compared to base (491cab3).
 Consider uploading reports for the commit 0b7f73a to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #700      +/-   ##
==========================================
- Coverage   94.59%   94.32%   -0.27%
==========================================
  Files          57       57
  Lines        8339     8339
==========================================
- Hits         7888     7866      -22
- Misses        451      473      +22

Impacted Files
Coverage Δ

kazoo/tests/test_cache.py
55.10% <0.00%> (-4.09%)
:arrow_down:

kazoo/tests/test_eventlet_handler.py
87.43% <0.00%> (-1.10%)
:arrow_down:

kazoo/handlers/eventlet.py
98.03% <0.00%> (-0.99%)
:arrow_down:

kazoo/handlers/utils.py
93.60% <0.00%> (-0.92%)
:arrow_down:

kazoo/tests/test_gevent_handler.py
78.87% <0.00%> (-0.71%)
:arrow_down:

kazoo/protocol/connection.py
95.86% <0.00%> (-0.62%)
:arrow_down:

kazoo/tests/test_lock.py
98.78% <0.00%> (-0.18%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

I keep seeing this error also (it appears to be a string returned from the codecov api):
Could not determine repo and owner
🤔

I think the timeout is ok.
If the tests did not complete in 1h, they are not going to complete ever.
On Sun, Jan 29, 2023, 16:17 Jon Bringhurst @.***> wrote:

I keep seeing this error also (it appears to be a string returned from the
codecov api):
Could not determine repo and owner
🤔
—
Reply to this email directly, view it on GitHub
https://github.com/python-zk/kazoo/pull/700#issuecomment-1407772048, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIFTHSG3HX2FDX6GV7XPXTWU3M6FANCNFSM6AAAAAAUKOK74U
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Example run that seems like it'll probably hit the timeout:
https://github.com/python-zk/kazoo/actions/runs/4038631107/jobs/6942766386

This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

I wonder if this is why you see the codecov things, as it tries leverage the Github App.
@ceache I don't have the rights to add the app. Do you know someone who does?

An example of this showing useful debug output:
https://github.com/python-zk/kazoo/actions/runs/4038897905/jobs/6943223749

It looks like this job may time out -- https://github.com/python-zk/kazoo/actions/runs/4039044495/jobs/6943463553
If that works correctly (times out and shows stack traces), I'll open this up for review.

I have resurrected this PR and reduced the timeout from 1h to 3min since it is a per-test timeout.
@jeffwidman @a-ungurianu @ceache if you have some time to check it


feat(metrics): Report controller error counters via metrics. Closes #3034

Closes: #3034
Currently only supports:

Operation panics
CronWorkflow submission errors

This interface should only be used for errors that are impossible to surface with custom metrics

What are the metrics names? as i couldn't find them on prometheus. I have below in my workflow controller's configmap with which I am able to see the usual workflow metrics (argo_worflow_* metrics)
data:
  metricsConfig: |-
    enabled: true
    path: /metrics
    port: 9090


Changelog for 1.7.7

This change is

Coverage remained the same at 90.84% when pulling ae669163ac55998e9f8308e199329748b9d403df on pelme:changelog-177 into a1be92acc8ce292bc0d1f1857804df3f9b0227f8 on pytest-dev:master.

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

changed the protection for the master branch so you can directly push, and made a 1.7.7 release

Thanks Anatoly! :)


Need an update of puppeteer-core to version ^23

Hey!
I'm having an error when setting cookie with page.setCookie(cookie). There is a partitionKey in cookie object and in the previous version of puppeteer there was an error but they updated and fixed it. Can you please update also puppeteer to version 23 please to fix this, thanks
issue link

For now you can use it as follows. The library is currently using @rebrowser. So I am waiting for the update for now.
https://github.com/rebrowser/rebrowser-patches
    let cookies = []
                if (cookies && cookies.length > 0) {
                    console.log('Set Cookies');
                    const client = await page.target().createCDPSession();
                    for (let cookie of cookies) {
                        try { await client.send('Network.setCookie', cookie); } catch (e) {
                            try {
                                cookie.partitionKey = undefined
                                await client.send('Network.setCookie', cookie);
                            } catch (e) {
                                console.log(e.message);
                            }
                        }
                    }
                }

Can you try again with the latest version?

Updated to version 1.3.9. Working like a charm.  🚀w


Create year, quarter, month, week and date from date time field on-the-fly

Could you please consider providing an easy way to generate a hierarchy for calendar aggregation.
As is:
it is possible to create a field in the input data, and then use it for aggregation - for example, week number. However, if at a later point you want to start aggregating by month - you need to reload all data, as it's not possible to add a column into the datastore.
To be:
Please consider adding a feature to generate calendar attributes from date columns using atoti.
Use cases:
Monthly performance, weekly sales, daily volume, etc.

Please see the similar function in pandas: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.resample.html

I am closing this as a duplicate of #171 as I think it is the same feature request (with quarter and week number added).
Let me know if I'm wrong


Be more careful about attribute access and specify oauthlib version

A recent commit to oauthlib added an AttributeError when unspecified attributes are retrieved from a Request: https://github.com/idan/oauthlib/commit/539558a02edbadb8d6ef690fb0beb2510a5eeb17
Since Flask-OAuthlib depends on only the latest version of oauthlib, a recent fresh deploy of our codebase started failing with an AttributeError (we don't pass a client_secret in the url since we're using XHR from a browser). The issue was caught by Flask-OAuthlib's tests, too.
This patch fixes this error by checking hasattr before accessing client (in oauth2), client_secret and client_id from the request object, and also specifies an oauth version in requirements.txt (using compatible release syntax, which should be current for a while yet).

Whoops, I see you noticed this issue and pinned the requirement. I'll close this and reopen the rebase as a proposed upgrade to oauthlib ~= 1.0


Use common code path for single updates and bulk updates

Currently both index and delete APIs use TransportSingleItemBulkWriteAction, which in turn translates the index and delete requests into 'BulkRequest'. However, update is still executed via 2 different code paths. Is there a specific reason for not doing updates as a TransportSingleItemBulkWriteAction? I can't think of any.

Just quick shoot in the dark but can the reason be that there is a dedicated permission for update indices:data/write/update?


[FR] Importing from save

This might be an odd request, but would you consider a feature for importing emblems from saves, including ones that have been downloaded through share codes?

I won't implement import from another save file but I might add a feature to move downloaded emblems to the user tab so they become available while playing offline.


Consider Generator.next a cutpoint

This will likely create some merge conflicts with next-minor (with the span tracing changes), but I can resolve those 👍🏼

/snapshot

/snapshot

@tim-smart why did we end up with unrelated commits in this branch? Seems like a rebase issue

@tim-smart why did we end up with unrelated commits in this branch? Seems like a rebase issue

Not sure. I ran another rebase against next-minor and it was clean. GitHub must struggle when the base branch also rebases.


Can I use this plugin with entity service to query? And If so please can you provide an sample code for it?

Hey @toshits,
I'm afraid I don't understand what you mean?
This Plugin provides a REST Endpoint and a GraphQl Type which you can use for fuzzy-searching in content types.
Do you mean that you want to perform a fuzzy search whilst querying for date with the entityService api in custom code? That wouldn't be possible, but feel free to take a look at the source code of this plugin to see how we are doing it.

@DomDew Yup, I meant using plugin inside custom api. I wanted to fetch relation type column. Sure I will look into the code.


Refactored SelectWidget

This PR refactor SelectWidget from class based component to functional Component
Please let me know, if there is any changes required.

@codic-yeeshu , for PR to be reviewed, all CI checks should pass. Try to make the tests pass.

Closing as duplicate of https://github.com/plone/volto/pull/5094. If this is PR is instead an improvement over #5094, then please add an explanation. Thank you!


Move the graphql_client crate to a subdirectory

Fixes #118

Thanks for the PR! CI is not passing however. There is a wrong path somewhere apparently.

Wtf, all tests run fine on my machine D:

Everything's green now :relaxed:

I merged another PR and now this needs rebasing, sorry :/ I want to do another full review since it's a big change but in principle it looks good.

Rebased :bowtie:

Looks good, thanks for the big PR :)


Drop-in replacement support for the binary packages

I think moving the private key to a separate file that doesn't exist in our released package will be enough.
It is better to give the private key file as much protection as possible.

To encrypt it with a passphrase provided by the user will be too much trouble, the user will have to enter the passphrase every time starting the node. It might be OK for the users who start the node manually on their local devices, it will not be possible to start the node automatically on system start.
Encrypt the private key file with a fixed private key written into a binary, every time the node starts, decrypt the private key using the binary. It is still possible to extract the private key from the binary, but it will not be worth it given that there are not much funds in the wallet under the hot/cold wallet architecture.
Or maybe we should provide both options


Wasted time in React Perf Tools normal?

This is a simple button being animated via CSS transform. Is this normal for Perf.printWasted() to show this? It's about 500ms of time wasted each time the button slides.

You probably have an issue with your FloatingActionButton render method that causes a lot of expansive rerenders.

Ah yes, it's the Material UI button, not my own code. Thanks.


Replace deprecated filter FILTER_SANITIZE_STRING

Description
As of PHP8.1 FILTER_SANITIZE_STRING is deprecated. Replaced it with FILTER_SANITIZE_FULL_SPECIAL_CHARS. This is equivalent to calling htmlspecialchars() with ENT_QUOTES set. (PHP.net)
Checklist:

[x ] Securely signed commits
[x ] Component(s) with PHPDoc blocks, only if necessary or adds value
[x ] Unit testing, with >80% coverage
[x ] User guide updated
[x ] Conforms to style guide

Good catch. Thanks!

See #5005,  #5263
esc(strip_tags($arg)) is used in other places.

@kenjis changing to striptags() requires the underlying functions to be changed and removes flexibility for developers.

Sorry, what do you mean by removes flexibility ?
First of all, input filtering like FILTER_SANITIZE_STRING is a incorrect practice.
htmlspecialchars() should be used just before outputting HTML.

Developers now have the option to use a different filter. If we force 'htmlspecialchars()' the dev doesn't have that flexibility.

@TimZ99 Thank you for the explanation. I don't mean to fix htmlspecialchars().
I mean if $xssClean is true, the return value should be esc(strip_tags($value)).
Because in other places such a value is returned.
How about get_cookie() returns esc(strip_tags($request->getCookie($prefix . $index)))?
@paulbalandan What do you think?

esc(strip_tags($value)) was used to replace use of FILTER_SANITIZE_STRING to maintain the current behavior, although this behavior is incorrect (that's why the filter was deprecated by PHP). Thus, the replacement was just for the time being in preparation for PHP 8.1 compatibility.
If this PR's solution is way better and deviates from the current incorrect behavior, I'd approve this. So, I don't mind if the previously replaced places by esc(strip_tags($value)) would revert to using filter_var and this filter value. However, since this is an improvement, this needs to be documented and mentioned in the changelog.

I searched the source code and found only one $xssClean in get_cookie().
It probably comes from CI3.
I would like to deprecate the param. Because it is a bad practice.
So I don't think FILTER_SANITIZE_FULL_SPECIAL_CHARS is better than FILTER_SANITIZE_STRING or esc(strip_tags($value)).
Input filtering like FILTER_SANITIZE_FULL_SPECIAL_CHARS (or FILTER_SANITIZE_STRING)  is a bad practice.
It barely makes sense only when the value is used only for HTML output.
But generally, most data is not coupled with the output system.
If you use the filtered data to other system, you must revert it before outputting.
Eg, if you have the value M&M, you get the filtered value M&M. But if you save it in the database,
the filtering does not make sense. So you should revert it to M&M and save it.
It is double effort. Why don't you convert when you output?
And when you output the filtered value as HTML, you don't escape (esc()) the value.
If you escape it, the value will be double-escaped.
We encourage to use esc() in the view. So no escape is against the recommendation.

I don't mind if the previously replaced places by esc(strip_tags($value)) would revert to using filter_var and this filter value.

I think there are three types of FILTER_SANITIZE_STRING usage.

Inside Routing/URI processing
Request::get*() 2nd param filter
get_cookie() 2nd param xssClean

2 or 3 is a bad practice. I don't recommend to use.
2 is to specify filter itself. If a user uses FILTER_SANITIZE_STRING, it is not framework responsibility.
But we have to remove FILTER_SANITIZE_STRING in 3.
1 is a security measure. I'm not sure the way is good practice or not, but some measures must be needed.
If we change it, we must consider it very well.

@TimZ99 Thank you for your contribution.
I will prepare for the next release, I create a new PR based on this, and will add the documentation.
So I close this.


Migrate command with target redis server using TLS

Hi, I am migrating data from one redis serve to another one, both are configured to use TLS.
How do I execute MIGRATE command to work with TLS redis servers? The command only does accept a host, port and password as auth

What do you mean  ? You just pass the items in the Redis connection.
  const config: RedisOptions = {
    port: Number(process.env.REDIS_PORT),
    host: process.env.REDIS_HOSTNAME,
    username: process.env.REDIS_USERNAME,
    keyPrefix: process.env.REDIS_KEY_PREFIX,
  };
  if (process.env.REDIS_TLS === 'true') {
    config.tls = {};
  }
  redis = new Redis(config);


Does latest Monk work with Node.js 6.x?

I read it somewhere (can't find it anymore) that Monk is no longer supported? Is that true? Seems there's still active development.

Was true until 2 month ago when I took over the maintenance. And yes node 6 is supported : https://github.com/Automattic/monk/blob/master/.travis.yml#L6


Add support to indian lakhs separator

Adding an option in the config to use indian lakhs separator .
eg : 1,23,456.789 .
Things to Note :
When both the thousand and lakhs separator are true , use thousand separator instead to avoid collision.
Indian currency symbol is '₹' . So the ideal config to use laksh separator would be
createNumberMask({includeLakhsSeparator: true, includeThousandsSeparator: false, prefix:'₹' })

@msafi @lozjackson @themzed Thanks for building Text-Mask . We are relying on text-mask a lot and we are in need to support indian currency . It will be great if we can get this merged .

Hi @shyam2794  do you know why this PR wasn't approved?
I want to add support for the Lakhs format as well.
How did you solve this requirement using the library? :)


ACCES: permission denied

I'm having this weird issue on RNPM linking a component  Has anyone encountered this?
rnpm link react-native-vector-icons
/usr/local/lib/node_modules/rnpm/node_modules/configstore/index.js:54
throw err;
^
Error: EACCES: permission denied, open '/Users/dna/.config/configstore/update-notifier-rnpm.json'
You don't have access to this file.
at Error (native)
at Object.fs.openSync (fs.js:584:18)
at Object.fs.readFileSync (fs.js:431:33)
at Object.create.all.get (/usr/local/lib/node_modules/rnpm/node_modules/configstore/index.js:35:26)
at Object.Configstore (/usr/local/lib/node_modules/rnpm/node_modules/configstore/index.js:28:44)
at new UpdateNotifier (/usr/local/lib/node_modules/rnpm/node_modules/update-notifier/index.js:34:17)
at module.exports (/usr/local/lib/node_modules/rnpm/node_modules/update-notifier/index.js:108:23)
at Object.<anonymous> (/usr/local/lib/node_modules/rnpm/bin/cli:11:1)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)

Really weird. Looks like something is wrong with read permissions of your '/Users/dna/.config/configstore/update-notifier-rnpm.json'. Check if it's readable

or just delete it & reinstall? ;) Anyway, please open an issue in update-notifier, might be a new bug.

I will check once i'm back on the office , I hope this is traceable.

Still the same occured :(

Maybe $ chmod +r /Users/dna/.config/configstore/update-notifier-rnpm.json will do the trick?


⚠ RPC server - Conflux has degraded performance

In ea52d10, RPC server - Conflux ($CONFLUX_RPC_URL) experienced degraded performance:

HTTP code: 0
Response time: 0 ms

Resolved: RPC server - Conflux performance has improved in 0e4ce2f after 4 minutes.


docs(install, using): add installation and usage docs

This change is

Great docs!  Thanks for getting this done


No update ?

Hello your app is obselete ? Demo not work

Hi, I'm no longer maintaining this project, so it is more or less obsolete. That being said, you could probably get it to run by updating the dependencies and setting the proper configuration variables.

Ok thanks 🙂


Patch links in install guide.

Addresses feedback from @geduardo on #804.

Docs Build status updates of commit 48d28ac:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/install-guide/index.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Xamarin Auth <IP_ADDRESS> fully not working on Opera. Chrome doesn't redirect (Android)

Opera and maybe other browsers log in don't work at all.
Also, if your "opens wth Chrome" after successfull log in doesn't redirect to your app page.
Version

[ ] nuget version = <IP_ADDRESS>

Steps to reproduce (Opera)

Only for Android. (iOS didn't check)
You can download sample (https://developer.xamarin.com/samples/xamarin-forms/WebServices/OAuthNativeFlow/)
Update Nuget packages to <IP_ADDRESS>
Run project and start login with Opera browser - you will get redirect without success log in, but you will have Authorization code in your Uri.

Steps to reproduce (opens with Chrome)

Only for Android. (iOS didn't check)
You can download sample (https://developer.xamarin.com/samples/xamarin-forms/WebServices/OAuthNativeFlow/)
Nuget packages is <IP_ADDRESS> or above
Run project and open log in with Chrome browser

Expected behaviour
I don't want to check other browsers, because i spent a day for <IP_ADDRESS> debugging in Opera, but i guess there are the same problem.
So, Opera and other browsers should work, because returned Uri is correct (you can check it with breakpoint on OnPageLoading method).
Actual behaviour
There is some differences.
Chrome has only one page with "account chooser" page and it runs in my app directly, browser don't opens like a app. After your account choice it runs windows with "Please, wait" -> after this you successfully logged in -> Uri is OK, but redirect doesn't work correctly -> toast shows and nothing more -> it runs "choose account" page again in app.

Opera has two pages:

Account choosing with different than Chrome design.
"OAuth window access" page with Deny/Allow buttons

(v<IP_ADDRESS> Opera)
If you press "Deny" it's redirect to your app without log in.
If you press "Allow" it's redirect you without log in, but Uri is correct (it has AuthCode)
(v<IP_ADDRESS> Opera)
If you press "Deny" it's redirect to your app without log in.
If you press "Allow" it doesn't redirect you, but you logged in and Uri is correct. Pressing back button few times returns you to your app with successfully log in.
Other Questions
Why you don't update release notes?
<IP_ADDRESS> -> <IP_ADDRESS> breaks log in on Opera and i can't check what you had changed.
How i can turn off toast? Or change toast text? It's annoying and useless.
0 information in tutorials.
And if you can add please more infromation about methods and properties to OAuth classes. Intellisense is empty.
Thanks.

To support Opera it will be quite a lot of work. Namely, CustomTabs enumerates packages (android apps) that are able to open http scheme and if I can recall correctly there were only variants of Chrome in the code,

How i can turn off toast?

Not sure.

Similar
https://github.com/xamarin/Xamarin.Auth/issues/377

How i can turn off toast?

CustomTabsConfiguration.CustomTabsClosingMessage = null;


Linux: Shared libraries are now built on Ubuntu 18.04

Fixes #6657
Breaking change that may make older linux operating systems no longer compatible. More or less matches changes done by lwjgl3, but we do not target a specific gcc/g++ version just use the default provided by bionic's meta packages.

https://packages.ubuntu.com/bionic/g++
https://packages.ubuntu.com/bionic/gcc
https://packages.ubuntu.com/bionic/g++-aarch64-linux-gnu
https://packages.ubuntu.com/bionic/gcc-aarch64-linux-gnu
https://packages.ubuntu.com/bionic/gcc-arm-linux-gnueabihf
https://packages.ubuntu.com/bionic/g++-arm-linux-gnueabihf

./gradlew spotlessApply is not changing any files for me, but CI is failing to due to formatting. Not sure what is going on there.


Issue #357 Consistency around ResourcePools

Align XML behaviour on programmatic one
Remove any default but for JSR-107 caches

Pushed an update addressing remarks.


CNN_Transformer_DAVIS pre-trained model link not present in utils.py

Command:
net = models.model_pretrained(model = 'CNN_Transformer_DAVIS')
net.config

---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-55-0074dc9e707f> in <module>()
----> 1 net = models.model_pretrained(model = 'CNN_Transformer_DAVIS')
      2 net.config

1 frames
/content/DeepPurpose/DeepPurpose/utils.py in download_pretrained_model(model_name, save_dir)
    786
    787         pretrained_dir = os.path.join(save_dir, 'pretrained_model')
--> 788         pretrained_dir_ = wget.download(url, pretrained_dir)
    789
    790         print('Downloading finished... Beginning to extract zip file...')

UnboundLocalError: local variable 'url' referenced before assignment

This is because there is no elif model condition to assign the link to the variable for CNN_Transformer_DAVIS even though it is listed on the README's pertained model section

good catch; I must have forgotten to upload it; will delete it for now; and I will add back once I have the models.


Remove kontena references

Kontena is referenced in a few places, like in the snap application (e.g. it's called kontena-lens).

I don't know if it is possible to rename a snap binary and keep updating possible.


Fix V3 backward compatibility

This PR fixes #70

Funny that the comment affects the formatting of the attributes. I think I'll create an issue on the syntax repo about that.

Oh, Good catch! I didn't noticed until you mentioned.


Computing partials for all segments and triangles at once

At the moment, the segment and triangle partials are being computed one at a time. This is probably pretty slow. It's worth profiling (with something like line_profiler or pyspy) first to check before investing effort to change this, but I'm guessing this is something like 10x slower than it would be to pass all the necessary observation points and source triangles to cutde.disp_matrix. This is basically just standard Python/matlab "vectorize your code" advice.
Concretely, passing only a single triangle at a time removes a lot of the potential for parallelization and for amortizing operations over many source triangles.
As a point of reference, I remember getting something like 5 million TDE source-observation point computations per second running on CPU with cutde. So, if you do a line_profiler run and see performance substantially worse than that, the problem is likely to be the individual calls.
Both here:
https://github.com/brendanjmeade/celeri/blob/dde094101a56d5f48db1ac288aa20fad2bfd7565/celeri/celeri.py#L1125
and here:
https://github.com/brendanjmeade/celeri/blob/dde094101a56d5f48db1ac288aa20fad2bfd7565/celeri/celeri.py#L1851

I think the challenge that I've seen here is that I do a different map projection for each of the triangles.  This essentially means that for each triangle there is a whole new set of observation coordinates because they go through the map projection too.  That's not a linear transform so I don't think I can just factor it out.  Maybe it's worth considering packaging all of the projected TDEs and projected station coordinates together anyway and doing a lot of unused calculations and then just extracting the subsets we need?

Ah! That's exactly the use case for cutde.halfspace.disp: When you have a bunch of pairs but don't need to calculate all pairs.
https://github.com/tbenthompson/cutde#simple-pair-wise-tdes

That's a great suggestion and I'll leave this issue open so that I can try it out.  Thanks for the idea!


ML-additions and minor style fixes

Added entries for:

CV (Cross validation)
MARS (Multivariate adaptive regression splines)
GAMLSS (Generalized additive models for location, scale and shape)
LightGBM (Light gradient boosting machine)

Style fixes:

prettify md table header
convert all indentations to spaces

Looks great, thank you! Feel free to add more or edit some of the existing rows. :)


Question regarding instantiation of digital twins building

Hello,
We noticed some contradictions between the underlying dtdl framework and opendigitaltwins-building.
In particular, dtdl has orphaned the capability model with their update to: dtmi:dtdl:context;2
However, in digital twins building we noticed that the capability model has been kept.
Our questions:

Is this intentional or is an update coming?
what is the standard (suggested ops) to instantiate these models with the proper relationships?

Thank you for your time =)

Hi!
Caveat: the following is my personal interpretation, and while I contribute to this repo I am not employed by Microsoft or privy to internal discussions.
Q1
I think there may be a slight (very understandable!) confusion w.r.t the terminology here; DTDL v1 included a language-level construct called CapabilityModel, which could implement one or more Capability Model Interfaces, which in turn used Interfaces as schemas. My interpretation is that this first edition of the language focused more or less exclusively on describing sensor/actuator devices, and that in that modelling context a Capability was a natural built in language feature.
DTDL v2 is intended for use with a broader set of Azure technologies (e.g., Azure Digital Twins) that target not only such sensor/actuator devices but also broader modelling domains (e.g., the topology of a building, non-sensorized components within a piece of machinery, etc.). In such modelling contexts, always rooting Interfaces in CapabilityModels is not as natural. Consequently, for DTDL v2 this structure was simplified and a layer of indirection was removed, leaving only Interfaces and deprecating CapabilityModels and Capability Model Interfaces as language features.
Now, in the RealEstateCore models there is an Interface definition called Capability, the provided subclasses of which do describe capabilities within a building/BMS context (“TemperatureSensor”, “PositionActuator”, and so on). One can think of a Capability in RealEstateCore as analogous to a BMS “Point” (see, e.g., https://brickschema.org/ontology/1.2/classes/Point or other vocabularies that use such nomenclature). So RealEstateCore Capabilities fulfil roughly the same use as a DTDLv1 Capability Model would, but are not features of the DTDL language itself; but rather a set of pre-configured DTDL models that we provide.
Q2
As to the second question, how these models are used/instantiated – I have primarily used them in ADT; there you can upload them using the ADT Explorer (https://explorer.digitaltwins.azure.net/) or using the ADT APIs (https://docs.microsoft.com/en-us/azure/digital-twins/how-to-manage-model). The ModelUploader tool in the repo https://github.com/Azure/opendigitaltwins-tools/ could be used also if you prefer a CLI solution.
Once your models are loaded, you’d have to instantiate your twins and twin relationships based on the structure of your building: in ADT Explorer you can do that using point-and-click approaches or by uploading a JSON file containing your data. There are also APIs you can use: https://docs.microsoft.com/en-us/azure/digital-twins/how-to-manage-twin
Best,
Karl

Hi Karl,
Response 1
Thank you for taking the time to read my issue as well as respond. I appreciate you sharing your expertise and experience with me; it is helping me quickly move forward!
Response 2
This seems to correlate with what i've come across. My main question then is for linking of the digital twin instances via the "relationship (from)" attribute we'd manually fill it in; mapping from isCapabilityOf to "relationship (from)." I apologize if this seems like an obvious question but I just want to make sure this is implemented to standard.
Thank you again! =)
-shane

Thank you! =)


Feature request: visual feedback that URL has been altered

I think it would be both helpful & instructive to visually indicate (without being too in-your-face) when a URL has been changed by the extension – perhaps in the web address bar. This provides feedback that the extension is working (and worthwhile) and, if there's an issue with a URL, it's a reminder that the extension may be responsible (i.e. helpful for the user to debug). [This is based on the premise that there will (eventually) be parameters scrubbed which, on rare occasions, may actually serve a user-facing function.]
Food for thought.

Thanks for this feature request. That's a pretty nice idea. I think the web address bar could be the right spot for such an indicator icon. But there should be an option to disable/enable this. For the debugging purpose it's maybe cool to show a list of all the removed parameters by clicking on the indicator icon. This will help the user to identify the parameters which maybe break some stuff. I'll add this as well to the goals section in the readme. But it will take some time till this is properly implemented.


docs: clean up printing of error type

Very minor change that results in the error printing:
ERROR: DispatchDoctor.TypeInstabilityError: ...

rather than the current behavior which is:
ERROR: DispatchDoctor._Errors.TypeInstabilityError: ...

coverage: 99.451%. remained the same
when pulling fb7e4b552b691168d8bd84535b77dc0f87f899b8 on cleaner-print
into 09a5c94ad217992df4202cdedfa8d064f449cb6e on main.


Highest Points Fails in ArcMap

I cannot successfully run the Highest Points tool from the Military Tools for ArcGIS Toolbox in ArcMap (Lyle has confirmed in ArcMap and ArcPro).
I receive the following error in ArcMap:
ERROR 000735: Output Coordinate System: Value is required
WARNING 000012: Elevation already exists
WARNING 000728: Field GRID_CODE does not exist within table
I am using the n36.dt2 file covering the Monterey AOI. This file was provided with the test data early on in the Sprints.

From the dev branch in the repo the tool is working with n36.dt2 and AreaofInterest
Start Time: Wednesday, June 1, 2016 8:58:16 AM
Executing (Copy Features): CopyFeatures AreaofInterest C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\copyArea # 0 0 0
Start Time: Wednesday, June 1, 2016 8:58:17 AM
Succeeded at Wednesday, June 1, 2016 8:58:18 AM (Elapsed Time: 0.60 seconds)
Executing (Calculate Value: Surface SR): CalculateValue GetRasterSR(r"n36.dt2") "def GetRasterSR(ras):\n     return arcpy.Describe(ras).spatialReference" "Spatial Reference"
Start Time: Wednesday, June 1, 2016 8:58:18 AM
Value = GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];-400 -400<PHONE_NUMBER>8426.2;-100000 10000;-100000 10000;8.98315284119522E-09;0.001;0.001;IsHighPrecision
Succeeded at Wednesday, June 1, 2016 8:58:18 AM (Elapsed Time: 0.01 seconds)
Executing (Project): Project C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\copyArea C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\Project "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];-400 -400<PHONE_NUMBER>8426.2;-100000 10000;-100000 10000;8.98315284119522E-09;0.001;0.001;IsHighPrecision" # PROJCS['WGS_1984_UTM_Zone_10N',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-123.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] NO_PRESERVE_SHAPE # NO_VERTICAL
Start Time: Wednesday, June 1, 2016 8:58:18 AM
Succeeded at Wednesday, June 1, 2016 8:58:19 AM (Elapsed Time: 0.69 seconds)
Executing (Calculate Value: CellSize): CalculateValue CalcCellSize(r"C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\Project") "def CalcCellSize(fc):\n   height = arcpy.Describe(fc).extent.height\n   width = arcpy.Describe(fc).extent.width\n   cell = max(height,width)/2000.0\n   return cell" Double
Start Time: Wednesday, June 1, 2016 8:58:19 AM
Value = 1.80610883696531E-04
Succeeded at Wednesday, June 1, 2016 8:58:19 AM (Elapsed Time: 0.20 seconds)
Executing (Get Raster Properties: CELLSIZEX): GetRasterProperties n36.dt2 CELLSIZEX #
Start Time: Wednesday, June 1, 2016 8:58:19 AM
Cellsize in x direction = 0.000278
Succeeded at Wednesday, June 1, 2016 8:58:19 AM (Elapsed Time: 0.01 seconds)
Executing (Calculate Value: Max): CalculateValue Larger("2.77777777777779E-04","1.80610883696531E-04") "def Larger(csx,cs):\n  return max(float(csx),float(cs))" "Cell Size"
Start Time: Wednesday, June 1, 2016 8:58:19 AM
Value = 2.77777777777779E-04
Succeeded at Wednesday, June 1, 2016 8:58:19 AM (Elapsed Time: 0.15 seconds)
Executing (Extract by Mask): ExtractByMask n36.dt2 C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\Project C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2
Start Time: Wednesday, June 1, 2016 8:58:19 AM
Succeeded at Wednesday, June 1, 2016 8:58:21 AM (Elapsed Time: 1.45 seconds)
Executing (Calculate Statistics): CalculateStatistics C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2 1 1 # OVERWRITE C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\Project
Start Time: Wednesday, June 1, 2016 8:58:21 AM
Succeeded at Wednesday, June 1, 2016 8:58:25 AM (Elapsed Time: 3.95 seconds)
Executing (Get Raster Properties: MAXIMUM): GetRasterProperties C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2 MAXIMUM #
Start Time: Wednesday, June 1, 2016 8:58:25 AM
Maximum = 1123.000000
Succeeded at Wednesday, June 1, 2016 8:58:26 AM (Elapsed Time: 0.34 seconds)
Executing (Raster Calculator): RasterCalculator Con("C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2" == 1123, "C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2") C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\rastercalc
Start Time: Wednesday, June 1, 2016 8:58:26 AM
Con(Raster(r"C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2") == 1123, Raster(r"C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2"))
Succeeded at Wednesday, June 1, 2016 8:58:27 AM (Elapsed Time: 1.74 seconds)
Executing (Raster to Point): RasterToPoint C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\rastercalc C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint Value
Start Time: Wednesday, June 1, 2016 8:58:28 AM
Succeeded at Wednesday, June 1, 2016 8:58:28 AM (Elapsed Time: 0.56 seconds)
Executing (Add Field): AddField C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint Elevation DOUBLE # # # Elevation NULLABLE NON_REQUIRED #
Start Time: Wednesday, June 1, 2016 8:58:28 AM
Adding Elevation to C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint...
Succeeded at Wednesday, June 1, 2016 8:58:29 AM (Elapsed Time: 0.21 seconds)
Executing (Calculate Field): CalculateField C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint Elevation !Grid_code! PYTHON_9.3 #
Start Time: Wednesday, June 1, 2016 8:58:29 AM
Succeeded at Wednesday, June 1, 2016 8:58:29 AM (Elapsed Time: 0.15 seconds)
Executing (Delete Field): DeleteField C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint GRID_CODE
Start Time: Wednesday, June 1, 2016 8:58:29 AM
Dropping GRID_CODE from C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint...
Succeeded at Wednesday, June 1, 2016 8:58:30 AM (Elapsed Time: 0.22 seconds)
Succeeded at Wednesday, June 1, 2016 8:58:34 AM (Elapsed Time: 18.29 seconds)

.. and gives some points:

.... lets try the Jenkins build ..
Start Time: Wednesday, June 1, 2016 9:12:18 AM
Executing (Copy Features): CopyFeatures AreaofInterest C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\copyArea # 0 0 0
Start Time: Wednesday, June 1, 2016 9:12:19 AM
Succeeded at Wednesday, June 1, 2016 9:12:20 AM (Elapsed Time: 0.67 seconds)
Executing (Calculate Value: Surface SR): CalculateValue GetRasterSR(r"n36.dt2") "def GetRasterSR(ras):\n     return arcpy.Describe(ras).spatialReference" "Spatial Reference"
Start Time: Wednesday, June 1, 2016 9:12:20 AM
Value = GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];-400 -400<PHONE_NUMBER>8426.2;-100000 10000;-100000 10000;8.98315284119522E-09;0.001;0.001;IsHighPrecision
Succeeded at Wednesday, June 1, 2016 9:12:20 AM (Elapsed Time: 0.00 seconds)
Executing (Project): Project C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\copyArea C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\Project "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];-400 -400<PHONE_NUMBER>8426.2;-100000 10000;-100000 10000;8.98315284119522E-09;0.001;0.001;IsHighPrecision" # PROJCS['WGS_1984_UTM_Zone_10N',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-123.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] NO_PRESERVE_SHAPE # NO_VERTICAL
Start Time: Wednesday, June 1, 2016 9:12:20 AM
Succeeded at Wednesday, June 1, 2016 9:12:21 AM (Elapsed Time: 0.72 seconds)
Executing (Calculate Value: CellSize): CalculateValue CalcCellSize(r"C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\Project") "def CalcCellSize(fc):\n   height = arcpy.Describe(fc).extent.height\n   width = arcpy.Describe(fc).extent.width\n   cell = max(height,width)/2000.0\n   return cell" Double
Start Time: Wednesday, June 1, 2016 9:12:21 AM
Value = 1.80610883696531E-04
Succeeded at Wednesday, June 1, 2016 9:12:21 AM (Elapsed Time: 0.19 seconds)
Executing (Get Raster Properties: CELLSIZEX): GetRasterProperties n36.dt2 CELLSIZEX #
Start Time: Wednesday, June 1, 2016 9:12:21 AM
Cellsize in x direction = 0.000278
Succeeded at Wednesday, June 1, 2016 9:12:21 AM (Elapsed Time: 0.01 seconds)
Executing (Calculate Value: Max): CalculateValue Larger("2.77777777777779E-04","1.80610883696531E-04") "def Larger(csx,cs):\n  return max(float(csx),float(cs))" "Cell Size"
Start Time: Wednesday, June 1, 2016 9:12:21 AM
Value = 2.77777777777779E-04
Succeeded at Wednesday, June 1, 2016 9:12:22 AM (Elapsed Time: 0.11 seconds)
Executing (Extract by Mask): ExtractByMask n36.dt2 C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\Project C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2
Start Time: Wednesday, June 1, 2016 9:12:22 AM
Succeeded at Wednesday, June 1, 2016 9:12:23 AM (Elapsed Time: 1.47 seconds)
Executing (Calculate Statistics): CalculateStatistics C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2 1 1 # OVERWRITE C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\Project
Start Time: Wednesday, June 1, 2016 9:12:23 AM
Succeeded at Wednesday, June 1, 2016 9:12:24 AM (Elapsed Time: 0.66 seconds)
Executing (Get Raster Properties: MAXIMUM): GetRasterProperties C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2 MAXIMUM #
Start Time: Wednesday, June 1, 2016 9:12:24 AM
Maximum = 1123.000000
Succeeded at Wednesday, June 1, 2016 9:12:25 AM (Elapsed Time: 0.45 seconds)
Executing (Raster Calculator): RasterCalculator Con("C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2" == 1123, "C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2") C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\rastercalc
Start Time: Wednesday, June 1, 2016 9:12:25 AM
Con(Raster(r"C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2") == 1123, Raster(r"C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\intermed2"))
Succeeded at Wednesday, June 1, 2016 9:12:27 AM (Elapsed Time: 1.80 seconds)
Executing (Raster to Point): RasterToPoint C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\rastercalc C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint Value
Start Time: Wednesday, June 1, 2016 9:12:27 AM
Succeeded at Wednesday, June 1, 2016 9:12:28 AM (Elapsed Time: 0.99 seconds)
Executing (Add Field): AddField C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint Elevation DOUBLE # # # Elevation NULLABLE NON_REQUIRED #
Start Time: Wednesday, June 1, 2016 9:12:28 AM
Adding Elevation to C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint...
Succeeded at Wednesday, June 1, 2016 9:12:29 AM (Elapsed Time: 0.35 seconds)
Executing (Calculate Field): CalculateField C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint Elevation !Grid_code! PYTHON_9.3 #
Start Time: Wednesday, June 1, 2016 9:12:29 AM
Succeeded at Wednesday, June 1, 2016 9:12:29 AM (Elapsed Time: 0.25 seconds)
Executing (Delete Field): DeleteField C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint GRID_CODE
Start Time: Wednesday, June 1, 2016 9:12:29 AM
Dropping GRID_CODE from C:\Users\<user>\Documents\ArcGIS\Projects\Test_MTGT_repository\Test_MTGT_repository.gdb\HighestPoint...
Succeeded at Wednesday, June 1, 2016 9:12:29 AM (Elapsed Time: 0.19 seconds)
Succeeded at Wednesday, June 1, 2016 9:12:30 AM (Elapsed Time: 11.91 seconds)

Next step will have to setup an ECS machine and try it there...

@mfunk  I assigned you because you are tasking the 10.3.1 tasks in asana for the current sprint "military tools for ArcGIS toolbox arcmap 10.3.1 and 10.4.1"

@topowright don't know how much you remember about this, but i didn't see it on the 10.3.1 version from jenkins.


Fix data inconsistency caused by default value

What problem does this PR solve?
This is a manual pr merge(#3846 #4224 #3930)
Issue Number: close #3793 #4223 #3929 #3918
Support more data types with default value attribute, and fix potential data inconsistency caused by default value logic

Codecov Report

:exclamation: No coverage uploaded for pull request base (release-5.1@b597887). Click here to learn what that means.
The diff coverage is n/a.

@@               Coverage Diff                @@
##             release-5.1      #4446   +/-   ##
================================================
  Coverage               ?   62.3676%
================================================
  Files                  ?        161
  Lines                  ?      17004
  Branches               ?          0
================================================
  Hits                   ?      10605
  Misses                 ?       5496
  Partials               ?        903


Code and repo audit

README.md

I would suggest: NameGuard by NameHash as a title, current title might be confusing

A more context could be given in the readme, i.e. why namegaurd could be useful. Some potential use-cases would be valuable.

In the impersonation section giving actual comparison between safe and unsafe names would be very valuable.

API/README.md
I tried running

pip install nameguard

and got:
ERROR: Could not find a version that satisfies the requirement nameguard (from versions: none)
ERROR: No matching distribution found for nameguard

My env is as follows:
Python: 3.11.3

If the pypi package is not yet available, maybe extend the README to include instruction on how to install the lib currently, using poetry.

Add | python -m json.tool   in the curl call - this will make the result much more readable.

I don't get the difference between:

and

The messages are the same.

This one is pretty obscure (at least looking at the message):

At the end when running the non-monkey-patched version, I've got a bunch of errors:

I guess some additional service should be running on our machine:

This should be mentioned in the readme.

In the project definition file

https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/pyproject.toml#L5-L10

Are these emails maintained
It would be better to provide emails to real people, not only the organization catch-all emails.
Homepage should be updated
License should be changed to MIT

Why conf name is used here?
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/grapheme_normalization.py#L5-L7
Why not grapheme?

This regex is not bullet-proof against new-line injection.
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L87
The anchors should be changed int \A and \z.

Consider missing key error, which would generate obscure error massage for a nested key:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L90
Maybe there should be error showing all elements of the keys list or a None value, if the path does not exist?

Missing return value type:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L108-L109

The doc says namehashes won't be analyzed, while in fact they might be resolved (according to the argument):
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L112-L116
Consider changing the doc.

What about names such as ...?
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L123
Shell the empty labels always be removed? Or for that case an empty string is ok?

I would suggest changing label_analysis into label
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L136-L143
Currently there's little difference between label_analysis and labels_analysis which makes the code harder to understand. The call lable.graphemes would be even more natural.

The same remark applies to the following code:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L146-L150
label would be better than label_analysis.

Does the DNA checks require previous aggregation of results?
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L158-L166
I don't understand why the application and organization of these checks differs from the other checks.
A short comment would be helpful.

Taking into account that this a constructor:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L180-L184
it's very strange the single call to that method occupies more than 60 lines.

The code
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L206-L210
has the same interleaved logic/value computation, which is hard to follow.

The same applies to this piece of code:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L218-L221

I understand that this is Python-style:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L235-L239
but putting the loop at the end once again makes the code harder to understand, since the variables are defined after they are used.

Missing return type
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L108

This code and many similar pieces of code could be simplified from
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L296-L298
to
([self._inspect_confusable(c) for c in (grapheme_analysis.confusables_other or [])]

Here
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L304
grapheme relates to the grapheme analysis result. Would be better to make the names more consistent
Cf. this code:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L277-L278

For me the name of the method:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L321
implicates, that we are securing some name, but the logic is about checking if the name is secure.
validate_security, is_name_secure or some other name with a verb that refers to the proces would make the method more easy to infer it's semantics from.

As far as I understand:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L370-L377
all checks result in the same value being returned. Maybe using or would make to code simpler?

As mentioned earlier
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L385-L389
it would be better to change the logic not to rise a KeyError.

Else is not needed
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L412

Else is not needed:
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L420-L423

Once again else is not needed since all previous paths result in a return and exit the method.
https://github.com/namehash/nameguard/blob/daafc6a2e02f04a434f3ab7b0611c4a2a74388b5/api/nameguard/nameguard.py#L426-L427


[k8s][feat] Allow defining access as kubernetes config

Description

Allow pasting whole kube config object
In case of zero configs, fall back to default locations
filtering is done on resource kind

Code of Conduct
By submitting this pull request, I agree to follow the code of conduct.

https://github.com/someengineering/resoto-ui/pull/194
The fix for the UI is in review!


Stop testing with node v0.10 and v0.12, add v6.0 instead

https://nodejs.org/en/blog/release/v6.0.0/#what-about-node-js-v0-10-and-v0-12

At the same time, we should add testing for Node v6.

It seems that AppVeyor sometimes breaks on Node 0.10 now for who knows what reason, so all the better to do this


Popover appearing in the wrong place

Expected behavior and actual behavior:
When clicking on the button in the demo for px-popover, I expected the popover to be directly adjacent to the button. Instead, it's appearing far away on the screen, per this screenshot:

This is also the case when I scroll down on the page and click on the button again:

Steps to reproduce the problem:
Click the "Click here" button in the demo.
Environment:
Using Google Chrome for px-popover v2.0.3.

Fixed in v2.0.4.


EID-2085 Add 5.1.0 release notes

Add release notes for the removal of eIDAS support.
The release notes markdown links to a more detailed release details page.

Looks good - I've had a dig through the commits since the last release and can't see anything else that needs to go in the notes.

Awesome, thanks Chris 👍


Save Settings button disabled or missing?

Hi!
For some reason my save settings button is not loading properly, I think I get this placeholder but not the actual submit button, I don't have any policies or permissions configuration in place, it's just a new Nova install. Any insight?
Thanks!

Im having the same issue

same issue, any help

Same issue here.. I had upgraded Laravel from 8 to 9 and 9 to 10 and also updated Nova.

I downgraded Nova to 4.27.14 and the Save button works.

I downgraded Nova to 4.27.14 and the Save button works.

that worked for me too

Nice thanks all, I confirmed it works downgrading nova, there may be something funky on version 4.28 and the submit button component of Nova.

Also experiencing this after upgrading Nova. Thanks for the PR @alancolant, hope it's merged it.

Also getting this with the latest Nova 4.29.2, I don't think this issue is going to resolve on its own.
For now, we've updated composer.json to use alancolant's fork:
...
"require": {
     ...
     "outl1ne/nova-settings": "dev-main",
     ...

    "repositories": [
        {
            "type": "composer",
            "url": "https://nova.laravel.com"
        },
        {
            "type":"vcs",
            "url":"https://github.com/alancolant/nova-settings"
        }
    ]

Then composer update outl1ne/nova-settings.

Thank you, @nathan-io , for the details.
I just want to clarify that I won't have the time to keep the fork updated if the plugin evolves on its own.
The only reliable long-term solution is for the pull request to be merged.

Same issue here, would be great to get the PR merged.

Now nova latest version still have this issues

oh man, once again another nova<->nova-package issue... no saving for now i guess :/

@davidvexel
I create PR in https://github.com/JeffBeltran/sanctum-tokens with same fix

thank you! fix works...saving is back again 🚀


Allow running cli tool non-interactively

Currently when the cli-tool is ran for the first time, and no tool-settings.json is there, it would show the Welcome! Let's set up your tool settings interaction. This is somewhat cumbersome in continuous integration and container development use cases, where I just want to do the conversion at the first call of the tool and leave any updating to the container image. Creating the files upfront would be a workaround of course, but not really pretty.
Please provide a way to use the tool "config-file-less", e.g. using suitable command line options, so that it just does the conversion in one go and not depend on any existing config file.
Btw, this is such a great tool, keep up the awesome work!

Hi @ptensschi! Good call. I've been meaning to get to this. I'll have something ready in a few days.
The option could be something like --no-ask? Then it wouldn't ask if you wanted to setup, or check for updates.
ss.cli run -hr --no-ask

Thoughts?
Do you mind sharing a bit about how you are using StateSmith? Programming language? What you are using a state machine for (embedded, game dev, UI, ???). No worries if you can't share. It's just really cool to see how it is being used :)

CLI tests failed on github server due to latest node.js version (23) printing extra warning (not due to our code). Here's the fix: https://github.com/StateSmith/StateSmith/commit/b6eae1c93951bb3fec4ba4b492cc01b19b56ae56

Hi Adam, thanks heaps for fixing this, works like a charm!
As for the use of StateSmith, I use this in embedded mostly (pressing buttons, running and braking motors, lighting leds, starting and stopping other actuators).
The interactive simulator it helpful here in particular, because you can "feel" it before throwing it onto real embedded hardware.

Very cool @ptensschi. Thanks for sharing :)


0.5: Support dotted keys.

cc #224

Thanks! I wouldn't worry too much about errors and spans, we can always try to fix those up later I think. Should it be possible to use these keys to insert into normal tables as well though? Something like:
a.b = 1
[a.c]
d = 3

Good question.  There's a lot of discussion on the toml issues about when tables should be open/closed, but it doesn't look like there is much consensus. I'll ask them about that case.
What do you think about keeping it conservative for now, and expanding support later if that's the direction TOML wants to go?
I'd also be fine with delaying this PR until they decide on these issues.  This is by far the biggest change, and probably going to be controversial to some.

I'd be fine with either the route of holding off until we hear back on the issue or adding the conservative pieces here. We could also add support but require a flag to turn it on in the parser perhaps?

I'm keen to wait for clarity on the spec.  I'll circle back once I have a better understanding how it should work.

I've pushed a small change to add a further restriction that dotted keys can't insert into previous inline tables.
I've been thinking about this for a while.  I feel like it would be best to initially be conservative and don't allow the three table types to intermix.  The limitations can be removed later if there are compelling reasons or use cases.  I think it will be easier to relax the restrictions later than to initially start with something too permissive.

Sounds great to me, thanks!


Switch to building with WDK nuget

This pull request includes several changes to integrate NuGet package management for various Microsoft Windows SDK and WDK packages across multiple project files. The most important changes include adding NuGet package references, modifying project files to include new import statements, and ensuring that the necessary packages are installed.
Integration of NuGet package management:

CMakeLists.txt: Added logic to install required NuGet packages and set WDK_ROOT based on the platform.

Modifications to project files:

cxplat/cxplat_test/cxplat_test.vcxproj: Added import statements for various Microsoft Windows SDK and WDK packages and included a packages.config file. [1] [2]
cxplat/src/cxplat_winkernel/cxplat_winkernel.vcxproj: Added import statements for various Microsoft Windows SDK and WDK packages and included a packages.config file. [1] [2] [3]
cxplat/src/cxplat_winuser/cxplat_winuser.vcxproj: Added import statements for various Microsoft Windows SDK and WDK packages and included a packages.config file. [1] [2]
sample/sample.vcxproj: Added import statements for various Microsoft Windows SDK and WDK packages.

Addition of packages.config files:

cxplat/cxplat_test/packages.config: Added to list the required NuGet packages.
cxplat/src/cxplat_winkernel/packages.config: Added to list the required NuGet packages.
cxplat/src/cxplat_winuser/packages.config: Added to list the required NuGet packages.
packages.config: Added to list the required NuGet packages.
sample/packages.config: Added to list the required NuGet packages.

Note:
Eventually this can probably be collapsed down into Directory.Build.props, but for now I am using the UI to make the changes.

Blocked on:
3>c1 : fatal  error C1250: Unable to load plug-in 'd:\usersim\packages\Microsoft.Windows.WDK.x<IP_ADDRESS>100.2161\c\bin\10.0.26100.0\x86\drivers.dll'.


allow conflicting names in different packages

Currently go-workflows only keeps the relative name of the function.
This breaks activity structs with the same method names.
What if workflows and activities used fully qualified names?

Thanks for this PR. For now I'd like to keep it simpler, makes it a bit easier to override activities and subworkflows in unit tests.


Fix 500 errors when indexing fails on models with non-ASCII characters in their representations

When adding a model instance to the search index fails for whatever reason, Wagtail logs an exception, constructing the message using u'%r' % instance (the u is implied by from __future__ import unicode_literals). This throws a UnicodeDecodeError when the string representation of the instance contains non-ASCII characters.
For example, take an Image instance called image with a title of "à":
>>> unicode(image)
u'\xe0'
>>> repr(image)
'<Image: \xc3\xa0>'

This cannot be substituted into a unicode string using %r:
>>> '%r' % image
'<Image: \xc3\xa0>'
>>> u'%r' % image
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3...

Because it's the equivalent of:
>>> u'%s' % '\xc3\xa0'
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3..

This change fixes the issue while maintaing the repr-like representation by decoding the repr-generated string using UTF-8 before substituting it using %s:
>>> u'%s' % unicode(repr(image), 'utf-8')
u'<Image: \xe0>'

I've checked other instances of %r usage in the project, and none of them have this issue, since they dont try to substitute a model instance using %r.
Also note that this issue does not occur with Python 3, so it's not something that should be merged into the 2.x branch.

The test failure above is due to NPM package installation issues, unrelated to the change in the commit.

Thanks @Aramgutang! Merged in cfe2b4a6a2b36c6815b492fbefdcb3bba5822a36 (for 1.12.x) and 0f314e7a1228231db26818e2fbb6c71b99cf816e (for 1.13.x).


Two containers can transfer files between each other

https://docs.docker.com/engine/reference/commandline/cp/
https://docs.docker.com/engine/reference/commandline/cp/
https://docs.docker.com/storage/volumes/

Not going to be implemented using containers.


Code drag & drop doesn't work anymore

Code drag & drop doesn't work anymore in the code editor. Caused by JDK 17.

Instructions for a manual local fix for users:
https://hub.jmonkeyengine.org/t/sdk-3-6-1-not-letting-me-move-highlighted-text-in-code-editor/46909


Add Qt 6.7 to SVG support chart

Qt extended their SVG support. It'll be good to have comparison with a fresh Qt version.

Interesting. They might get +10% coverage increase. Will test someday.

10% jump. Not bad.


Pronoun or service shorthand

I understand that acronyms can be very confusing. Particularly if they are used without supplying an explanation or definition. However, some pronouns or service names can also become very confusing or excessively wordy if we don't shorthand them in some way. Is there guidance on an intermediate way of contracting the name so it's clear what's being referred to without using an acronym:

My Really Very Super Long Service Name (Good)
MRVSLSN (Bad)
Very Super Long Service (Better?)

Alternatively, is there a way to create a unified acronym list? Say I hover over an acronym, it would show me exactly what's being referred to?

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

ID: 0d30bb26-5486-e2d9-851b-47ceeb6d07b5
Version Independent ID: 295d184a-a254-acea-6185-b14346fb0634
Content: Acronyms - Microsoft Style Guide
Content Source: styleguide/acronyms.md
Product: non-product-specific
GitHub Login: @pallep
Microsoft Alias: pallep

Addressed in the Cloud Style Guide for Service Abbreviations.


Question of Running Time

Good job!  Your engineering skills are solid. It's fantastic that you could write the ONNX version for LightGlue just two days after it was open-sourced!
BTW, do you compare the running time between PyTorch and ONNX inference?

Thank you for your kind words!
Benchmarking is definitely on my wish list! I'll see if I can get around to it, although a fair comparison may not be possible due to the differences between both versions. Originally the intention of exporting to ONNX was to create a framework-agnostic version of LightGlue (e.g., be able to deploy in C/C++, etc.). I would suspect that with all the available optimisations built into PyTorch already (e.g., mixed-precision, torch.compile(), flash attention, etc.), it's most likely faster than the ONNX version.

Looking forward to it.

Hi @Vincentqyw , I've provided a preliminary comparison of the inference times. I hope you find it useful in your work!

Great! Very detailed report!


Cover KNX

Home Assistant release (hass --version): 0.51
Python release (python3 --version):
Component/platform: KNX Cover
Description of problem:
I can’t open my shutter by setposition.
The command „0“ or „1“ is not transferd to my KNX as procent 5.001 (DPT)
„2-100“ -> I can see in the KNX monitor as 5.001. (DPT)
„0“ or „1“ DPT is empty.
Expected:
0 and 1 as 5.001 %
Additional info:
checked in ETS5 KNX Monitor

May you help testing #8725 ?

sure!

I think this issue may be closed.

„0“ or „1“ procent is working! thans Julius!


storing api keys in plain text

Validations

[X] I believe this is a way to improve. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that requests the same enhancement

Problem
I don't like that all the API keys are stored in plain text in a JSON file at the user root. I know that this is required for VSCode, and every other plugin that uses API has to do this. It just doesn't sit right with me.
Solution
At the very least, put a .gitignore at the root of .continue to make sure config.json doesn't get indexed. It may also be possible to write external scripts that encrypt the config.json if the user wants to be security-conscious.

Ideally one should be able to use environment variables for API keys and keep them out of the config entirely.

Another vote. Support for environment variables or alternative secure storage would be a significant improvement.

I too would support the idea of retrieving the API keys from the environment variables.

I also feel like .continuerc.json is pretty much impossible to use, if I can't pull in secrets. Otherwise I can't commit this, when the whole point of the file is to share setup with the team?
Or is that not the point? Should I gitignore this and let everybody else copy/paste this?

Putting this into config.ts worked for us:
 /**
   * Recursively replace environment variable placeholders in an object.
   *
   * This function traverses through the provided object and looks for strings
   * containing placeholders in the format `${VAR_NAME}`. It then replaces
   * these placeholders with the corresponding values from `process.env`.
   * If the environment variable is not found, it replaces the placeholder with an empty string.
   *
   * @param obj - The object in which placeholders should be replaced. This can be a deeply nested object.
   */
  const replaceEnvVars = (obj: any) => {
    for (const key in obj) {
      if (typeof obj[key] === 'string') {
      // Replace placeholders in the format ${VAR_NAME} with the value from process.env
        obj[key] = obj[key].replace(/\$\{(.+?)\}/g, (_: any, varName: string | number) => process.env[varName] || '');
      } else if (typeof obj[key] === 'object' && obj[key] !== null) {
      // Recursively call replaceEnvVars for nested objects
        replaceEnvVars(obj[key]);
      }
    }
  };

  const newConfig = JSON.parse(JSON.stringify(config)); // Create a deep copy of the config object
  replaceEnvVars(newConfig);
  return newConfig;

@bachittle @noamross @rashabarbar @boennemann @ctwardy thoughts on this implementation?

Environment variables will be checked for in some specific config inputs like URLs and API keys (any others?)
They can be injected into those strings using mustache format e.g. {{ ENV_VAR_NAME }}
by default, the IDE checks .env files at the root of the directory
or, if envFiles = ["URI_1", "URI_2"] etc. is specified in config.json it checks those
If a specified var is not found, will throw error on config load and show in config issues page

Would note that this issue is solved way more robustly for teams by Continue for Teams (in beta) since in this case would still need to share config files around and stuff. But this would be good for

Individual developers with no team (common)
Cases where within one team, one developer would use one model and another another, etc. (possible edge case for now)

@bachittle @noamross @rashabarbar @boennemann @ctwardy thoughts on this implementation?

Those look good - I'd neglected to support .env but it really should.  envFiles is a great idea.
We're tracking the team version and will be interested when we can run the server behind our firewall. Totally understand that's not your first priority. But add a vote for the backlog.

@RomneyDa

by default, the IDE checks .env files at the root of the directory

If directory meaning "current workspace / working directory", I would prefer .secrets in $HOME rather than storing API keys in CWD.
It seems like a trend that coding assistance tools, including Continue, would build a map of the repo and inject files as context as LLM sees fit (smart context), and it's a risk that .env file could be sent to some remote model provider when the user ask something like "introduce me the structure of this project". Let the tool ignore dot files is sometimes a good practice, but can't promise every tool will do this.

@Joilence good callout, I think to answer your question, for indexing and all directory walking including repo map generation, these files are ignored by default including .env files and anything in .gitignores and .continueignores:
https://github.com/continuedev/continue/blob/2c597764cac076a6342625273e43f203b74f2da6/core/indexing/ignore.ts
also check out the walkDir function
.env would only be checked when parsing config in that solution
@ctwardy Only supporting CONTINUE_ env variables with mustache templating could be a pretty solid solution

Thumb up this issue, as it will ease config.json sharing.
Update on the workaround provided above:
With continue 0.9.244 I ended up with this (mostly wrote by sonnet, there is maybe a better way) working for me:

~/.continue/config.ts:

const replaceEnvVars = <T>(obj: T): T => {
  if (Array.isArray(obj)) {
    return obj.map(item => replaceEnvVars(item)) as T;
  }

  const result = { ...obj };
  for (const key in result) {
    if (typeof result[key] === 'string') {
      // Replace placeholders in the format ${VAR_NAME} with the value from process.env
      result[key] = result[key].replace(/\$\{(.+?)\}/g, (_, varName: string) =>
        process.env[varName] ?? ''
      );
    } else if (result[key] && typeof result[key] === 'object') {
      // Recursively call replaceEnvVars for nested objects
      result[key] = replaceEnvVars(result[key]);
    }
  }
  return result;
};

export function modifyConfig(config: Config): Config {
  return replaceEnvVars(config);
}

~/.continue/config.json:

{
  "models": [
    {
      "model": "claude-3-5-sonnet-latest",
      "provider": "anthropic",
      "apiKey": "${CONTINUE_ANTHROPIC_API_KEY}",
      "title": "Claude 3.5 Sonnet"
    }
  ],
  "..."
}


Add a config for a narrative only indexer

Similar to what we did for ama_config.yaml, make one for narratives.

See: https://github.com/kbase/index_runner/pull/196

See: https://github.com/kbase/index_runner/pull/196

Done


Unable to parse JSON string

Hi,
i am using localStorageService.add('something') to store the value and localStorageService.get('something') to get the value. If i save the value 0000 i get an "unable to parse JSON String" when i use get
Is this known issue?

It works with the newest version!


Images in readme.md are broken

The broken images all point to dropbox.
Solution proposal:
Maybe upload to imgur or even to the repo itself and pointing relative to it?!

Hm, I still see the images rendering just fine, can anyone else confirm they are no longer seeing images in the README ?

strange. Also not broken here anymore. So maybe it was a temporal problem yesterday only.

Might be a temporary CDN issue on GitHub's side, since they cache image links on their end. Closing.


[DUOS-1740][risk=no] Version updates for all actions

Addresses
https://broadworkbench.atlassian.net/browse/DUOS-1740
Summary
Update for all actions
Remove unused combine prs action
Adds dependabot check for actions

Have you read Terra's Contributing Guide lately? If not, do that first.

Label PR with a Jira ticket number and include a link to the ticket
Label PR with a security risk modifier [no, low, medium, high]
PR describes scope of changes
Get a minimum of one thumbs worth of review, preferably two if enough team members are available
Get PO sign-off for all non-trivial UI or workflow changes
Verify all tests go green
Test this change deployed correctly and works on dev environment after deployment

Since we're bumping major versions have we checked that these have complete compatibility with our current actions?

The successful action runs are essentially that compatibility check

This is the test that's failing - it's flaky, will file a new ticket for it:
  │ ✖  MultiDatasetVoteTab/multi_dataset_v      00:05       19       18        1        -        - │
  │    ote_slab.spec.js                                                                            │


FEATURE: Content cards

Description
This PR adds the content card schema ( https://ns.adobe.com/personalization/message/content-card ) so it can be used by the subscribeRulesetItems event.
This is my first time contributing to this repo, so please take a close look and let me know your feedback! 😄
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Improvement (non-breaking change which does not add functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

@jasonwaters Do you think we need a phase 2 here where we can provide move utils to the users to avoid custom code?

@jfkhoury Maybe!  I removed the insanely convenient subscribeContentCards command at the direction of the alloy team.  In the spirit of that I think we are going to take a wait-and-see approach to see how much support customers want here, or if subscribeRulesetItems is sufficient and offers enough functionality and flexibility without too much agony.

@jasonwaters thank you! In one of your examples for Content Cards, you are sorting the propositions, do you think it will be useful to add sorting functionality to all types of items, or that is only applicable to the Content Cards?

if Message-Feed item was deprecated, can we remove it from the drop-down, or mark it as deprecated, or just rename to Content Cards if it was just renamed?

@ninaceban thanks for calling that out, i didn't realize message feed item was previously added.  I removed it so that content card is there but not message feed item. 🙂

@ninaceban thanks for calling that out, i didn't realize message feed item was previously added. I removed it so that content card is there but not message feed item. 🙂

Do you know if we have customers using message-feed already?
I would suggest to have a logic when initializing the view that if the settings contain message-feed schema, we show content cards and we save content cards in the settings. This way we move the existing implementations to new schema and it won't throw errors.

@ninaceban content cards hasn't been released yet. That's what this PR is for. 🤪
The message feed schema was inadvertently released alongside in app messages. But no customers are using it, since there's no implementation or use case prior to this PR.

@ninaceban content cards hasn't been released yet. That's what this PR is for. 🤪
The message feed schema was inadvertently released alongside in app messages. But no customers are using it, since there's no implementation or use case prior to this PR.

I know :) I was worried about existing implementations that are using message-feed schema, because if we remove it, when they will open the view the dropdown will throw an error.
If you think we are safe to just remove it. I'm ok with that.

@jonsnyder this needs a second 👍 to merge.


Unable to render resources with wcmmode='disabled', should this work?

Description
Unable to render resources with wcmmode='disabled', should this work?
Steps to reproduce

I think we miss the documentation about that, but in WebSight we have:

${wcmmode.isDisabled}
${wcmmode.isEdit}
${wcmmode.isPreview}

also 'org.apache.sling.engine.SlingRequestProcessor' does not seem to be available is there an alternative?

Sorry, I just misunderstood the question.
Unfortunately, for now, there is no easy way to do this. You would have to set it to resourceAttributes, by providing a proper value of pl.ds.websight.pages.foundation.WcmMode enum from pl.ds.websight:websight-pages-foundation-bundle
After the next release, it will be enabled to be set by

ok cool, meanwhile ive made a helper that gets me the resource and i output it using ${model.inheritedHtml @ context='unsafe'}.

In WebSight 1.11.0 you can force wcm mode with:
<sly data-sly-resource="${'title' @ requestAttributes = wcmmode.disabledModeAttribute}"></sly>

More details are available here.


KAFKA-10526: leader fsync deferral on write

More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@vamossagar12 this PR only contains one commit that comments out flushLeaderLog is that intentional or is the PR missing other changes?

Yeah @jsancio , this is just a draft PR that I had created to outline the approach that I intend to follow. Sorry for the confusion.

@jsancio , @hachikuji  have made the changes discussed here. This PR is ready to review so plz review whenever you get the chance.

@jsancio  could you plz take a look at this PR whenever you get the chance...

hey @jsancio / @hachikuji  could you plz review the PR whenever you get the chance?

@vamossagar12 Can you add a description to the PR? It is helpful when reviewing this PR to know what strategy you are using to manage the flush offset and log flush.

@jsancio , yeah would do that. Actually I have a question here. I didn't get a chance to look at this PR for some time and now i see things have changed which impacts my implementation strategy.
In the older versions, there used to be a direct flushLeaderLog() call from appendLeaderChangeMessage. This is the older version:
    private void appendLeaderChangeMessage(LeaderState state, long baseOffset, long currentTimeMs) {
        List<Voter> voters = convertToVoters(state.followers());
        List<Voter> grantingVoters = convertToVoters(state.grantingVoters());

        // Adding the leader to the voters as any voter always votes for itself.
        voters.add(new Voter().setVoterId(state.election().leaderId()));

        LeaderChangeMessage leaderChangeMessage = new LeaderChangeMessage()
            .setLeaderId(state.election().leaderId())
            .setVoters(voters)
            .setGrantingVoters(grantingVoters);

        MemoryRecords records = MemoryRecords.withLeaderChangeMessage(
            baseOffset,
            currentTimeMs,
            quorum.epoch(),
            leaderChangeMessage
        );

        appendAsLeader(records);
        // For a LeaderChange message, flushLeaderLogOnHwmUpdate is set to false
        // as we have to flush the log irrespective of whether the HWM moved or not.
        flushLeaderLog(state, currentTimeMs, false);
    }

I had added a parameter called flushLeaderLogOnHwmUpdate to flushLeaderLog which indicated if the flush depended upon HWM moving or not. For the case of control record it didn't so false was passed which indicates explicit flush while from mayBeAppendBatched true was passed which would ensure deferral.
In the latest version of KafkaRaftClient, I see that the explicit flush has been removed and instead LeaderState does a force drain. That ensures that there's only 1 place needed for flushLeaderLog().
Now my doubt is, I can't add the fsync deferral logic directly over there as now it can have records which need explicit fsyncing - like control records. So, how do i segregate between the 2?


Seems the code is inconsistent with the paper

First of all, thanks for such an excellent work! And then I have a doubt about your code that seems to be inconsistent with the paper.
Your code
loss_target = - torch.sum((mask_pos_view_target * log_prob).sum(1) / mask_pos_view.sum(1)) / mask_pos_view.shape[0]
But according to the formula in the paper it seems to be
loss_target = - torch.sum((mask_pos_view_target * log_prob).sum(1)) / mask_pos_view.shape[0]
That is, the target loss in the paper does not seem to be divided by (k+1), which will affect the choice of tw. Paper shows the optimal tw=0.2, so is this tw calculated according to the formula in paper or in the code?
Look forward to your answer, thank you!

Hi, thanks for pointing this out! I just double-checked the paper -- it seems that the paper misses a parenthesis for the two contrastive losses. Please follow the code for this, and the optimal tw is computed using the code.

Hi, I have a question.
Doesn't (k+1) appear in mask_pos_view.shape[0] in the code?
I think the correct code is:
loss_target = - torch.sum((mask_pos_view_target * log_prob).sum(1) / mask_pos_view.sum(1))

That's true, but you still need to divide by the batch size, which is mask_pos_view.shape[0]

Why do I have to divide by the batch size?
In main_moco_supcon_imaba.py, does not the AverageMeter of losses compute the average loss?
Also, if I have to divide by the batch size, which is mask_pos_view.shape[0], then doesn't loss_class have to be divided by mask_pos_view.shape[0] twice, because of the batch size and (k+1)?

Basically, the loss for each data point is (mask_pos_view_target * log_prob).sum(1) / mask_pos_view.sum(1). Then we sum all and divide the batch size, which is equivalent to computing the average loss: torch.sum((mask_pos_view_target * log_prob).sum(1) / mask_pos_view.sum(1)) / mask_pos_view.shape[0

I understand. Thank you for explaining in detail !


Hackernews links

Links leading back to the hackernews website, for example 'Ask HN' headlines, don't work when clicked.

Fixed in commits here and here.
Issue was because links would only be for other pages on the hacker news website itself and hence would not be full webpage links

Fixed in commits here and here.
Issue was because links would only be for other pages on the hacker news website itself and hence would not be full webpage links