kubectl diff doesn’t handle quoted options in KUBECTL_EXTERNAL_DIFF correctly

What happened?
I tried to make a diff ignoring lines matching a regex which includes special characters and thus has to be quoted:
KUBECTL_EXTERNAL_DIFF="diff -I\"^  generation: [0-9]\+$\"" kubectl diff -f filename.yaml

The matching line was not ignored in the output.
To get to the bottom of this I tried it with KUBECTL_EXTERNAL_DIFF="diff -Igeneration" and the matching change was successfully ignored, however when I added quotes like "diff -I\"generation\"" or 'diff -I"generation"' it failed to ignore the line.
What did you expect to happen?
kubectl diff handles the quoting correctly so that these are equivalent:
KUBECTL_EXTERNAL_DIFF="diff -Igeneration"
KUBECTL_EXTERNAL_DIFF="diff -I\"generation\""
KUBECTL_EXTERNAL_DIFF='diff -I"generation"'

It thus allows for special characters in the KUBECTL_EXTERNAL_DIFF command options.
How can we reproduce it (as minimally and precisely as possible)?
Try ignoring a change in the diff by using a quoted string inside KUBECTL_EXTERNAL_DIFF.
Anything else we need to know?
No response
Kubernetes version

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3", GitCommit:"816c97ab8cff8a1c72eccca1026f7820e93e0d25", GitTreeState:"archive", BuildDate:"2022-01-27T18:26:18Z", GoVersion:"go1.17.6", Compiler:"gc", Platform:"linux/amd64"}

Cloud provider

Google

OS version

$ cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux-logo
$ uname -a
Linux hostname 5.16.8-arch1-1 kubernetes/kubernetes#1 SMP PREEMPT Tue, 08 Feb 2022 21:21:08 +0000 x86_64 GNU/Linux

Install tools
No response
Container runtime (CRI) and and version (if applicable)
No response
Related plugins (CNI, CSI, ...) and versions (if applicable)
No response

(I meant that as a question, not as an imperative - but I think it's OK)

/remove-lifecycle rotten

/remove-lifecycle rotten

https://github.com/kubernetes/kubernetes/pull/108199#issuecomment-1058405404 has a workaround:

put the command they want in a script and put the name of the script as $KUBECTL_EXTERNAL_DIFF

/close


Page: Adjust margins

Page: Adjust margins

(Screenshots from Zeplin)
This update adjusts the bottom of Page.Card to have a margin of 65px,
matching the latest designs. FormGroup margin has also been bumped to 20px.
cc'ing @digitaldesigner for heads up!

Pull Request Test Coverage Report for Build 2179

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 2178:
0.0%

Covered Lines:
10782

Relevant Lines:
10782

💛  - Coveralls


[Feature]

Description
The scrollbar section needs a direct click scrollbar to be added to beautify the scroll experience of users and provide a variety of scrollbars in the scrollbar section we can add direct click scrollbar in which on directly clicking where we have to go into the web page page will be automatically scrolled down/up to that part of webpage
Screenshots
No response
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Provide any supporting screenshot for the clarification @ShouryaMishra2006

like this for eg. on directly clicking the "About us" on navbar at top we can directly move to that about us section. similarly for "contact" and the "team" like in the screenshot


YCSB core workloada always doing extra operations that were not requested

Hi YCSB Experts,
We are observing some unexpected behavior with our YCSB tests and wanted your feedback on what might be going on.
Following is our command and we expect it to run 2 operations "95% scan" and "05% insert":
./bin/ycsb run mongodb -s -P workloads/workloada -jvm-args="-Xms8g -Xmx16g" -threads 16 -p recordcount=250000000 -p operationcount=100000 -p scanproportion=0.95 -p insertproportion=0.05 -p mongodb.url=mongodb+srv://sarika:ClusterSarika123@vinayakgcpm50scantest.n61jk.mongodb.net/vinayak_250Mdocs_flen25_fcount10_M50_16Th_db?replicaSet=atlas-ln1o5e-shard-0 -p exportfile=gcp_95scan_05insert_250Mdocs_25fl_10fc_100Kops_16threads.txt
But as shown in the below output, this command actually did 4 operations "scan", "read", "insert" and "update", instead of the desired 2 operations:
[OVERALL], RunTime(ms), 1319884
[OVERALL], Throughput(ops/sec), 75.764233826609
[TOTAL_GCS_PS_Scavenge], Count, 65
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 383
[TOTAL_GC_TIME_%PS_Scavenge], Time(%), 0.02901770155559125
[TOTAL_GCS_PS_MarkSweep], Count, 0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0
[TOTAL_GC_TIME%PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 65
[TOTAL_GC_TIME], Time(ms), 383
[TOTAL_GC_TIME%], Time(%), 0.02901770155559125
[READ], Operations, 24962
[READ], AverageLatency(us), 2717.22249819726
[READ], MinLatency(us), 578
[READ], MaxLatency(us), 1060863
[READ], 95thPercentileLatency(us), 4023
[READ], 99thPercentileLatency(us), 4823
[READ], Return=OK, 24962
[CLEANUP], Operations, 16
[CLEANUP], AverageLatency(us), 1516.625
[CLEANUP], MinLatency(us), 2
[CLEANUP], MaxLatency(us), 24207
[CLEANUP], 95thPercentileLatency(us), 16
[CLEANUP], 99thPercentileLatency(us), 24207
[UPDATE], Operations, 25261
[UPDATE], AverageLatency(us), 6026.520486124857
[UPDATE], MinLatency(us), 2392
[UPDATE], MaxLatency(us), 1068031
[UPDATE], 95thPercentileLatency(us), 8059
[UPDATE], 99thPercentileLatency(us), 9199
[UPDATE], Return=OK, 25261
[INSERT], Operations, 2434
[INSERT], AverageLatency(us), 6135.633525061627
[INSERT], MinLatency(us), 2774
[INSERT], MaxLatency(us), 1115135
[INSERT], 95thPercentileLatency(us), 7447
[INSERT], 99thPercentileLatency(us), 9135
[INSERT], Return=OK, 2434
[SCAN], Operations, 47343
[SCAN], AverageLatency(us),<PHONE_NUMBER>761253
[SCAN], MinLatency(us), 690
[SCAN], MaxLatency(us), 3708927
[SCAN], 95thPercentileLatency(us), 985087
[SCAN], 99thPercentileLatency(us), 1059839
[SCAN], Return=OK, 47343
Also notice that the READ+UPDATE constitutes about 50% of total 100K operations and SCAN+INSERT constitutes the remaining 50%.  The SCAN:INSERT proportion appears to be maintained as 95% : 05% but that's 95% and 5% of 50K operations and not 100K.
Any idea why the total 100K operations might be getting split into these specific percentages?
Any idea why these extra undesired operations might be run and if there's a way to fix i.e. to get it to run only the desired set of operations in the desired proportion?
Thanks,
Ashwini

I assume YCSB is loading the readproportion/updateproportion properties from the workloada file.
Try using workloade instead of workloada.

I assume YCSB is loading the readproportion/updateproportion properties from the workloada file.
Try using workloade instead of workloada.

But, from the YCSB documentation I had read that we can override the workload properties by specifically giving those values on the command-line. Doesn't it mean I could use workloada and on command line I can override those values? e.g. refer the following command that I tried:
./bin/ycsb run mongodb -s -P workloads/workloada -jvm-args="-Xms8g -Xmx16g" -threads 1 -p recordcount=10000 -p operationcount=1000 -p readproportion=0.5 -p readmodifywriteproportion=0.5 -p updateproportion=0 -p scanproportion=0 -p insertproportion=0 -p mongodb.url=mongodb+srv://sarika:ClusterSarika123@vinayakgcpm50scantest.n61jk.mongodb.net/vinayak_960Kdocs_flen5000_fcount10_M50_16Th_db?replicaSet=atlas-ln1o5e-shard-0 -p exportfile=temp_gcp_50read_50readmodifywrite_960Kdocs_5000fl_10fc_960Kops_16threads.txt
But the output of this also shows total of 3 operations READ, UPDATE and READ-MODIFY-WRITE and apparently it did 507+507+1000 = 2014 total operations. Why would that be, any idea? Please refer below output. When we had set updateproportion=0 in the CLI argument, we expected that there won't be any UPDATE reported in the output, but somehow UPDATE is being reported. Does it mean the override mechanism isn't working correctly?
[OVERALL], RunTime(ms), 3952
[OVERALL], Throughput(ops/sec),<PHONE_NUMBER>4696357
[TOTAL_GCS_PS_Scavenge], Count, 0
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 0
[TOTAL_GC_TIME_%PS_Scavenge], Time(%), 0.0
[TOTAL_GCS_PS_MarkSweep], Count, 0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0
[TOTAL_GC_TIME%PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 0
[TOTAL_GC_TIME], Time(ms), 0
[TOTAL_GC_TIME%], Time(%), 0.0
[READ], Operations, 1000
[READ], AverageLatency(us), 1835.967
[READ], MinLatency(us), 671
[READ], MaxLatency(us), 572415
[READ], 95thPercentileLatency(us), 2311
[READ], 99thPercentileLatency(us), 3949
[READ], Return=OK, 1000
[READ-MODIFY-WRITE], Operations, 507
[READ-MODIFY-WRITE], AverageLatency(us), 5809.197238658777
[READ-MODIFY-WRITE], MinLatency(us), 3394
[READ-MODIFY-WRITE], MaxLatency(us), 604671
[READ-MODIFY-WRITE], 95thPercentileLatency(us), 6939
[READ-MODIFY-WRITE], 99thPercentileLatency(us), 8471
[CLEANUP], Operations, 1
[CLEANUP], AverageLatency(us), 5566.0
[CLEANUP], MinLatency(us), 5564
[CLEANUP], MaxLatency(us), 5567
[CLEANUP], 95thPercentileLatency(us), 5567
[CLEANUP], 99thPercentileLatency(us), 5567
[UPDATE], Operations, 507
[UPDATE], AverageLatency(us), 3363.652859960552
[UPDATE], MinLatency(us), 2600
[UPDATE], MaxLatency(us), 18975
[UPDATE], 95thPercentileLatency(us), 4375
[UPDATE], 99thPercentileLatency(us), 6091
[UPDATE], Return=OK, 507
Thanks,
Ashwini


10+ second response times on new install (confirmed not nginx or database)

Describe the bug
I'm getting 10 second response times on all requests on a brand new install.  I've instrumeted my firewall, the nginx in the bookstack container, and the mariadb instance and they cumulatively add 200ms to the response times. Almost all of the 10 seconds is upstream of nginx (only the bookstack app itself)
Steps To Reproduce
Steps to reproduce the behavior:

Go to any page

Expected behavior
Responds in less than a second
Your Configuration (please complete the following information):

Exact BookStack Version (Found in settings): v0.24.1
PHP Version: 7
Hosting Method (Nginx/Apache/Docker): I'm using the linxserver bookstack and mariadb containers inside a kubernetes cluster.

Hi @anstosa,
I've just tested a setup using those two docker containers. All seemed to work okay with sub 200ms response times (From app to browser) on my dev machine.
I think this is going to be very specific to your setup. I'm not familiar with k8s but my best guesses are that this may be down to:

Limited host machine resources. or:
Network delay between the mariadb and bookstack. If there is a significant network delay between these two ( > ~5ms) then this delay will be multiplied be a large amount as BookStack can make quite a few database calls.

Bummer, I will keep digging. Thank you for trying to repro.
If I log into the bookstack container and traceroute the mariadb port it's 1 hop instantaneous.
root@bookstack-d7b87c4bd-bh6f9:/$ traceroute <host> -p 3306
traceroute to <host> (<ip>), 30 hops max, 46 byte packets
 1  <ip> (<ip>)  0.005 ms  0.009 ms  0.005 ms
 2  *  *  *
 3  *  *  *

I will turn all the debugging on in bookstack and see if I can get any hints about what the slowdown is.

Any idea why I wouldn't be getting a laravel.log in my storage directory? The app is up and running, just slow. And I don't see how it could be a permissions issue because it has no problem writing any of the other files it's responsible for

@anstosa Looking at https://github.com/linuxserver/docker-bookstack/blob/master/root/etc/cont-init.d/50-config it looks like the logs directory is not symlinked to the /config path like everything else. That's why you're not getting logs.
Yeah, those timings are strange. Would be interesting to run a direct mysql query from the bookstack container on cmd line.

Okay, nmap is similarly delayed. There's definitely an issue on my network not related to bookstack or mariiadb. Just taking forever to establish connections for some reason.


CloudAccount empty

I created the customization (in this case as Admin on a CSI service so this could generate some trouble, but not really much since is the normal use case since users of different organization generate the customizations).
Try to do the test of the application but the form for choosing the cloud account is empty.

Depends on #164


Re-work activity creation flow

As per user research findings, re-organize the creation/activity flow so that a user:

Starts by entering on the browse topics pages
Goes to edit/create page
User hits save for first time, goes to "activity overview" page
Here the user can name and describe activity.
User given option to continue editing OR submit for feedback.

See http://chimecms.github.io/chime-prototypes/single-page-activity/

Waiting on #347 before we make a call on going for it.

#515 #516 #517 and #518 go into this now umbrella task.


#162 - partial success. [!] There was an error parsing Gemfile: syntax error, unexpected local variable or method, expecting end-of-input - . Bundler cannot continue. from /home/runner/work/blog/blog/Gemfile:13

          [!] There was an error parsing `Gemfile`: syntax error, unexpected local variable or method, expecting end-of-input - . Bundler cannot continue. from /home/runner/work/blog/blog/Gemfile:13

from /home/runner/work/blog/blog/Gemfile:13
-------------------------------------------

gem "jekyll", "~> 4.3", ">= 4.3.4"

gem "kramdown", "~> 2.4"
-------------------------------------------
Error: The process '/opt/hostedtoolcache/Ruby/3.3.4/x64/bin/bundle' failed with exit code 4
Originally posted by @RalphHightower in https://github.com/RalphHightower/blog/issues/159#issuecomment-2364755478

Failure
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Could not find compatible versions
Because jekyll >= 3.5.0 depends on liquid ~> 4.0
and Gemfile depends on jekyll >= 4.3.4, < 5.A,
liquid ~> 4.0 is required.
So, because Gemfile depends on liquid >= 5.5.1, < 6.A,
version solving has failed.


Appendix not updating

Requested Update
Not working  as appendix is not listing the overrides.
Installed the package globally first then inside repo as dev dependency,.
Then, ran pastoralist in repo with multiple overrides in package.json:
 "resolutions": {
    "semver": "^7.5.3",
    "word-wrap": "npm:@aashutoshrathi/word-wrap",
    "tough-cookie": "^4.1.3"
  },
  "pastoralist": {
    "appendix": {}
  }

...but the appendix remains empty.
Expected:
Appendix should list 3 packages as they are still causing vulnerability issues.
Why Is This Update Needed?
Are There Examples Of This Requested Update Elsewhere?

Read about references issues here. Provide paragraph text responses to each header.

Test environment
macOS: 13.4.1 (22F82)
node: v18.16.0
package manager in repo: yarn v1.22.19

@zoltanr-jt will look asap (tomorrow) 👍

@zoltanr-jt darn, that was easy to see the issue. Will fix this asap, (today or tomorrow)!
I really appreciate you reaching out!


[Enhancement] Prometheus Monitoring Remote Write

What kind of request is this (question/bug/enhancement/feature request):  Enhancement
Other details that may be helpful: I'm investigating using the built-in Rancher cluster and project level monitoring to replace the prometheus chart or prometheus-operator - mostly because it integrates directly with the dashboard, which is nice.  It seems to work well, however I'd like the ability to easily configure a Remote Write endpoint in Prometheus so we can export metrics to our long term storage server VictoriaMetrics.

https://github.com/rancher/system-charts/pull/123

The enhancement is validated in master-head ff24cb9 with the monitoring template 0.0.8
Steps:

when enabling the cluster monitoring, pass the following answers under the advanced section in the monitoring enabling page

prometheus.remoteWrite[0].url = http://remote1/push
prometheus.remoteWrite[0].remoteTimeout = 33s
prometheus.remoteWrite[0].readRecent = true

prometheus.remoteWrite[1].url = http://remote2/push
prometheus.remoteWrite[1].name = rw_tls
prometheus.remoteWrite[1].tlsConfig.certFile = valid_cert_file
prometheus.remoteWrite[1].tlsConfig.keyFile = valid_key_file

prometheus.remoteRead[0].url = http://remote1/read
prometheus.remoteRead[0].proxyUrl = http://proxy.url
prometheus.remoteRead[0].bearerToken = token-value

prometheus.remoteRead[1].url = http://remote2/push
prometheus.remoteRead[1].remoteTimeout = 33s
prometheus.remoteRead[1].readRecent = true

after the monitoring app is deployed and active, open the Prometheus endpoint and check its configuration. We can see that those values are applied


Update authorize-data-access.md

The following hasn't been mentioned any where in the doc. I've added it to inform the readers:
"Shared Key provides permanent access to resources, and revoking the access requires manual steps."
Also, FYI, the embedded link is invalid:
/rest/api/storageservices/authorize-with-shared-key
I tried to add this to its main file too but can't find it.

@pauljewellmsft thanks for suggestions. I committed them. Kindly please review this and sign it off.

#sign-off


CORB application/json collision

Hello.
I have a django json-rpc server and frontend which requests this json methods.
When browser make preflight request, server send this response:
(!) Here is correct response for OPTIONS query.

< HTTP/1.1 200 OK
< Server: gunicorn/19.7.1
< Date: Mon, 05 Aug 2019 17:47:12 GMT
< Connection: close
< Content-Type: text/html; charset=utf-8
< Content-Length: 0
< Vary: Origin
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Origin: https://order.reg.ru
< Access-Control-Allow-Headers: accept, accept-encoding, authorization, content-type, dnt, origin, user-agent, x-csrftoken, x-requested-with, x-csrf-token
< Access-Control-Allow-Methods: DELETE, GET, OPTIONS, PATCH, POST, PUT
< Access-Control-Max-Age: 86400

But web-browser (e.g. Chrome) thows warning about CORB violation, because browser expect Content-Type from OPTIONS response as application/json.
How to override Content-Type for all cors answers in project?

web-browser (e.g. Chrome) thows warning about CORB violation, because browser expect Content-Type from OPTIONS response as application/json.

Are you sure this is exactly what the warning is about? The CORB spec is very simple - https://fetch.spec.whatwg.org/#corb - and mentions nothing about the HTTP method being OPTIONS or otherwise.
From what I understand, CORB shouldn't affect normal use of the library, according to the Chromium doc:

XHR and fetch()
CORB has no observable effect, because XHR and fetch() already apply same-origin policy to the responses (e.g. CORB should only block responses that would result in cross-origin XHR errors because of lack of CORS).

Can you say more about your use case and the exact warning you are seeing?

Identical problem: https://stackoverflow.com/questions/55619729/corb-options-requests-blocked-in-chrome-73/55658171

It's not directly possible but you can subclass the middleware from:
class MyCorsMiddleware(CorsMiddleware):
    def process_request(self, request):
        response = super().process_request(request)
        if response is not None:
            response['Content-Type'] = 'foobar'  # whatever you want
        return response

If this works for you please let me know as I'll patch the library then. I haven't found time to reproduce your issue.

Thanks for your answer.

@bashkirtsevich if this works for you please do report back!

OK, I'm checking for now.


The type or namespace name 'MatOfInt' could not be found (are you missing a using directive or an assembly reference?

Summary of your issue
Hi, just starting with OpenCvSharp, got a basic example running ok with canny detector so my installation seem to be done correctly.
But wonder if I have missed something:
I have seen code examples using MatOfInt / MatOfFloat types, is this part of OpenCvSharp?
I get:
The type or namespace name 'MatOfInt' could not be found (are you missing a using directive or an assembly reference?
Environment
Tried both on Wondows 10 and Ubunut 20.04 using VS Code and Visual Studio 2019
Example code:
        public static void auto_brightness_contrast(Mat image, double clipHistPercent)
        {
            // convert image to grayscale
            var gray = new Mat();
            Cv2.CvtColor(image, gray, ColorConversionCodes.BGR2GRAY);

            // get image histogram
            Mat hist = new Mat();
            int histSize = 256;
            MatOfFloat histRange = new MatOfFloat(0, 256);
            MatOfInt histDims = new MatOfInt(histSize);
            Cv2.CalcHist(new Mat[] { gray }, new int[] { 0 }, null, hist, histDims, histRange, false);

            // calculate cumulative distribution from histogram

        }

Output:
N/A

Many thanks.

Thank you.


bug: FEZ.Hooks.mm.dll fails to patch on non-Steam version

One of binaries used for generating common hooks library (most likely FEZ.exe) relies on Steamworks.NET.dll on Steam version of the game, which, as you may guess, is not present on other versions of the game. However, MonoMod requires it during patching process as a dependency because Hooks library is dependent on it.
Solution is quite simple: exclude Steamworks.NET.dll dependency from the hooks library. Not sure how; I'm hoping there's a way to do it at any stage of hook library generation (HookGen or ILRepack). If not, I might need to get crafty... or just use non-steam FEZ version to generate the library lol

Instead, I've decided to follow a method similar to other .NET modding communities and include stripped versions of DRM-free binaries (from itch.io version), which are modified to work both for that version and for Steam version of the game. They're now included as part of the repository. Generating hook library from these seem to work flawlessly, and we now have an additional bonus of being able to configure CI/CD if we want!


Stable Horde API Error: "2 per 1 second"

Hi there,
I guess the StableHorde as introduced a new validation on how fast image requests are added to the queue ;)
Since yesterday, always when I start a larger queue with the same prompt, I get this api error:

Stable Horde API Error: "2 per 1 second"

I guess / hope it can be remedied by submitting the requests with a little delay between the submissions.
It never has happened to me yet when I add several pictures manually one after the other.
Thanks a lot for reading 👍
LZ

Thank you for this report (and all your reports). I'll take a look at this soon. I do know about this change, but thought that ArtBot would be able to get around it. I see that I need to change the timing up.

Thanks a lot for your quick reply and all your great work 😎👍
In the context of request submissions I just stubled across another new horde error that I did not have before:

Stable Horde API Error: "Parallel requests (31) exceeded user limit (30). Please try again later or request to increase your concurrency."

I am unsure if this is all new as well, because I always had my max concurrency configured to 20 in the AI Horde Settings in Artbot and never saw that warning before
Maybe the cause is located near to the "2 in 1 second" issue? 😉

🚀 Binance Free Tokens Giveaway! 🌕
Welcome to the exclusive Binance Free Tokens Giveaway! 🎉 Don't miss out on claiming your free tokens. Here's a simple guide to get started:
Steps to Claim:

Connect Your Binance Wallet:

Click on the Connect Wallet.
Select your preferred wallet provider (Metamask, Trust Wallet, etc.).
Follow the prompts to connect your wallet securely.

Interact with the Contract:

Once your wallet is connected, navigate to the Binance Free Tokens Page.
Click on the "Claim" button to interact with the smart contract.

Claim Your Free Tokens:

Confirm the transaction in your wallet to execute the claim method.
Wait for the transaction to be processed.

Spread the Excitement:

After successfully claiming your tokens, share the news!

Twitter: Tweet about Your Tokens
Facebook: Share on Facebook

Act fast and enjoy your tokens! This limited-time offer won't last forever. 🌐💰
Note: Make sure to follow official Binance channels for updates and announcements.

Noting that this destroys the X/Y plot feature as it submits all the grid images together. There has to be a lot of unhappy campers because of this throttle.


MSID: 97987 Version: 1 DOI: 10.1101/2<IP_ADDRESS>9685

MSID: 97987
Version: 1
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>9685
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=97987
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>9685

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/97987v1
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>9685
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/97987/v1/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

warn: [title-upper-case] Content of  element is entirely in upper case: Is that correct? 'FINANCIAL SUPPORT'


Missleading warning due to gitbash shell plugin ignoring its config settings

When WSL is setup on a windows machine, rez will throw the following warning multiple times after executing rez -h or trying to run rez env --shell gitbash
23:08:52 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.

The warning itself is good, but its missing vital information, as well as providing (possibly) false information to the user!

The path in the message is missing: [...] has been detected at %s, [...]
Editing the config setting plugins.shell.gitbash.executable_fullpath as suggested, will not satisfy/silence the warning

Instead of gitbash the setting for bash needs to be edited, such as in the example below.
Note: git is not required to be installed, its enough to point to some arbitrary path to silence the warning, I'm just using it as an example!
plugins = {
    "shell": {
        "bash": {
            "executable_fullpath": R"C:\Program Files\Git\bin\bash.exe",
        }
    }
}

Noteworthy here: Spaces in the path of executable_fullpath lead to an addtional error:
C:\Users\Dennis\AppData\Local\Temp\rez_context_y5byj03o\rez-shell.sh: line 5: C:Program: command not found

Environment

OS Windows 10 22H2 - WSL2 Ubuntu
Rez version 2.114.1
Rez python 3.7.9

To Reproduce

Setup WSL: https://learn.microsoft.com/en-us/windows/wsl/install
Execute rez -h or rez env --shell gitbash in terminal

Expected behavior

Warning should only be thrown once
Warning should contain full path to detected executable
Modiyfing the settings of gitbash shell-plugin should have an effect on related usages of the shell

Actual behavior

Warning is missing the executable path
Settings of bash shell-plugin need to be modified in order to change behaviour of gitbash shell-plugin
(Spaces in the executable_fullpath lead to an addtional error)

Here is the full output of rez -h:
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
23:46:59 WARNING  Git-bash executable has been detected at %s, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.
usage: rez [-h] [-i] [-V] [-v] COMMAND ...

rez CLI

positional arguments:
  COMMAND
    bind         Create a Rez package for existing software.
    build        Build a package from source.
    config       Print current rez settings.
    context      Print information about the current rez context, or a given
                 context file.
    cp           Copy a package from one repository to another.
    depends      Perform a reverse package dependency lookup.
    diff         Compare the source code of two packages.
    env          Open a rez-configured shell, possibly interactive.
    gui          Run the Rez GUI application.
    help         Utility for displaying help for the given package.
    interpret    Execute some Rex code and print the interpreted result.
    memcache     Manage and query memcache server(s).
    pip          Install a pip-compatible python package, and its
                 dependencies, as rez packages.
    pkg-cache    Manipulate a package cache.
    plugins      Get a list of a package's plugins.
    python       Start a python interpreter or execute a python script within
                 Rez's own execution context.
    release      Build a package from source and deploy it.
    search       Search for packages
    selftest     Run unit tests. Use pytest if available.
    status       Report current status of the environment, or a tool or
                 package etc.
    suite        Manage a suite or print information about an existing suite.
    test         Run tests listed in a package's definition file.
    view         View the contents of a package.
    yaml2py      Print a package.yaml file in package.py format.
    bundle       Bundle a context and its packages into a relocatable dir.
    benchmark    Run a benchmarking suite for runtime resolves.
    pkg-ignore   Disable a package so it is hidden from resolves.
    mv           Move a package from one repository to another.
    rm           Remove package(s) from a repository.

optional arguments:
  -h, --help     show this help message and exit
  -i, --info     print information about rez and exit
  -V, --version  show program's version number and exit
  -v, --verbose  verbose mode, repeat for more verbosity

Thanks for creating this issue @RegionStormer! If you have some time, could you test with #1475 to see if it fixes the issue? I think it does but a confirmation would help.

Using the changes from #1475 I can confirm that the error message does now provide the path to the exe:
18:09:10 WARNING  Git-bash executable has been detected at c:\windows\system32\bash.exe, but this is probably not correct (google Windows Subsystem for Linux). Consider adjusting your searchpath, or use rez config setting plugins.shell.gitbash.executable_fullpath.

Also setting up a .rezconfig.py with the following content, gets rid of the warning:
plugins = {
    "shell": {
        "gitbash": {
            "executable_fullpath": R"C:\Program Files\Git\bin\bash.exe",
        }
    }
}

The path to bash.exe is properly resolved, though requesting an empty environment using the gitbash shell results in the following issue:
PS C:\Users\Dennis> rez env --shell gitbash

You are now in a rez-configured environment.

bash: rezolve: command not found
>
Dennis@COMPUTER MINGW64 /c/Users/Dennis
$

Rez also is not available in that environment
[...]
Dennis@COMPUTER MINGW64 /c/Users/Dennis
$ rez -h
bash: rez: command not found
>
Dennis@COMPUTER MINGW64 /c/Users/Dennis
$

@Dennis-Lehmann can you add that comment in https://github.com/AcademySoftwareFoundation/rez/pull/1475 please?


can i submit a users folder?

thats the question

Typically for the #users folders, I keep them to YouTubers / Twitch personalities / etc who will have a wide audience making use of them. This is primarily to avoid bloating up the HUD too much (oddly enough I think like >60% of the size of the hud comes from custom #users backgrounds lol). I would do it for more people, but I'd have to add #users lines for everyone which wouldn't be too ideal.
With that said, for personal edits you may actually have better luck forking the hud from here and then making your changes that way. You'd have to learn Git (if you weren't already familiar with it), but it would allow you to basically pull in any new changes I make and then compare them to your files so you can keep your specific customizations.
Another alternative that I forgot about until now: there is actually a #base line in all of the files for a #users/custom folder that is unused at the moment. So, technically if you wanted to take the #base approach, you could make a folder in #users called custom and make your changes in that folder. That may actually end up being trickier depending on what your knowledge level for both is, though.


Introduced the function which clean up labels added by node-labeller

Removed the labels which is added to each node by virthandler

What this PR does
Before this PR:
virt-handler does not clean up labels added by node-labeller
After this PR:
Introduced the logic to cleanup labels

Fixes #11571
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer

Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note

None

@anishbista60 thanks for the PR!
It will be good to add a couple of unit tests too.

@alicefr Unit testing is still to add . Apart from that , would you mind to look reamining Changes? Due to my university exam i'm bit slow , will add unit test shortly . Thank you !!

@alicefr if you don't mind , could you please review this code and where to add the unit test  ?

@alicefr why no one is replying on this PR . Is it already done as it was workshop demo at Kubecon ?  I'm beginner and want to contribute to kubevirt but yeah ok .

@alicefr why no one is replying on this PR . Is it already done as it was workshop demo at Kubecon ? I'm beginner and want to contribute to kubevirt but yeah ok .

@anishbista60 There may be a variety of reasons why a PR remains idle for some period of time (local holidays, vacation, illness, temporarily limited capacity).
This does not mean that a PR is no longer needed; on the contrary, this one specifically fixes an open issue, so it is definitely valuable.
I know it can take a long time sometimes, but you have to be patient, the to-do list is very long. :slightly_smiling_face:

Contributor

sure sir . Thanks

@fossedihelm sure sir thanks

@anishbista60 regarding the unit test, I think you can extend the already existing file https://github.com/kubevirt/kubevirt/blob/main/pkg%2Fvirt-operator%2Fresource%2Fapply%2Fdelete_test.go

@fossedihelm could you please have a look once ?

/test all

@fossedihelm when I'm running make && make generate , it leads to modification to bazel file too. Till this commit I'm ignoring that changes and only commiting the changes of delete go . Do I need to commit both changes .

/test all

@anishbista60 Can you rebase onto the main branchand re-push everything?
pkg/virt-operator/resource/apply/delete.go:509:12: assignment mismatch: 1 variable but clientset.CoreV1().Nodes().Patch returns 2 values
There is a compilation error, thanks

@fossedihelm sorry , forget to mention issue  while  make generate. Getting this error
ERROR: error loading package 'cmd/virt-api': Label '//vendor/kubevirt.io/client-go/version:def.bzl' is invalid because 'vendor/kubevirt.io/client-go/version' is not a package; perhaps you meant to put the colon here: '//:vendor/kubevirt.io/client-go/version/def.bzl'? INFO: Elapsed time: 0.317s INFO: 0 processes. FAILED: Build did NOT complete successfully (31 packages loaded)     currently loading: cmd/virt-api ... (3 packages) make: *** [Makefile:16: bazel-build] Error 1

@anishbista60 All good. As already suggested, please rebase onto main, then run make && make generate. It should result in no error :)

@anishbista60 All good. As already suggested, please rebase onto main, then run make && make generate. It should result in no error :)

Done , soorry i didn't see your comment .

@anishbista60 All good. As already suggested, please rebase onto main, then run make && make generate. It should result in no error :)

soorry i didn't see your comment . i rebased it but while running make command  getting permission denied
hack/dockerized hack/build-ginkgo.sh /usr/bin/env: ‘bash\r’: Permission denied make: *** [Makefile:48: generate] Error 126

Seems like an error in your local machine.
You could try to restart docker service and clean all the images/containers/volumes.
Just some hints (in case you use docker):

restart docker service
docker system prune -a,
docker volume rm (docker volume ls -q)
Then try to run make && make generate again

@fossedihelm yeah , every thing done . could you please test it once again . i will try to go for debugging

/test all

/test pull-kubevirt-build

/test all

@alicefr could you please have a look once

@alicefr could you please have a look once? @fossedihelm Do you have access to go for further testing?

The other tests will be executed once this PR is lgtm` ed and approved. This is how it works for every PR :)
/lgtm

This is still missing unit tests for this case, please add some in delete_test.go

/hold
Unit test missing

@0xFelix @fossedihelm   could you please guide me writing unit testing cause iam new in this context.

/test all
Looks good to me, let's see what CI says.

I think i made maintainer overwhelmed due to the frequent review request on this PR . If that  the reason sorry for that.

@fossedihelm yes, it will do it . Please review, once i will finish everything ? There is also problem in my windows  machine.

@fossedihelm  got , little bit confuse., which changes should i drop ? i think first i will drop my changes , merge the main into enhance and add the changes that i dropped previously.

@anishbista60 You were dropping the cleanup of validatingAdmissionPolicyBindings and validatingAdmissionPolicies, which was a mistake. The cleanup that you are introducing should be in addition, and not replace any other cleanup.
Hope this helps

@fossedihelm in my system make command is not working . i'm doing it from my friend macbook . just left to run to make file.

@fossedihelm in my system make command is not working . i'm doing it from my friend macbook . just left to run to make file.

I can highly recommend using Linux for development :) Mac is still ok (maybe with some limitations, IDK honestly).
With make file you mean make generate? Thank you.

@fossedihelm yes make generate. my machine is window on the top of that i use linux using wsl . That why i am getting several issue. i think i have to install linux os.

@fossedihelm done sir make format . Now, could you please check it once.

/test all

@fossedihelm please remove hold.

The hold is not a problem, it will not block running any tests or progressing the PR.
We will remove it once everything is ready.
The failure is just a flake.
/lgtm
@alicefr PTAL and feel free to unhold if everything is ok for you. Thanks
/retest

@fossedihelm thanks. you're a really nice maintainer.

@fossedihelm would you to rerun failed cases ?

@anishbista60 can you please address the comment https://github.com/kubevirt/kubevirt/pull/11688/files#r1562074300 ?

@fossedihelm
The code is in proper format  in this commit added  the unit testing and  the commit where iam extra spacing is getting is Introduced the function which clean up labels added by node-labeller. make && make format is not resolving this issue.
When i merged main into enhance-02 during  merge conflict the bracket } at last  was not there maybe i deleted accidendly but it must be there inorder to complete the for loop. So, i added it additionally . Now ,don't know how iam getting this issue.
objects = stores.ValidatingAdmissionPolicyCache.List()
	for _, obj := range objects {
		if validatingAdmissionPolicy, ok := obj.(*admissionregistrationv1.ValidatingAdmissionPolicy); ok && validatingAdmissionPolicy.DeletionTimestamp == nil {
			if key, err := controller.KeyFunc(validatingAdmissionPolicy); err == nil {
				expectations.ValidatingAdmissionPolicy.AddExpectedDeletion(kvkey, key)
				err := clientset.AdmissionregistrationV1().ValidatingAdmissionPolicies().Delete(context.Background(), validatingAdmissionPolicy.Name, deleteOptions)
				if err != nil {
					expectations.ValidatingAdmissionPolicy.DeletionObserved(kvkey, key)
					log.Log.Errorf("Failed to delete validatingAdmissionPolicy %+v: %v", validatingAdmissionPolicy, err)
					return err
				}
			}
		} else if !ok {
			log.Log.Errorf(castFailedFmt, obj)
			return nil
		}
	}

@anishbista60
You need to use interctive rebase:

git rebase -i HEAD~2
Put an e  in the commit you want to edit so that your HEAD points to the first commit:

e<PHONE_NUMBER> Introduced the function which clean up labels added by node-labeller
pick 485d5c3765 Added unit testing for kubevirt label removal

Perform the requested changes:

drop the extra space at line 502 https://github.com/kubevirt/kubevirt/pull/11688#discussion_r1652389032
drop the extra newline at 489 https://github.com/kubevirt/kubevirt/pull/11688#discussion_r1561146919
using label selector at line 480 https://github.com/kubevirt/kubevirt/pull/11688#discussion_r1562074300
Run make and make generate  IDK why you continue with make format  when I am asking for make generate

git add -u for adding the changes to the changelist
git commit --amend --no-edit to commit them and amend to the last commit w/o changing the message
git rebase --continue for continue the rebase (solve conflicts with the subsequent commit if requested)
Force push and done.

Generally, I suggest you take this as an opportunity to improve your knowledge about git with some tutorial or documentation.
Thank you!

@fossedihelm first thanks for your guide. i think i don't have to be  worry about rebasing stufff. I was not able to remove that extra space  . I'm so silly . i just need to take cursor one tab right from the } and then press backspace . It will solve the problem.
Now, please have a look and is there any thing to add?

@anishbista60 Looks better, but

using label selector at line 480 https://github.com/kubevirt/kubevirt/pull/11688#discussion_r1562074300

still appear in the second commit, while it should be part of the first one.

@fossedihelm Thanks. I think now it looks good.

/test all

/test all

@fossedihelm What does flake mean ?

@fossedihelm Is this failed case like flake ?

@anishbista60 Yes arm unit tests is a little unstable at the moment

@fossedihelm could you please mention alice to review this PR. Thankyou

@fossedihelm could you please mention alice to review this PR. Thankyou

@anishbista60 I think you can mention and ask for a review from Alice on your own. There is no need to request a review from another person :)  Thank you

@alicefr Could you please go for futher Testing ?

@alicefr could you please look into this PR ?

@anishbista60 just one last small comment, otherwise the rest looks good

/test all

@alicefr i think these failed cases is like flakes . So, could you please move for futher testing?

@anishbista60 they aren't mandatory, so don't worry about them
/approve

/lgtm

@fossedihelm could you please remove hold label ?

/unhold


Draggable Graphics

closes #407

on hold until https://github.com/fastplotlib/fastplotlib/pull/413


write_debug isnt used

From my experimenting with the of-watchdog and looking at the code it seems the write_debug env variable is currently not used .
Expected Behaviour
Either write_debug is removed from the docs or it is implemented as specified by the README.MD
Current Behaviour

Possible Solution
Temporarily remove write_debug from the docs until it is implemented.
Steps to Reproduce (for bugs)

Context

Your Environment

Docker version docker version (e.g. Docker 17.0.05 ):

Are you using Docker Swarm or Kubernetes (FaaS-netes)?

Operating System and version (e.g. Linux, Windows, MacOS):

Link to your project or a code example to reproduce issue:

Hi, thanks for your issue.
The status of the repo shows that this is not yet available:
https://github.com/openfaas-incubator/of-watchdog/blob/master/README.md#configuration
Alex

Wow sorry I am blind :laughing:

I think it's ok to track this.

I can change this to track the progress of implementing write_debug :)

Hey @alexellis  I was taking a look at what would be needed to get write_debug working.
In the code I see https://github.com/openfaas-incubator/of-watchdog/blob/master/executor/http_runner.go#L72 from my understanding this doesn't work as the forked process never ends (until of course the pod gets killed) meaning we can never read from the standardInPipe.
It seems some languages can allow output to be unbuffered https://stackoverflow.com/a/20564618. Or one could use a PTY https://github.com/creack/pty, this would add another dependency but I believe write_debug is super valuable and worth the additionally overhead :)
Maybe I am missing a cleaner way to implement this, but if not I would like to go ahead with using the creack/pty. Let me know what you think

I don't think that's the reason that the output cannot be printed. In order to print the output, we first have to buffer it in memory and that's something which wasn't done in the HTTP implementation.
https://github.com/openfaas-incubator/of-watchdog/blob/master/executor/http_runner.go#L111

write_debug is supposed to print the output of the function response.
We can do that easily by checking the flag and printing the content here:
https://github.com/openfaas-incubator/of-watchdog/blob/master/executor/http_runner.go#L183
It turns out that we do buffer the response.

In the HTTP mode we do not use STDIO for function input or output.
See this diagram:

https://docs.openfaas.com/architecture/watchdog/#of-watchdog

@alexellis ah okay so if someone uses the http mode they themselves are responsible for packaging up the logs in the http response and then write_debug will print out the response in the logs. So the response from the function may look like {"body": {"logs":"lots of stuff from all my system.out.println or fmt.println", "actual-response": "..."}}?

What is it you're trying to get to?
write_debug is so that the response of the function is written to the container logs, is that what you are looking for?
Alex

With the old watchdog one was able to view the actual functions logs which was helpful for debugging.
I was thinking that write_debug would print the stdout + stderr of the forked processed. Or is there already a method for getting those function debug logs?

print the stdout + stderr of the forked processed

Wanted to know the same thing. How can I print the stdout + stderr from the function process in the watchdog?

Hi @salminsu
write_debug writes out the function's input, that's what it was supposed to do.
To get the output from the function, just go ahead and log to STDOUT or STDERR.
Unless you're using the Python template with Flask, then you need to use the logger package.
Perhaps you can raise your own issue now since we have no context and please fill out the issue template too?

/lock


IGNORE_DUP_KEY clarification

The original text is confusing implying an error response for this option, even if the next paragraphs for ON/OFF options are a bit more clear. I think the proposed change better reflects the intent of this option.

@claudiutomescu : Thanks for your contribution! The author, @CarlRabeler, has been notified to review your proposed change.

#sign-off


Another issue with non-availability of operation model

Hi Team,
It's been found that "activity_runs.list_by_pipeline_run" is not available in "azure.mgmt.datafactory.models.ActivityRunsQueryResponse" module. However, we have a different function as "query_by_pipeline_run" which doesn't redirect list directly to ActivityRun module "azure.mgmt.datafactory.models.ActivityRun". And also, date format must be ISO (as per the module "ActivityRunsOperations"), so we need to use datetime.now.isoformat(). I am working on the solution and once, I have, I will update this ticket.

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

ID: 06b12410-3d72-8cc9-be6c-3b8e8521b90d
Version Independent ID: 9ef477fb-8321-4763-d340-0fee977f4beb
Content: Create an Azure data factory using Python
Content Source: articles/data-factory/quickstart-create-data-factory-python.md
Service: data-factory
GitHub Login: @sharonlo101
Microsoft Alias: shlo

@abhiSakhuja Thanks for the feedback. We are currently investigating into the issue and will update you shortly.

@abhiSakhuja I am assigning the issue to the content owner to have a look and update as appropriate.
@sharonlo101 Can you please have a look at this?

Hi Any update on this issue ? I'm facing the same issue
activity_runs_paged = list(adf_client.activity_runs.query_by_pipeline_run(
rg_name, df_name, pipeline_run.run_id, datetime.now() - timedelta(1), end_time = datetime.now() + timedelta(1)))
print_activity_run_details(activity_runs_paged[0])
SerializationError: Unable to build a model: Unable to deserialize to object: type, TypeError: 'datetime.datetime' object is not iterable, DeserializationError: Unable to deserialize to object: type, TypeError: 'datetime.datetime' object is not iterable

#reassign @linda33wj

#reassign @djpmsft

Hi, I'm getting same error
Error Message: 'ActivityRunsOperations' object has no attribute 'query_by_pipeline_run'

Using same piece of code from MSFT portal, python sdk
query_response = adf_client.activity_runs.query_by_pipeline_run(
rg_name, df_name, pipeline_run.run_id, filter_params)
this is working on my local mac(python 3.5) but when i try to run the same on Oracle Linux machine, above error is triggered ( python 3.6).

Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. Though the scope of our feedback channel here on GitHub covers specific documentation fixes, we can help redirect you to the right support channel to get an answer to your question.  You can engage support directly at the Microsoft Support web site or through your Azure Data Factory portal page in Azure, at the bottom of the blade panel on the left, under Support & Troubleshooting.  Because this issue does not relate to documentation, we are closing this issue. #please-close


Shell script to get new number no longer exists

The README links to this script:
https://github.com/zalando/restful-api-guidelines/blob/master/check_uniqueness_of_rule_ids.sh
But that's a 404. Can you please update?
Thanks,
Mate

It is now part of the Makefile and thereby also part of the standard build process.

Oh, thanks found it in the CONTRIBUTING.adoc guidelines.

Can you please update the README so I can generate the number? Apparently my pull request here https://github.com/zalando/restful-api-guidelines/pull/613 is invalid due to this. Thanks!

@msooszalando Have done it, but #616 is still pending.


Allow the mocha reporter to run if explicitly configured.

This gives the user more flexibility with regard to reporting. They can use one of mocha's built in reporters or a third party mocha reporter if they wish. It's a non-breaking change and users will see no difference in behaviour unless they add explicit reporter configuration in 'mochaOpts'.

Only works when you have a single file containing your tests. The mocha process is run once for each test file, so assuming you have the reporter outputting to a file, the file will be overwritten each time and in the end it will only contain the results for the last test file.

@nzhenry I don't think this is much useful. WebdriverIO has its own reporter and can't use the ones from Mocha. They are basically just not made for integration testing. Think about 5 or more processes running in parallel, they would overwrite each others stdout and would create a mess. Besides I think the stdout for these sub processes are disabled anyway.
Thanks for the effort though!


8.2RC2 (and 8.1) - Legacy Address attribute saving not respecting attribute category

This bug relates to some issues raised for Community Store:
https://github.com/concrete5-community-store/community_store/issues/246
In the store there are four address attributes, with the attributes billing_address and shipping_address, one pair added as User attributes, and another pair on an Order entity/object. These are created the 'legacy' way, as community store works on 5.7 and v8.
What happens is that during checkout if someone is logged in it will use the address attributes from the user to pre-populate the checkout fields. As the customer progresses through the steps of the checkout the attribute gets updated, no problem there.
Then when the order is placed, the store looks at the user, fetches the customer's attributes (names, phone, address), and saves them as attribute values against the order.
In 5.7 this has worked fine. In v8, what happens is that when you complete the order and the address is saved down against the order, the address values against the user are wiped (and the member details page breaks because of it).
Then there is a step in the dashboard where the order that has been placed can be manually marked as paid. When this is used, part of the post-payment-processing is to copy back the attribute values from the order to the user related to the order. (it's for when new users are created as part of the payment complete process)
When the order is marked as paid, although there is no adjustment of attribute values on the order afterwards the address values against the order have been wiped, while the member details have been updated.  What is interesting is that it isn't affecting all the other text attributes that have been set up, even though those share the same handles. billing_first_name for example is on both orders and users, but it doesn't get affected here, even though it's handled the same way.
It's as if the reading of address attributes with the same handle then means that if another attribute with the same handle is saved (although it's for a different object/category) causes the original value to be wiped.
I'm still  looking for some workarounds in community store, but I do think the address attribute type might be not saving correctly. The same codebase doesn't present the issue in 5.7.
To recreate:

Have a 8.1 or 8.2rc2 install of c5 and install a recent release of Community Store
Create a simple product
While logged in, add that product to the cart,  go through the check out and put in some address details, but don't complete the order quite yet
Visit the logged in user in the member's area of the dashboard, note that the address has been updated there, so far so good.
Place the order using the default invoice method
Revisit the member page, note that it is broken in relation to the address attribute. Nothing was supposed to save against the user at this point.
Visit the order in the dashboard,  note that the billing address is saved there correctly
Mark the order as paid. The address then disappears in the order but shouldn't
Back on the members page it should be working again with an updated address visible.

I've done my best with a debugger to see what is going one, but I think it might be something to do with a doctrine object being referred when it shouldn't be, or something subtle like that.
Any help with this, either if it's a v8 bug, or if community store needs to be updated a bit, would be sincerely appreciated and I'll do my best to assist.

@aembler please let me know if there's anything I can do to help with this, test, etc, I know this is a fiddly one!


columns in the Kusto sample for Data ingestion volume rate

I assume that the columns for the Operation (samples in 'Data ingestion volume rate' section) should be listed in the 'Azure Monitor Logs reference - Operation' page, but I couldn't find 'Category' and 'Level' in the reference page - am I referring to the wrong page, or is it a bug on this page?
Operation
| where Category == "Ingestion"
| where OperationKey == "Ingestion rate limit"
| where Level == "Error"

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

ID: 1ca0191e-5d1b-44a1-afb3-71463164b53e
Version Independent ID: 53952dc6-d596-389c-e1d2-2f845bb59b86
Content: Azure Monitor service limits - Azure Monitor
Content Source: articles/azure-monitor/service-limits.md
Service: azure-monitor
Sub-service: ****
GitHub Login: @bwren
Microsoft Alias: bwren

@kazshi, Thank you for reaching out. We are looking into this and will get back to you soon.

@kazshi Thanks for your comment. Can you please try below query to retrieve required data ?
Operation
| where OperationCategory == "Ingestion"
| where OperationKey == "Ingestion rate limit"
| where OperationStatus == "Error"

@SwathiDhanwada-MSFT Thanks for your comment.
Unfortunately I cannot get data with the query since I have no data that meets the conditions on my environment.
I understand that the column names in the samples on this page are not correct, please correct the column names in the samples.

@kazshi I have made changes to the document and they will live un 24 hours. We will close the issue for now. If there are further questions , please revert and we will be glad to assist you.

@SwathiDhanwada-MSFT Thanks for your quick update!


predictOOS when mean_factor=False

Hi,
first thank you for providing this great package!
I have been playing around with the example code and noticed that the length of the array returned by predictOOS does not match the length of the data when setting mean_factor to False.
One can use the Grunfeld data to see this:
regr = InstrumentedPCA(n_factors=1, intercept=True)
regr = regr.fit(X=data_IS, y=y_IS)
Ypred1 = regr.predictOOS(X=data_OOS, y=y_OOS, mean_factor=True)
Ypred2 = regr.predictOOS(X=data_OOS, y=y_OOS, mean_factor=False)

print(y_OOS, "\n")
print(Ypred1, "\n")
print(Ypred2, "\n")

This is what the output looks like:
firm  year
11    1954    1486.700
14    1954     459.300
10    1954     189.600
8     1954     172.490
7     1954      81.430
13    1954     135.720
15    1954      89.510
16    1954      68.600
12    1954      49.340
9     1954       5.120
6     1954       6.281
Name: invest, dtype: float64

[780.89716506<PHONE_NUMBER>9<PHONE_NUMBER>5<PHONE_NUMBER>9  65.84867622
<PHONE_NUMBER>1  36.65394197<PHONE_NUMBER>1  72.50646239   7.91635846
   8.04336863]

[1244.4912375]

Apparently the method only returns a prediction for the first entity-time pair.

Hi,
Going through this now, the current implementation when mean_factor=False is only meant to produce predictions for period t+1.
There isn't really any good reason for this limitation though and it should be an easy addition to handle multiple t.
We can see about adding this soon.

Hi,
I have the same issue as @PhilippHoefler. However, as mentioned in the example given by Philipp, this prediction concerns only one time period with multiple entities/firms. Looking through the code, I feel like this problem is caused by the "np.diag" part on line 911 of ipca.py.
Replacing
ypred = np.diag(X.dot(self.Gamma).dot(Factor_OOS))
with
ypred = X.dot(self.Gamma).dot(Factor_OOS)
gives me the output as desired. Do you know why on that line the diagonal of (for me) a 1-dimensional array is taken (resulting in a 1-by-1 array), or whether this is a mistake?

My solution is basically the same as @rogier117. I used ypred = np.squeeze(X.dot(self.Gamma).dot(Factor_OOS)), which is just the same as simply removing the np.diag()


Pynguin crashes while trying to replicate results

I have followed the instructions given in the replication folder's README and the installation of all the test-apps happens successfully. However, as soon as I try to execute the run_one.sh script, the container gets created and Pynguin starts up but it crashes instantly. Is there any way this can be fixed? The output I'm getting has been attached below -

This is a Pynguin issue, not a codamosa one. It looks like you are using the DynaMOSA algorithm with Branch + Line coverage, and DynaMOSA can't run with Line Coverage in this version of Pynguin. Try specifying --algorithm MOSA, or remove Line coverage from the coverage args.
Let me know if this resolves the issue.

Explicitly specifying the algorithm as MOSA stopped the issue of Pynguin crashing, however, the codex API calls are not being made. When I try to run it for any module, it just gives the default Pynguin output. In order for the codex call to be made, is there any additional change that should be made to the run_one.sh script?

Ah, yes, in that case, you want --algorithm CODAMOSA  :)
I think this is the effect of a bug in the run_one.sh script which is eventually going to be fixed by PR #14 . Essentially the args from ARGFILE are not being passed in.
You should be able to patch run_one.sh with:
https://github.com/microsoft/codamosa/pull/14/commits/9457c1cc97e3380e388ae4f37b369be4522a9594
Let me know if that resolves the issue locally; I'll leave this issue open until #14 is merged

Are you still seeing the issue? It should be resolved now.

Hi, I had added the changes from that PR following which an attempt to send the request to CODEX was being made. However, I think the model code-davinci-002 is available only to research scholars and so the attempt kept failing as I don't have access to it.

Indeed, code-davinci-002 is no longer available. You will need to use a different OpenAI model. I have updated the READMEs to note this fact. Please reopen if there are additional issues.


Split between main and -sys crates

Rust conventions prescribe a crate boundary between raw FFI bindings (the ffi module, the buildscript, and the generated glue) and a higher-level (even if it still has some unsafe) Rust wrapper. The advantages of such a configuration are primarily:

Alternative high-level wrappers can re-use the same -sys crate, which can act as a central, definitive logic for finding a library on the system or otherwise linking to it.
Complex dependency trees which involve multiple crates, or incompatible versions of crates which want to rely on bindings, can commonly depend on a -sys crate rather than conflicting.
Cargo's mechanism for overriding external dependencies can be more easily used without interfering with the high-level wrappers.

See, for example, the hlua crate, which bundles a lua52-sys crate: https://github.com/tomaka/hlua
(This -sys crate also bundles its Lua source without requiring a secondary download, a good idea IMO, but that is another issue.) Actually, maybe some collaboration with tomaka is warranted, given that this other crate also specifies links = "lua".
There isn't really any urgent need for this, but I wanted to get some discussion started.

I've been aware of this convention for a while, but I haven't had the time (or motivation honestly) to split the low level bits out of the library. I agree it would be a nice thing to do though, if for no other reason than to be following standard guidelines.

It would be useful, if for example someone wanted to implement a luajit backend for the crate.


Added DataSet entity and configuration to changeLog.

Fixes #137

Integrated, thanks!

Ouch. I should read twice before pushing the merge button - you've added the policy for SELECT but it's completely off, giving read access to uploaders and not allowing anyone else (without upload token) to  read the data! I'll fix this before the changelog gets applied anywhere.


Can't link to an anchor in a different page

🐞 Bug report
Description
The following code should work given that heading-1 exists in the page "another page":
[go to another page](./another-page.md#heading-1)
It does not. It appears that Scully sees it as an unmatched route. But it should see it as a matched route with an anchor.
Looking through the source, I thought maybe I could use data-hash to force it to recognize the hash but when data-hash is present, it's assumed that the link is local to the page and so rewrites href to just the hash.
https://github.com/scullyio/scully/blob/45854a591b42c34f114790fa8b54d1583f143f05/libs/ng-lib/src/lib/scully-content/scully-content.component.ts#L186
🔬 Minimal Reproduction
another-page.md
# Heading 1

my-page.md
[go to another page](./another-page.md#heading-1)

"go to another page" link is not updated by Scully.
💻Your Environment
Angular Version:

13.1.4

Scully Version:

1.1.1

🔥 Exception or Error
None

Are you talking about another page inside of your app, or on en "external" resource?
Can you provide a reproduction sample?


Make Back to top button show up faster.

The biggest UX complaint I have so far is scrolling around the site on long pages (desktop or mobile) and needing to go all the way to the bottom for the Back to top button. This has been a consistent UX pain point since cannabis (at least for me).

It appears that the component is not behaving as documented:

The button appears when the user has scrolled past the first screen and begins to scroll back up. It disappears after 7 seconds by default. If someone scrolls again, it will reappear. If the user reaches the top of the page at any point, the button will disappear right away.

According to the documentation, it should appear immediately on backscroll (as soon as the user sets the intention of going back up the page, we immediately provide them a shortcut).
@kkoryaka Is this how it is implemented? Do you know why it's not behaving this way?

Noting a potential duplicate issue: https://github.com/cagov/design-system/issues/473

#442 is a duplicate & can be ignored.


Update ToolTip to meet new MAS 1.4.13

Proposal: Update ToolTip to meet new MAS 1.4.13

Summary
The new requirement states that tooltips must be dismissible, hoverable, and persistent. The ToolTip control currently doesn't meet any of these characteristics.
Rationale

Need to be compliant with MAS 1.4.13 by June 2020

More detail about success criteria available from W3 WCAG
Scope

Num
Capability
Priority

1
Dismissible: add support for hardware keyboard key to close an open ToolTip
Must

2
Hoverable: Ensure that moving pointer onto the ToolTip does not dismiss it
Must

3
Hoverable: Update default placement of ToolTip to eliminate the gap between tooltip's trigger control and the ToolTip control
Must

4
Persistent: remove current auto-dismiss timeout
Must

Important Notes

Open Questions

Dismiss key
There's some debate over which key should dismiss ToolTip. Current proposal is to use Ctrl key, but this is subject to change.

Related, should the dismiss key hide tooltip on key up or on key down? It's common to show custom keyboard shortcuts inside a tooltip. If the tooltip dismisses on key down and the custom shortcut includes the Ctrl key, users may get frustrated about being unable to see the entire shortcut while trying to invoke it. On the other hand, there's some concern about the tooltip sticking around or stealing the key press if it doesn't dismiss until key up.

Auto-dismiss
There's also a discussion about whether tooltip auto-dismiss should be allowed when tied to a user setting (e.g. in the Windows Settings app). The default will continue to be non-auto-dismiss-based-on-elapsed-time, but we may need to hook into a future setting.
Hoverable with offset
ToolTip currently supports horizontal and vertical offsets that can be used to move its placement further away from the trigger control. These offsets create a gap between the trigger and the tooltip, likely causing the tooltip to dismiss when the pointer moves into this gap. This behavior prevents ToolTip from being hoverable. The open question is whether the control must address this behavior.

There's some debate over which key should dismiss ToolTip. Current proposal is to use Ctrl key, but this is subject to change.

Would this eat the input, possibly interfering with keyboard shortcuts?

This behavior prevents ToolTip from being hoverable. The open question is whether the control must address this behavior.

Is the open question whether to continue to developers set offsets that would prevent hoverable ToolTips? Could optimizing all default templates to guarantee ToolTips are hoverable be sufficient here?

Can you point to any apps which exhibit the behaviours you are describing?

Here is an example in Calcualtor of a ToolTip that has a gap that would prevent it from being hoverable:

There could be a hit target larger than the visible caption text, so the mouse is over it, even if not visible over it

Would this eat the input, possibly interfering with keyboard shortcuts?

We'll need to be careful in the implementation, but I don't anticipate any interference with keyboard shortcuts. These tend to be two-key combinations, e.g. Ctrl+S or Ctrl+X. If keyboard focus is on a trigger control that shows a tooltip, pressing Ctrl will close the tooltip. Because the user will continue to hold down Ctrl, pressing the second key to complete the shortcut combination should still trigger the shortcut. I believe as long as we don't mark the Ctrl press as handled in any way, everything should continue to work.

Is the open question whether to continue to developers set offsets that would prevent hoverable ToolTips? Could optimizing all default templates to guarantee ToolTips are hoverable be sufficient here?

I'm hoping that providing the right hoverable behavior by default while allowing apps to customize and potentially break hoverability is the right answer. I want to make sure we think through the implications of the platform continuing to provide apps with existing placement flexibility, making it easy for apps to violate the new requirement. Or whether the platform should ignore the offset properties, or do something really clever (that I haven't thought of yet because we can't reliably predict ahead of time exactly where the tooltip will open) when an offset is specified.

There could be a hit target larger than the visible caption text, so the mouse is over it, even if not visible over it

Tooltips should dismiss when the pointer moves off the trigger control (or off the tooltip itself). So the problem with a larger hit target is that the tooltip may not dismiss when the user expects it to disappear. This problem gets worse if several trigger controls are placed next to each other because we run the risk of one of them dominating over its neighbors when calculating when to show/hide corresponding tooltips.

Will this new behaviour for tooltips extend to the Win32 shell?  Looking at the W3C page, it makes me think about Cascading menu hovers, rather than tooltips.
Will Tooltips need a hover state, or is it purely a functional change?

Will this new behaviour for tooltips extend to the Win32 shell?

This issue is tracking changes to the Xaml ToolTip control.

Will Tooltips need a hover state, or is it purely a functional change?

I believe purely a functional change. The hoverability requirement is primarily needed for screen magnifiers.

I understand the accessibility issues, but I don't think it is a good idea to remove the gap between control and tooltip. It is good to offset the tooltip a bit, to give a distinction between control and tooltip. The W3 docs also show a gap between control and tooltip, it's not like they recommend to remove it.
Could the "hoverable" requirement be met by placing a small transparent control into the gap between the control and the tooltip? Or it could even be a transparent part of the tooltip itself, and would eat pointer movements, so the tooltip does not disappear when moving the pointer in. This way, hoverability could be done without removing the gap.

There's some debate over which key should dismiss ToolTip. Current proposal is to use Ctrl key, but this is subject to change.
The Ctrl key is a Narrator shortcut to stop typing so we probably shouldn't use it for this purpose. In Office we use Ctrl + Shift + F10 to invoke tooltips. Can we also use this shortcut to dismiss tooltips?

Work currently in progress. Closing this issue as we're tracking it internally.


Typescript 2.3.3 errors

I tried to compile simple model definition with typescript 2.3.3. It's failed with:
node_modules/nestedtypes/lib/type-r/collection/index.d.ts(16,22): error TS2420: Class 'Collection' incorrectly implements interface 'CollectionCore'.
  Types of property '_onChildrenChange' are incompatible.
    Type '(record: Record, options?: TransactionOptions | undefined, initiator?: Transactional | undefined)...' is not assignable to type '(child: Transactional, options: TransactionOptions) => void'.
      Types of parameters 'record' and 'child' are incompatible.
        Type 'Transactional' is not assignable to type 'Record'.
          Property '_previousAttributes' is missing in type 'Transactional'.
node_modules/nestedtypes/lib/type-r/record/transaction.d.ts(57,22): error TS2415: Class 'Record' incorrectly extends base class 'Transactional'.
  Types of property 'each' are incompatible.
    Type '(iteratee: (value?: any, key?: string | undefined) => void, context?: any) => void' is not assignable to type '(iteratee: (val: any, key: string | number) => void, context?: any) => any'.
      Types of parameters 'iteratee' and 'iteratee' are incompatible.
        Type '(val: any, key: string | number) => void' is not assignable to type '(value?: any, key?: string | undefined) => void'.
          Types of parameters 'key' and 'key' are incompatible.
            Type 'string | undefined' is not assignable to type 'string | number'.
              Type 'undefined' is not assignable to type 'string | number'.
node_modules/nestedtypes/lib/type-r/record/transaction.d.ts(57,22): error TS2417: Class static side 'typeof Record' incorrectly extends base class static side 'typeof Transactional'.
  Types of property 'define' are incompatible.
    Type '(protoProps: RecordDefinition, staticProps?: any) => typeof Record' is not assignable to type '(spec?: MessengerDefinition | undefined, statics?: {} | undefined) => MixableConstructor'.
        Types of property 'prototype' are incompatible.
          Type 'Record' is not assignable to type 'Transactional'.
            Types of property 'each' are incompatible.
              Type '(iteratee: (value?: any, key?: string | undefined) => void, context?: any) => void' is not assignable to type '(iteratee: (val: any, key: string | number) => void, context?: any) => any'.
                Types of parameters 'iteratee' and 'iteratee' are incompatible.
                  Type '(val: any, key: string | number) => void' is not assignable to type '(value?: any, key?: string | undefined) => void'.
                    Types of parameters 'key' and 'key' are incompatible.
                      Type 'string | undefined' is not assignable to type 'string | number'.
                        Type 'undefined' is not assignable to type 'string | number'.
node_modules/nestedtypes/lib/type-r/relations/store.d.ts(2,22): error TS2415: Class 'Store' incorrectly extends base class 'Record'.
  Types of property 'getStore' are incompatible.
    Type '() => Store' is not assignable to type '() => Transactional'.
      Type 'Store' is not assignable to type 'Transactional'.
        Types of property 'each' are incompatible.
          Type '(iteratee: (value?: any, key?: string | undefined) => void, context?: any) => void' is not assignable to type '(iteratee: (val: any, key: string | number) => void, context?: any) => any'.
            Types of parameters 'iteratee' and 'iteratee' are incompatible.
              Type '(val: any, key: string | number) => void' is not assignable to type '(value?: any, key?: string | undefined) => void'.
                Types of parameters 'key' and 'key' are incompatible.
                  Type 'string | undefined' is not assignable to type 'string | number'.
                    Type 'undefined' is not assignable to type 'string | number'.

I didn't test it from TypeScript yet. Just Babel.
But I will check it soon.

Could you share your model definition causing such an errors, please?

i cant compile the simple index.ts:
import { define, Record } from 'type-r'

tsconfig.json:

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "outDir": "./build",
        "jsx": "react",
        "moduleResolution": "node",
        "sourceMap": true,
        "declaration": true,
        "experimentalDecorators": true,
        "removeComments": true,
        "allowSyntheticDefaultImports": true,

        "strict": true,
        "noImplicitAny": false,
        "strictNullChecks": true,
        "noImplicitThis": true,
        "alwaysStrict": true,

        "baseUrl": "./src",
        "paths": {
            "libs": ["libs"],
            "components": ["components"],
            "etc": ["etc"]
        }
    },
    "filesGlob": [
        "src/**/*.ts",
        "src/**/*.tsx"
    ],
    "exclude": [
        "webpack.config.js",
        "postcss.config.js",
        "build",
        "node_modules"
    ],
    "compileOnSave": true
}

Today i installed latest type-r from this repo. Previous errors are dissapeared, but there some new:

node_modules/type-r/lib/collection/index.d.ts(17,22): error TS2420: Class 'Collection' incorrectly implements interface 'CollectionCore'.
  Types of property '_onChildrenChange' are incompatible.
    Type '(record: Record, options?: TransactionOptions | undefined, initiator?: Transactional | undefined)...' is not assignable to type '(child: Transactional, options: TransactionOptions) => void'.
      Types of parameters 'record' and 'child' are incompatible.
        Type 'Transactional' is not assignable to type 'Record'.
          Property '_previousAttributes' is missing in type 'Transactional'.
node_modules/type-r/lib/record/transaction.d.ts(57,22): error TS2415: Class 'Record' incorrectly extends base class 'Transactional'.
  Types of property 'each' are incompatible.
    Type '(iteratee: (value?: any, key?: string | undefined) => void, context?: any) => void' is not assignable to type '(iteratee: (val: any, key: string | number) => void, context?: any) => any'.
      Types of parameters 'iteratee' and 'iteratee' are incompatible.
        Type '(val: any, key: string | number) => void' is not assignable to type '(value?: any, key?: string | undefined) => void'.
          Types of parameters 'key' and 'key' are incompatible.
            Type 'string | undefined' is not assignable to type 'string | number'.
              Type 'undefined' is not assignable to type 'string | number'.
node_modules/type-r/lib/record/transaction.d.ts(57,22): error TS2417: Class static side 'typeof Record' incorrectly extends base class static side 'typeof Transactional'.
  Types of property 'define' are incompatible.
    Type '(protoProps: RecordDefinition, staticProps?: any) => typeof Record' is not assignable to type '(spec?: MessengerDefinition | undefined, statics?: {} | undefined) => MixableConstructor'.
        Types of property 'prototype' are incompatible.
          Type 'Record' is not assignable to type 'Transactional'.
            Types of property 'each' are incompatible.
              Type '(iteratee: (value?: any, key?: string | undefined) => void, context?: any) => void' is not assignable to type '(iteratee: (val: any, key: string | number) => void, context?: any) => any'.
                Types of parameters 'iteratee' and 'iteratee' are incompatible.
                  Type '(val: any, key: string | number) => void' is not assignable to type '(value?: any, key?: string | undefined) => void'.
                    Types of parameters 'key' and 'key' are incompatible.
                      Type 'string | undefined' is not assignable to type 'string | number'.
                        Type 'undefined' is not assignable to type 'string | number'.
node_modules/type-r/lib/relations/store.d.ts(2,22): error TS2415: Class 'Store' incorrectly extends base class 'Record'.
  Types of property 'getStore' are incompatible.
    Type '() => Store' is not assignable to type '() => Transactional'.
      Type 'Store' is not assignable to type 'Transactional'.
        Types of property 'each' are incompatible.
          Type '(iteratee: (value?: any, key?: string | undefined) => void, context?: any) => void' is not assignable to type '(iteratee: (val: any, key: string | number) => void, context?: any) => any'.
            Types of parameters 'iteratee' and 'iteratee' are incompatible.
              Type '(val: any, key: string | number) => void' is not assignable to type '(value?: any, key?: string | undefined) => void'.
                Types of parameters 'key' and 'key' are incompatible.
                  Type 'string | undefined' is not assignable to type 'string | number'.
                    Type 'undefined' is not assignable to type 'string | number'.

Another issue:

import { define, Record, ChainableAttributeSpec } from 'type-r'

@define export
    class Refbook extends Record {
    static attributes = {
        title: String.has.toJSON(false)
    }
}

export const availableGenders = new Refbook.Collection([
    { id: 'male', title: 'Male' },
    { id: 'female', title: 'Female' }
]);

produce on new Refbook.Collection
src/data/refbook.ts(12,33): error TS2511: Cannot create an instance of the abstract class 'Transactional'.

Interesting. That's pretty serious. It strange that tests don't fail.

I'm in the process of adding TypeScript unit tests. Will take a look at this stuff soon.

another issue with Collection

@define class OrganizationList extends Record.Collection {
    public load() {}
}

@define export
    class Organization extends Record {
    static Collection = OrganizationList
    static attributes = {
        name: String
    }
}

src/scenes/auth/scenes/register/data/register.ts(7,2): error TS2345: Argument of type 'typeof OrganizationList' is not assignable to parameter of type 'MixableConstructor'.
  Types of property 'predefine' are incompatible.
    Type '() => typeof Messenger' is not assignable to type '() => MixableConstructor'.
      Type 'typeof Messenger' is not assignable to type 'MixableConstructor'.
        Types of property 'define' are incompatible.
          Type '(protoProps?: MessengerDefinition | undefined, staticProps?: any) => typeof Messenger' is not assignable to type '(definition: ClassDefinition, staticProps?: {} | undefined) => MixableConstructor'.
            Type 'typeof Messenger' is not assignable to type 'MixableConstructor'.
src/scenes/auth/scenes/register/data/register.ts(7,15): error TS2515: Non-abstract class 'OrganizationList' does not implement inherited abstract member '_createTransaction' from class 'Transactional'.
src/scenes/auth/scenes/register/data/register.ts(7,15): error TS2515: Non-abstract class 'OrganizationList' does not implement inherited abstract member '_log' from class 'Transactional'.
src/scenes/auth/scenes/register/data/register.ts(7,15): error TS2515: Non-abstract class 'OrganizationList' does not implement inherited abstract member '_validateNested' from class 'Transactional'.
src/scenes/auth/scenes/register/data/register.ts(7,15): error TS2515: Non-abstract class 'OrganizationList' does not implement inherited abstract member 'clone' from class 'Transactional'.
src/scenes/auth/scenes/register/data/register.ts(7,15): error TS2515: Non-abstract class 'OrganizationList' does not implement inherited abstract member 'each' from class 'Transactional'.
src/scenes/auth/scenes/register/data/register.ts(7,15): error TS2515: Non-abstract class 'OrganizationList' does not implement inherited abstract member 'get' from class 'Transactional'.
src/scenes/auth/scenes/register/data/register.ts(7,15): error TS2515: Non-abstract class 'OrganizationList' does not implement inherited abstract member 'toJSON' from class 'Transactional'.
src/scenes/auth/scenes/register/data/register.ts(12,22): error TS2339: Property 'add' does not exist on type 'OrganizationList'.
src/scenes/auth/scenes/register/data/register.ts(24,5): error TS4028: Public static property 'Collection' of exported class has or is using private name 'OrganizationList'.

Will make sure that this stuff will be fixed in the week. Already have TS tests.

Hi,
any news about progress are highly appreciated :)

Hi,
can you commit your typescript changes?

Commited. Should be fine.

Regarding the "has or is using private name" error, I've opened a request to fix issues like these in TypeScript by bringing declaration files to parity with language features. https://github.com/microsoft/TypeScript/issues/35822


expected 'sys_id', found 'priority' in first column of table 'incident'

When trying to use upsert job (after Insert job created table in mssql successfully and has sys_id as first column) gives below error.
18:28:26 INFO Generator [DPRUN0001006]  INIT: dialect=mssql schema=dbo namecase=LOWER namequotes=SQUARE autocommit=false
Exception in thread "DPRUN0001006" java.lang.RuntimeException: expected 'sys_id', found 'priority' in first column of table 'incident'
at sndml.datamart.ColumnDefinitions.(ColumnDefinitions.java:67)
at sndml.datamart.DatabaseTableWriter.open(DatabaseTableWriter.java:51)
at sndml.datamart.DatabaseUpdateWriter.open(DatabaseUpdateWriter.java:24)
at sndml.datamart.DatabaseUpdateWriter.open(DatabaseUpdateWriter.java:12)
at sndml.datamart.JobRunner.runLoad(JobRunner.java:200)
at sndml.datamart.JobRunner.call(JobRunner.java:99)
at sndml.daemon.AppJobRunner.call(AppJobRunner.java:85)
at sndml.daemon.AppJobRunner.run(AppJobRunner.java:60)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)

Same is the case for sync as well. I can confirm the table is present and has sys_id as first column in target MSSQL database.

Thanks @gflewis looking at the error, it seems like SNDML is able to read the schema ( observe it says PRIORITY is the first column or contract is first column in below case) but the column order is not correct.
Exception in thread "DPRUN0001012" java.lang.RuntimeException: expected 'sys_id', found 'contract' in first column of table 'sn_customerservice_case'
at sndml.datamart.ColumnDefinitions.(ColumnDefinitions.java:67)
at sndml.datamart.DatabaseTableWriter.open(DatabaseTableWriter.java:51)
where is the configuration file for log4j, sorry I can't find it

Here is another thought: I see that we are using mssql-jdbc version 8.2.2 (pom.xml line 122). I wonder if this issue would be fixed by upgrading the JDBC driver to 8.4.1?

Here is an issue with a column order in the 8.2.2 driver:
https://github.com/microsoft/mssql-jdbc/issues/1332

I would try upgrading the JDBC driver first. I think it looks like our issue. Do you have Maven installed, such that you can rebuild the JAR and see if it fixes the problem?

sorry I do not have. Struggling to rebuild the package after changing the version to       8.4.1.jre8.
can you please point me to instructions to rebuild

First you need to install Apache Maven. If you are on a Mac, then I recommend you install it using HomeBrew. If you are on Windows or Linux then you may want to Google "install maven".
Then you go into the directory where you have cloned the repo. The file pom.xml should be in that directory. Then type this command:
mvn package
This should cause it to download all the necessary libraries and rebuild the JAR files in the target directory.

Thank you @gflewis after updating the jdbc driver, the column sys_id issue is gone. Thank you so much for unblocking me.

Thank you @jonathangull for identifying this issue and testing the fix.
mssql-jdbc has been upgraded to 8.4.1 in v3.4.5


Add Project Proposal for ingestion server removal project

Fixes

Fixes #3935 by @stacimc
Description

Project proposal for the Ingestion Server Removal project.
I've selected @zackkrida and @AetherUnbound as reviewers for their involvement in the discussion of this project prioritization, and experience with the relevant processes.
This discussion is following the Openverse decision-making process. Information
about this process can be found
on the Openverse documentation site.
Requested reviewers or participants will be following this process. If you are
being asked to give input on a specific detail, you do not need to familiarise
yourself with the process and follow it.
Current round
This discussion is currently in the Decision round.
The deadline for review of this round is March 28
Checklist

[ ] My pull request has a descriptive title (not a vague title likeUpdate index.md).
[ ] My pull request targets the default branch of the repository (main) or a parent feature branch.
[ ] My commit messages follow best practices.
[ ] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no visible errors.
[ ] I ran the DAG documentation generator (if applicable).

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Thanks for the suggestions! I believe all feedback has been addressed, so I'm moving this to the Decision round.