Need supports for external dependencies

Right now in Heron, we bundle all dependencies in a huge uber jar. Can heron support similar feature as Storm https://storm.apache.org/releases/2.0.0-SNAPSHOT/Classpath-handling.html to offload the 3rd party libraries to a known location so not need to take a long time to deploy a topology

Interesting. I suppose it is possible but I am not a Java expert. @skanjila @jerrypeng @nlu90 @huijunw you guys have any thoughts?

heron submit ... --config-property heron.classpath.instance=<path-to-class> ..
This option is passed to heron-executor which launches heron-instance with the specified class path.
For a general container, it needs two tar.gz: heron-core.tar.gz and topology.tar.gz. heron-instance is only a small part of heron-core.tar.gz, which I do not think pre-installed heron-instance class path can save much time.
For topology.tar.gz, pre-installed class path may save lots of time depending on your job lib size.
At present there is only one classpath for heron-instance, in other words, the heron-instance-itself class-path and user-job-class-path are the same classpath.
#1735 two class paths are a candidate solution.

This is interesting. I was thinking of putting extra jars into a Docker layer that extends the default Heron provided images. But providing better support for this in Heron would be nice.


3273 develop documentation - follow-up fix

Adding some minor adjustments to attempt to correct the failed auto doc build.
The errors generated by GitHub Actions were:
/home/runner/work/cis_households/cis_households/cishouseholds/derive.py:docstring of cishouseholds.derive.regex_match_result:17: CRITICAL: Unexpected section title.

Parameters:
-----------
/home/runner/work/cis_households/cis_households/cishouseholds/derive.py:docstring of cishouseholds.derive.regex_match_result:29: CRITICAL: Unexpected section title.

I suspect the usage of --- symbols to create tables in some docstring were the cause of these critical fails. Specifically, these:

Sphinx uses the --- to find section headers (as per parameters above) when building the docs. Hopefully # will sufficiently mask these. However, can't test this until we deploy to main.

Closing in favour of cleaner alternative #1093


Defer closeChannel in case of GoogleCloudStorageReadChannel backward

seek.

A corporate CLA should already be on file. Had submitted it a couple weeks ago. Is there any way to track the status?

Thank you for taking time to investigate improvements to GoogleCloudStorageReadChannel!
Our team has improvements to GoogleCloudStorageReadChannel on the roadmap and we work work on some of them already, namely "fadvise" functionality.
Regarding this change, if I understood correctly, it seems that it's not enough to not close readChannel during backward seek, because we do not have functionality that can "rewind" readChannel to read bytes from the beginning, i.e readChannel can read only forward.

Thank you for explanation.
I already did significant refactoring of the GoogleCloudStorageReadChannel class in scope of working on fadvise feature and incorporated your fix. I expect to push it to GitHub after review, hopefully today or early next week.
I didn't write new test for this specific use case though, so it would be nice to submit your test after I push my changes.

Sounds good. Will update the PR with just the test after your commit goes in.
Any thoughts on how the first read performance can be improved, or at least reuse connections when 100s or 1000s of files are being opened once?

Also, @medb  - is it possible for you to check on the CLA, or point me to someone who could help with getting it resolved.

Slow first read could be related to the redundant GetObjectMetadata requests, I have fixed this in my PR that includes your fix and adaptive range reads implementation: https://github.com/GoogleCloudPlatform/bigdata-interop/pull/110
After this change, read channel still makes 1 GetObjectMetadata request in constructor, so delay could be there, I guess we can have flag to disable it, but it needed to get object size and encoding.
In what scenario 1,000s files are read only once? How client knows at what position read these files?
I will try to check CLA thing.

@sidseth I have checked CLA and you need to have all of next:

Your company Corporate CLA is accepted (I have checked all accepted Corporate CLAs and I don't see Hortonworks there)
You need to be authorized contributor by your company.
You need to link your corporate email to your GitHub account.
You need to configure git to use your corporate email to author git commits.

May you check with your legal team if you are in compliance with items 1 and 2?

@sidseth may you share test that you have used to detect 90-250 ms delay when files opened only once?

Slow first read could be related to the redundant GetObjectMetadata requests

Most of the time here was in the executeMedia call.

In what scenario 1,000s files are read only once? How client knows at what position to read these files?

This is for split generation when running a Hive on Tez or Hive on MR job with ORC. Rather than one read per file, this is actually one read per stripe (which is typically about 64MB). As an example, if you look at data which is partitioned by day - and there's a query which accesses 5 years worth of data - split generation could end up accessing over 1800 files. This data is also accessed to potentially eliminate a bunch of work further down based on metadata in the stripes. Seems more of a connection re-establishment cost than anything else.

@sidseth may you share test that you use to detect 90-250 ms delay when opening ORC files only once?

Let me put together a quick test for this. It doesn't necessarily need to be ORC file content. Will share this by tomorrow.
Thanks for the info on the CLA. Checking with relevant folks on getting this sorted out.

The access pattern is quite simple to reproduce.
 Perform the following on each of them (ORC by default will launch 10 threads to read the stripe details from these files)
byte[] buffer = new byte[16384];
FileSystem fs = FileSystem.get(new URI(pathString), conf);
InputStream is = fs.open(new Path(pathString));
((FSDataInputStream) is).readFully(fileLength-16K, buffer, 0, 16384);
https://github.com/rajeshbalamohan/hadoop-aws-wrapper is useful in tracking various invocations in the readFully call. This may need some modifications. (Can post a PR to that repo tomorrow)

Thank you for explanation, I will take a look into this.
I have a new change that makes connector to send just 1 GCS request instead of 4 requests that it sends now when client opens a new stream and reads its footer.
I have tested it with Parquet. From my limited testing, ORC tries to pref-etch last 16 KiB of file when it reads footer, but in my case it was not enough and it end up issuing additional request to get reminder of the footer, so this change should improve reading of ORC files too.

This issue should have been fixed in https://github.com/GoogleCloudPlatform/bigdata-interop/commit/7f9c52c9664e987de41638a6c49e75b0c6ba4da3
Please, re-base your PR on master branch and I will merge it as soon as CLA is ready.

Merged: https://github.com/GoogleCloudPlatform/bigdata-interop/commit/39a2c4e0a14f49045c03b392e71688f1a2bd4dd1


 Both ran successfully in my test bed. I have added major
changes, mostly related to handling allged.ged and every gedcom file I
could find on my laptop. I don't recall changing the api, so you
should be able to try it out easily.
go get github.com/djhenderson/gedcom

HTH
Doug
--
Doug Henderson, Calgary, Alberta, Canada - from gmail.com

This sound great @djhenderson. Are you interested in folding your changes back into my original and becoming a maintainer?

Note I am away on vacation from tonight so I won't be able to respond until the week after next

I hesitate as my updated SLOC may be greater than your original SLOC.  I have made a lot of changes. Also, the tests have lagged behind, so that only some of them are working now. I also would like to add some benchmarks. Looking back, my commits were not well organized for collaboration. You are welcome to browse my fork to see what I have done.

Don't believe this is an issue any more. Please file a new issue if you encounter it again.


Mostro listorders

This is a first draft for CLI mostro listorders, take a look.
I created a CLAP command listorders:
`Usage: mostro-cli [OPTIONS] [COMMAND]
Commands:
listorders  Requests open orders from mostro pubkey ()
help        Print this message or the help of the given subcommand(s)
Options:
-v, --verbose
-h, --help     Print help information
-V, --version  Print version information`
The command exit at the end after collecting all the offers from the requested mostro pubkey, so imo I used a command with exit approach.
The result is the same that you saw on mostro side:

Let me know if you like it!

You're welcome @grunch , really a pleasure. We could speak about some other commands to implement to make cli more configurable. Some ideas:

Add relay with command.
Use of a config file to load relay and mostro pub key to request.

Any idea that you like to have on cli side?

I already added a .env file where we can add mostro's pubkey, user private key, we can add relays there too

I think is good to have the listorders command but users will need at some point to filter by order kind (buy/sell) and fiat currency

I think is good to have the listorders command but users will need at some point to filter by order kind (buy/sell) and fiat currency

For sure, adding some filter is not so complicated i think, could be next improve of list orders.

Hi @grunch i am refining some cosmetics on table: green text for buy and red for sell, centering text and maybe if it has a meaning adding the relays where an offer is present.
Adding some filtering to test: easy one for currency ticker for example. What do you say about some args of subcommand listorder, for example:
mostro-cli listorders -c(urrency) USD
this will filter orders for currency ticker. Have you better idea for cli? We could make an arg for the filter we want, so -o(rdertype) could be buy or sell...and so on.

sounds good, let's move this conversation to new issues, I will create a few

https://github.com/MostroP2P/mostro-cli/issues/2


Merging two Linked List using c

I would like to contribute merging two singly linked list code using c language in this project. Could you please assign this for me. @HarshCasper

@gat786 could you pls assign this for me

Have fun!

Hi, i want to contribute as a participant of gssoc'21

@gat786 I want to contribute for this as a participant of GSSOC'21

Pick an issue or topic for me to assign it to you.
If you want to contribute. Pick a thing which you know and will be comfortable in writing it.

Pick an issue or topic for me to assign it to you.
If you want to contribute. Pick a thing which you know and will be comfortable in writing it.

MERGING TWO LINKED LIST USING C/C++

@chehak123 @Nidhideveloper
I would suggest stopping spamming that you want to work on an Issue everywhere. Both of you have been assigned a couple of Issues.
I will soon post a thread on how you should make an Issue soon. Thanks!

I want to do this (Merging two Linked lists) in C++. Can someone please assign it to me?

@Nidhideveloper This issue is created by @saimanoharhm for working on it himself. If you are not able to understand such a simple fact.

Hey ! @gat786 @HarshCasper  I would like to implement this issue in Java as a part of GSSOC'21. Please assign me this.

Please assign this to me in java under GSSOC'21

@RritikaG @yogitasaini
Please make separate Issues for yourself. Its hard to manage individual contributions from a single Issue. Also note that if someone has already made the Issue, and started work on it, it makes no sense for you to do same as well, as we will not accept duplicate contributions.


Prevent websites from knowing I have IPFS running in my browser

Is it possible to completely/selectively prevent websites from knowing I have IPFS running in my browser?
Or does this extensions have the same issues as Metamask[0], which means there's no way to hide the fact that one has the extension installed?
This is a pretty important privacy feature, because I'm pretty sure the presence of such an extension massively increases the accuracy of targeting.
– asymmetric,  https://news.ycombinator.com/item?id=16824809

That is a valid point.

Right now window.ipfs is always present (even if access is disabled via Preferences), and can be used for fingerprinting.

We need to remember there are reasons (https://github.com/ipfs-shipyard/ipfs-companion/issues/362#issuecomment-362231167) why we can't inject it programmatically and why it is done via manifest.

Content script should  be smarter and window.ipfs should not be created if  window.ipfs is disabled via Preferences.

Ideally, it should not be all-or-nothing. User should be able to choose to whitelist specific domains for use with  window.ipfs, but hide it for everything else (disabling fingerprinting by malicious sites)

Enabling users to remove window.ipfs attribute
Since v<IP_ADDRESS>90 Firefox users can disable creation of window.ipfs attribute via Preferences screen  (or via a global "active/suspend" toggle) providing a fix for fingerprinting issue. More details in PR https://github.com/ipfs-shipyard/ipfs-companion/pull/495.
Chrome does not provide contentScripts API so it will continue to statically load content_script via  manifest and Preferences will simply block access to API without removing window attribute.  Hopefully with time, Chrome and other vendors will adopt the new content script API.
I am closing this issue, as this is all we can do fingerprint-wise for window.ipfs given currently available APIs.
Future Work
Some thoughts on exposing IPFS API on-demand in fingerprint-resistant way can be found in https://github.com/ipfs-shipyard/ipfs-companion/issues/454#issuecomment-398854471


Almost optimal

Here's an approach that can get 16.67 cents per game! I just let this script run for a long time in a terminal with a small font. Unfortunately it still eventually stops making progress. You probably don't want to merge this as-is, but it should give you some good inspiration.
## Winning strategy
- With probability 0.0023%: Guess [62, 17, 9, 83], then right-straight binary search avoiding [87, 26, 1, 98].
- With probability 0.0146%: Guess [57, 23], then left-straight binary search avoiding [30, 26].
- With probability 0.0291%: Guess [52, 22, 73], then right-straight binary search avoiding [26, 1, 87].
- With probability 0.0384%: Guess [62, 17, 9, 83], then left-straight binary search avoiding [87, 26, 1, 98].
- With probability 0.0517%: Guess [47, 17, 3, 31, 71, 56], then left-straight binary search avoiding [27, 14, 2, 26, 43, 30].
- With probability 0.0612%: Guess [60, 45, 82], then right-straight binary search avoiding [26, 1, 98].
- With probability 0.0890%: Guess [50, 30, 69], then right-straight binary search avoiding [27, 13, 43].
- With probability 0.1141%: Guess [35, 11], then left-straight binary search avoiding [85, 27].
- With probability 0.1261%: Guess [46, 30], then left-straight binary search avoiding [98, 13].
- With probability 0.1328%: Guess [49, 30, 70], then left-straight binary search avoiding [65, 34, 97].
- With probability 0.1368%: Guess [44], then left-leaning binary search.
- With probability 0.1388%: Guess [52, 32, 17, 70], then left-straight binary search avoiding [42, 26, 23, 97].
- With probability 0.1473%: Guess [46, 17, 13, 30, 62, 52], then right-straight binary search avoiding [26, 2, 1, 3, 95, 87].
- With probability 0.1530%: Guess [39, 18], then left-straight binary search avoiding [87, 1].
- With probability 0.1604%: Guess [53, 26, 10, 41, 77, 65], then left-leaning binary search avoiding [74, 3, 2, 12, 97, 87].
- With probability 0.1876%: Guess [33, 13, 67], then left-straight binary search avoiding [26, 2, 97].
- With probability 0.1942%: Guess [49, 30, 70], then right-straight binary search avoiding [65, 34, 97].
- With probability 0.2036%: Guess [57, 22], then left-straight binary search avoiding [66, 44].
- With probability 0.2090%: Guess [35, 18, 68], then right-straight binary search avoiding [2, 1, 87].
- With probability 0.2221%: Guess [36, 13], then left-straight binary search avoiding [72, 14].
- With probability 0.2296%: Guess [55, 23, 78], then right-leaning binary search avoiding [2, 1, 98].
- With probability 0.2486%: Guess [55, 35], then left-straight binary search avoiding [21, 1].
- With probability 0.2669%: Guess [62, 36], then left-straight binary search avoiding [95, 3].
- With probability 0.2864%: Guess [50, 30, 15, 74, 65], then left-straight binary search avoiding [13, 2, 1, 98, 25].
- With probability 0.2913%: Guess [58, 29, 85], then outward-leaning binary search avoiding [14, 12, 61].
- With probability 0.3121%: Guess [45, 31], then outward-leaning binary search avoiding [43, 26].
- With probability 0.3232%: Guess [45, 22, 12, 83], then right-straight binary search avoiding [44, 14, 2, 72].
- With probability 0.3483%: Guess [53, 25, 77], then left-leaning binary search avoiding [34, 2, 97].
- With probability 0.3821%: Guess [48, 20, 12, 68], then left-straight binary search avoiding [93, 92, 26, 97].
- With probability 0.4211%: Guess [47, 22], then right-straight binary search avoiding [97, 34].
- With probability 0.4227%: Guess [51, 29], then right-straight binary search avoiding [87, 12].
- With probability 0.4429%: Guess [48, 23], then right-straight binary search avoiding [13, 3].
- With probability 0.4511%: Guess [58, 29], then right-straight binary search avoiding [95, 26].
- With probability 0.4720%: Guess [54, 24, 84], then outward-leaning binary search avoiding [11, 1, 35].
- With probability 0.5005%: Guess [45, 21], then outward-leaning binary search avoiding [14, 12].
- With probability 0.5172%: Guess [58, 28, 79], then left-straight binary search avoiding [92, 87, 93].
- With probability 0.5443%: Guess [56, 28, 17, 42, 82, 67], then left-straight binary search avoiding [71, 43, 23, 68, 91, 85].
- With probability 0.5478%: Guess [53, 25, 77], then outward-leaning binary search avoiding [34, 2, 97].
- With probability 0.5997%: Guess [53, 25, 77], then right-straight binary search avoiding [34, 2, 97].
- With probability 0.6070%: Guess [61, 27, 13, 45, 77, 69], then left-straight binary search avoiding [93, 21, 20, 92, 98, 94].
- With probability 0.6077%: Guess [62, 38, 17], then right-straight binary search avoiding [3, 2, 87].
- With probability 0.7039%: Guess [64, 29], then left-straight binary search avoiding [98, 68].
- With probability 0.7113%: Guess [53, 25], then right-straight binary search avoiding [68, 31].
- With probability 0.7150%: Guess [62], then left-straight binary search.
- With probability 0.7288%: Guess [47, 29, 66], then left-straight binary search avoiding [35, 24, 97].
- With probability 0.7819%: Guess [49, 23], then right-straight binary search avoiding [68, 1].
- With probability 0.7890%: Guess [44, 17], then right-straight binary search avoiding [77, 22].
- With probability 0.8510%: Guess [45, 22, 9, 75], then right-straight binary search avoiding [48, 31, 21, 93].
- With probability 0.9024%: Guess [46, 16], then outward-leaning binary search avoiding [72, 14].
- With probability 0.9590%: Guess [50, 29, 69], then right-straight binary search avoiding [32, 28, 90].
- With probability 0.9711%: Guess [43], then left-straight binary search.
- With probability 1.0090%: Guess [57, 19, 78], then left-straight binary search avoiding [52, 11, 93].
- With probability 1.1893%: Guess [48, 23], then left-straight binary search avoiding [13, 3].
- With probability 1.3410%: Guess [37], then right-straight binary search.
- With probability 1.3625%: Guess [53, 25], then left-straight binary search avoiding [71, 65].
- With probability 1.3887%: Guess [36], then left-straight binary search.
- With probability 1.4602%: Guess [60, 30], then left-straight binary search avoiding [98, 1].
- With probability 1.5104%: Guess [46, 22], then left-straight binary search avoiding [72, 14].
- With probability 1.5187%: Guess [45, 22], then left-straight binary search avoiding [70, 14].
- With probability 1.6163%: Guess [53], then right-straight binary search.
- With probability 1.6390%: Guess [47], then right-straight binary search.
- With probability 1.7078%: Guess [48, 24, 15, 39, 75, 63], then left-straight binary search avoiding [72, 34, 26, 54, 92, 85].
- With probability 1.7287%: Guess [45, 13], then right-leaning binary search avoiding [90, 14].
- With probability 1.7706%: Guess [51, 25], then outward-leaning binary search avoiding [69, 2].
- With probability 1.8651%: Guess [48, 24], then right-straight binary search avoiding [93, 22].
- With probability 1.9731%: Guess [49, 33, 81], then left-straight binary search avoiding [35, 13, 97].
- With probability 2.0546%: Guess [39, 19], then right-straight binary search avoiding [68, 1].
- With probability 2.0719%: Guess [51, 23, 13, 35, 80, 65], then right-straight binary search avoiding [54, 7, 2, 8, 92, 70].
- With probability 2.0972%: Guess [59, 28, 14, 46, 82, 73], then right-straight binary search avoiding [72, 6, 2, 8, 93, 86].
- With probability 2.1215%: Guess [55, 23, 78], then left-leaning binary search avoiding [2, 1, 98].
- With probability 2.2720%: Guess [49, 19, 78], then left-straight binary search avoiding [39, 36, 86].
- With probability 2.4479%: Guess [44, 29], then outward-leaning binary search avoiding [31, 13].
- With probability 2.4973%: Guess [62, 30], then left-straight binary search avoiding [78, 71].
- With probability 2.6554%: Guess [51], then left-straight binary search.
- With probability 2.8926%: Guess [54], then right-straight binary search.
- With probability 3.2921%: Guess [38, 15], then outward-leaning binary search avoiding [68, 31].
- With probability 3.9052%: Guess [42], then right-straight binary search.
- With probability 4.2010%: Guess [47], then right-leaning binary search.
- With probability 4.2797%: Guess [43], then outward-leaning binary search.
- With probability 4.4162%: Guess [56, 24], then outward-leaning binary search avoiding [68, 31].
- With probability 4.5947%: Guess [50], then outward-leaning binary search.
- With probability 5.1925%: Guess [49, 25, 73], then outward-leaning binary search avoiding [36, 14, 86].
- With probability 6.5795%: Guess [52], then left-leaning binary search.


[Bug]: Windows - tags

Describe the Bug
Dealing with tags is broken under windows.
 Uncaught Exception                                                                                |
Traceback (most recent call last):
  File "qbit_manage.py", line 539, in <module>
    start_loop()
  File "qbit_manage.py", line 306, in start_loop
    start()
  File "qbit_manage.py", line 390, in start
    num_added, num_tagged = cfg.qbt.cross_seed()
  File "D:\Software\qbit_manage\modules\qbittorrent.py", line 848, in cross_seed
    tracker = self.config.get_tags([x.url for x in torrent.trackers if x.url.startswith("http")])
  File "D:\Software\qbit_manage\modules\config.py", line 544, in get_tags
    default_tag = tracker["url"].split(os.sep)[2].split(":")[0]
IndexError: list index out of range

Config
No response
Logs

Screenshots
No response
Installation
Local
Version Number
3.3.1
What branch are you on?
master

please share full logs and your config

Didn't clean up from the config sample.
Error still stands.

Like @bakerboy448 mentioned, it's difficult to identify the issue with the censored logs. Can you share what the torrent url looks like?

--trace then hopefully
Also please answer the other questions from the other comment

also I just noticed in your cat section you should remove the two keys movies and tv. You should also remove the cat_change: if you aren't using it.

uh...and also in your command section...
tag_update: trues should be tag_update: true

Trace shows it.
It looks like I have a few public torrents which I didn't have tags defined for.
When it hits one of those it errors.

It should be default tag as other if it's not defined.

Example: arenabg is something public I don't have defined.
                                                                                |
| JSON: {'function': 'tag_update', 'title': 'Updating Tags', 'body': '   Torrent Name: Clerks.III.2022.2160p.UHD.BluRay.x265-B0MBARDiERS\n        New Tag: PassThePopcorn\n        Tracker: http://please.passthepopcorn.me:2710/xxxx/announce\n    Share Limit: Set No Share Limit', 'torrent_name': 'Clerks.III.2022.2160p.UHD.BluRay.x265-B0MBARDiERS', 'torrent_category': 'MOVIES/RADARR', 'torrent_tag': 'PassThePopcorn', 'torrent_tracker': 'http://please.passthepopcorn.me:2710/xxxxx/announce', 'notifiarr_indexer': None, 'torrent_max_ratio': -1, 'torrent_max_seeding_time': -1, 'torrent_limit_upload_speed': 0} |
| Webhook: None                                                                                |
| tracker url: http://p4p.arenabg.com:1337/announce                                                  |
| Uncaught Exception                                                                                |
Traceback (most recent call last):
  File "qbit_manage.py", line 541, in <module>
    start_loop()
  File "qbit_manage.py", line 308, in start_loop
    start()
  File "qbit_manage.py", line 379, in start
    num_tagged = cfg.qbt.tags()
  File "D:\Software\qbit_manage-develop\modules\qbittorrent.py", line 287, in tags
    tracker = self.config.get_tags(torrent.trackers)
  File "D:\Software\qbit_manage-develop\modules\config.py", line 612, in get_tags
    default_tag = tracker["url"].split(os.sep)[2].split(":")[0]
IndexError: list index out of range

D:\Software\qbit_manage-develop>

TBH I can't say what did it in the end, messed around till it managed to run without errors.
Debug was mostly useless but trace helped a lot with figuring out what went wrong.


API should return json, not Dockerfile

Current initial implementation returns a Dockerfile, but it should not be done in registry, but with a separate tool that just talks to registry. Pazuzu Registry should return a json that includes all sorted features, together with test cases and resource locations.

Done :)


Region-based workday/weekend filters

Add a filter based on workalendar that filters for workdays and weekends in a given region.

Done in 83ce798f25d372e9d85e91313e073fa85dc2743c


Native resource for fetching kubeconfig

Current Provider Version

6.0.0-beta.2

Use-cases
I want to easily make use of the helm_release and banzaicloud/k8s resources without using local-exec to pull down a kubeconfig file. Local files are often untouchable in CI/CD pipelines and are otherwise non-deterministic, unreliable objects.
Attempted Solutions
Here's what Famly uses now to get a usable kubeconfig:
data "ionoscloud_k8s_cluster" "yb1" {
  id = "${ionoscloud_k8s_cluster.yb1.id}"
}
resource "null_resource" "getcfg" {
  provisioner "local-exec" {
    command = <<EOT
      curl --include \
     --request GET \
     --user "${var.username}:${var.secret}" \
     https://api.ionos.com/cloudapi/v6/k8s/${ionoscloud_k8s_cluster.yb1.id}/kubeconfig | sed -n '17,34p' > kubeconfig.yaml && sleep 30
 EOT
  }
  depends_on = [ionoscloud_k8s_cluster.yb1]
  provisioner "local-exec" {
    when    = destroy
    command = <<EOT
       rm kubeconfig.yaml
  EOT
  }
}
provider "helm" {
  kubernetes {
    config_path = "./kubeconfig.yaml"
  }
}
resource "helm_release" "ingress-nginx" {
  repository       = "https://kubernetes.github.io/ingress-nginx"
  name             = "ingress-nginx"
  chart            = "ingress-nginx"
  namespace        = "ingress-nginx"
  create_namespace = true
}

Proposal
It could be as simple as:
provider "helm" {
  kubernetes {
    config_path = data.ionoscloud_k8s_cluster.this.kube_config
  }
}

However, helm_release will error with a error loading config file: ... file name too long.
Here's an example of how to fetch a certificate for AWS EKS:
provider "helm" {
  kubernetes {
    host                   = data.aws_eks_cluster.cluster.endpoint
    cluster_ca_certificate = base64decode(data.aws_eks_cluster.cluster.certificate_authority.0.data)
    exec {
      api_version = "client.authentication.k8s.io/v1alpha1"
      args        = ["eks", "get-token", "--cluster-name", data.aws_eks_cluster.cluster.name]
      command     = "aws"
    }
  }
}

How the rancher provider offers it (in my opinion the most elegant):
provider "k8s" {
  host = rke_cluster.rancher_cluster.api_server_url

  client_certificate     = rke_cluster.rancher_cluster.client_cert
  client_key             = rke_cluster.rancher_cluster.client_key
  cluster_ca_certificate = rke_cluster.rancher_cluster.ca_crt

  load_config_file = false
}

I wanted to follow up on this.
The data.ionoscloud_k8s_cluster.this.kube_config resource doesn't appear to output valid json or yaml:
{apiVersion:v1,kind:Config,preferences:{},current-context:cluster-admin@famly-prod,clusters:[{cluster:{certificate-authority-data:LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZFVENDQXZtZ0F3SUJBZ0lVQ1VxdEJwOHNucU5WVFFQTWhJcXljNkE5UlhJd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZURVRNQkVHQTFVRUF3d0thM1ZpWlhKdVpYUmxjekFlRncweU1UQTNNall4TkRBek5UUmFGdzB6TVRBMwpNalF4TkRBek5UUmFNQlV4RXpBUkJnTlZCQU1NQ210MVltVnlibVYwWlhNd2dnSWlNQTBHQ1NxR1NJYjNEUUVCCkFRVUFBNElDRHdBd2dnSUtBb0lDQVFEZWRQb2IyeDViQkd4MUdDUllPbkE1Y0VpNWVwemZSUENXZ2ZONDhRNHUKWlFKend0d1g0YXR1K3pVWUlxMkhURi9Ob01YTUNLMjUrWjBMdG5hNk9LUTI1V1B1SEJhMzJOVGZDWjI4dGJoSwpVbURkRUdGRlpsZHpQQXhpWUlJeHhZY1R5aWZxTTU1UHhJS2UyOXpQczFMWXRHVHlwcXZmQzVGNmRDNThZNGpFClAyUHJNYnJnY2l3VFNLb3liTG9kRG8rYkVVa2pMdEFFSHJzQkxLbCtOODlUb1JVRFNoMXJ2YWdaZXA1dXFDa3UKbnFoYlNDRExqMzZZWEQvZWg4RENvaFJIN1pseDNvZUkvN0kzVjViemFGd0trWHBjUjMwVkZGb1VBSU0wV29KUgpiZ3RGQTdQK3duajErc3Z6MFZmQm9XN1JIbXd2aXVLa3VJWjFtOFVPcktkSG1XYno1eDVTRmI2am1jYTlCVjlxClZISWQvTy8yRmk0UXJmTitJWXJNUllyT1hmYUdnUEsxQzhzSjBCakJDYjNSbWRXSjZ0ZXYvVU9nS1J0bnJOV24KTE9MclArWXQyTGFwM1BXSWs1bXBFaXErVWQvNUY2ZnBEbmJNZGl0SlYrQ2F2MEt1ZW9odjFhOVdSQ2YrWFh2VAo0c1RVUTBEODluWlNzMlYwR3pIaUZCTzlpUlRFMmRUUkFWNWNCYVBOVWdwVHE5eVhxeUEzQTN6NkxNTEE2MTVJCmFDTjBtT0Z5UUhEZWcyQ1d4NElYK2l4NjY0dEYxZmFHenlNd05EK1lvSnBxWjlpdTA2L0RjMW1HakxoYlk1M3IKd0dnVXUrdk1OdDZhaHhaNWtPeWl1aGo2YnhseVhmYzBqTFlkYVBWcHl0d2t2TGxGWmFHWmw5YUZOU1NWSFJTQwpTd0lEQVFBQm8xa3dWekFWQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BNEdBMVVkRHdFQi93UUVBd0lDCnBEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCVHhLeEpkV1h4YjZ3QU82bk1YMEpCK2pLR0sKSGpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWdZc1JhRmhmb0FmMS84K3RsVW56bFpXOGVYQjlKZDcxRHB6aQpINnpvU08wZXVzaitxSXhwczd5WVU1S3hlalh6S3VZWUp1aEtzR0ZJdXkxTVlZbldQbUpUWFVYNnU1T2QzbFVhClMxOWdLMDk4SWpnZlZNbEFkWnlqejY1c0VxYmpiWmVwSlFkVjV0elQwYU9zL21WRUN5bjllakZnNm14dUw1THkKRGpCc3FrL3U4NGdFbkQxUktFc1VnRFFXbFAyaHJxQllwYkF3ajBvbTFYNVoyRUIxWVF6MTlzVGt5RXBEZFdLbApJc2ppaCtWMUdZaDlEcjd5OXJEQXgxcEpNNU8vT2xxRjlWMTlHQ09hQTBuL0JoVjBjeTNaTlE3aUZDVDNrM2FyCnNpMlJ1b25ON1pIMGFBM3Z5clY3MjJRY3N5bmN5Ulc5MDVzWHBlSVVQNGgzRDBDcjJFUC95dTRwZlRyckdNT2YKWmJKRmZkSVByTitEcWxTOEF5aitzS3plQW8vN0xMOUNkN2FOYlpaQWgzMUxNYzZKd2xLQXoxYjAzNkowN1MwcgpUckxuU0JSanR4OE1wczduSG5naFg2RnM0YU5nOWZ4c01CTjhhejZiWEtaL0dLMFRRQnloT3A4R2I3RTMzK2dqCitoRFFOMGlQbUdHaFhsbXdXbm9WYjRoV240ZmptOXRSY1AxaFNOemJJR1JWbzlOUmVodGRPYk9DeWNyMWVjTWIKRWJFRG91dGNLY3huaXVXb2ZMUlRUcVhRb1o0dUQ4NWM4U0RjMUNCTlhQN1l0OXYzK2VNeDVkU0hkdWNweEw0YQpYL21JUU5kOVgxZnRmd2wxeDhaYVBlY25qWmJxdFhQR1hkWTBlajh1YkNqUjNuRmlrRUI0Q3hBRVNnaHIyUW9FCjluMDc5czQ9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K,server:https://cp-18893.cluster.ionos.com:10466},name:famly-prod}],contexts:[{context:{cluster:famly-prod,user:cluster-admin},name:cluster-admin@famly-prod}],users:[{name:cluster-admin,user:{token:eyJhbGciOiJSUzI1NiIsImtpZCI6Imx1N3NUX3dFODVhRXBPYnJpSmZhTlBkZjRoZWlXVDNlSFAxY2FFeE1ubDQifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJjbHVzdGVyLWFkbWluLXRva2VuLXRuemZxIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImNsdXN0ZXItYWRtaW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI0MTY2YmFhZC0yMWIxLTQyNmQtYjVkNy02ZTZkMGJjYTExMjciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06Y2x1c3Rlci1hZG1pbiJ9.ZizMo6yKKM3EsBJn9XRjdLYTqaMPQ1h7JFCw26phv35HW2Ew11g_rDwXxsXPvpjs1w8OzVIypGSJhImyU21X3WuiCi8pPHZHrRrQXb2Dy3BplOHnbLmZ6pKzMSODcZixWMJh-9j9CfPpFrxz3vJoz58Sc5SbyHvy9W42qZvL6aRbaMOnPJ0KDf1wixhJDj5T1Mgnb_agRXiT25nA9Ybfw2Tc8kxvE94Hk2Ean3jggYDjiVieGWzvT7bqyyAenFmtuemv1DJvr1qY9LNXQGf6xJfTjPdIvL1FZ1vpoKO4TJnATdYsR--W7gzqVaJZAt6z77z-DXBU2Q04QegLu8c5DXfYNkXaipdS6t-tpt41i4NeVKsiLArkAUehWtmAvbsctRToRobDm2hq6BFOaXvgi3wJWQaq51XfUhMhO6OI2M79eczUnLJwrMb1qf_gDyBqsgeih_rVJkFiB5_BWcje6AMQUvh5GPAKpUFiXf3xfgODvY4kjNnVw5VtP0-NUrYycfX7KcP1nUhPCJcea58WmYcjrCh462b3EQzd1LaKNPmz_5kZMr7KXhaKGGqUg6MyDJpFHh1gZNuWJZf5fyIp10hcA78rPaLtt9UGni-75ciA3JvxyorNvIKpX0xny9zxXHj-df36JS101f46zKVQpFPlB696GzlWLv1S_JX85uk}}]}

@worldofgeese : json requires that properties and values are in quotes, e.g. "kind":"Config"
These were obviously lost when writing it to file.
But more important:
Never ever provide your complete kubeconfig in a public repo!
Please remove it immediately from the comment.

@worldofgeese : json requires that properties and values are in quotes, e.g. "kind":"Config"
These were obviously lost when writing it to file.
But more important:
Never ever provide your complete kubeconfig in a public repo!
Please remove it immediately from the comment.

I haven't. Please review the posted kubeconfig. It's been cleaned of sensitive information.

@worldofgeese : json requires that properties and values are in quotes, e.g. "kind":"Config"
These were obviously lost when writing it to file.
But more important:
Never ever provide your complete kubeconfig in a public repo!
Please remove it immediately from the comment.

I haven't. Please review the posted kubeconfig. Sensitive values have been replaced by "stringtoken" and "tokenvalue".

node name: famly-prod-s3hqot7kk3, correct?

I did immediately after but I can see GitHub preserves the original comment so I've now deleted the comment.

Back to the request at hand, I'd appreciate knowing what the IONOS Cloud team thinks of my proposals. HashiCorp themselves recommends using local-exec only as a last resort and I'm inclined to agree.

Hello @worldofgeese ,
Due to security concerns related to storing the kube config in the state, we will not implement a resource specifically for that
nor will we include a kube_config attribute in the ionoscloud_k8s_cluster resource because the value would end up in the
state.
Our recommendation is to use the ionoscloud_k8s_cluster data source which does not store the value of kube_config
which you can extract in your plan, like this:
data "ionoscloud_k8s_cluster" "k8s_cluster_example" {
  name     = "k8s-demo"
}

resource "null_resource" "getcfg" {
  provisioner "local-exec" {
    command = "echo \"${data.ionoscloud_k8s_cluster.k8s_cluster_example.kube_config}\" > kubecfg.yaml"
  }
}

Hi @mflorin,
It would be great if the data resource was usable but it's not usable. The result of echoing the data resource will output to file unusable json. Can you try my code with your data resource? It won't work.
A file object  is a bigger security issue in CI/CD pipelines than a passable data resource. I wrote one proposal in my original post:

@worldofgeese - it cannot work since config_path refers to a file system path. kube_config from the datasource contains the actual kube_config ... Given that, I'm not sure what you're proposal is exactly.

@mflorin the actual kube_config produced is not correct. It cannot be used as it is produced. Can you try and run your examples on a test cluster? Then please try and pass the file to your choice of k9s, Lens or kubectl. They will report that the file is unusable.

Given that, I'm not sure what you're proposal is exactly.

Any form of authentication to the cluster using Terraform constructs that does not rely on what HashiCorp states are last resort methods. Mutable out-of-band files are extremely fragile and vulnerable to accidental git check-ins.
Given this example:
provider "k8s" {
  host = rke_cluster.rancher_cluster.api_server_url

  client_certificate     = rke_cluster.rancher_cluster.client_cert
  client_key             = rke_cluster.rancher_cluster.client_key
  cluster_ca_certificate = rke_cluster.rancher_cluster.ca_crt

  load_config_file = false
}

could data resources be created to pass in to providers like so?
provider "k8s" {
  host = rke_cluster.rancher_cluster.api_server_url

  client_certificate     = data.ionoscloud_k8s_cluster.this.client_cert
  client_key             = data.ionoscloud_k8s_cluster.this.client_key
  cluster_ca_certificate = data.ionoscloud_k8s_cluster.this.ca_crt

  load_config_file = false
}

@mflorin the actual kube_config produced is not correct. It cannot be used as it is produced. Can you try and run your examples on a test cluster? Then please try and pass the file to your choice of k9s, Lens or kubectl. They will report that the file is unusable.

You're right, my example was wrong - it was missing an yamlencode - I've edited the comment, please review it.
That said, the datasource works as expected. The actual kube_config is correct.

Given that, I'm not sure what you're proposal is exactly.

Any form of authentication to the cluster using Terraform constructs that does not rely on what HashiCorp states are last resort methods. Mutable out-of-band files are extremely fragile and vulnerable to accidental git check-ins. Terraform also has no way of tracking their state. Their outputs cannot be captured in variables, indeed there is little you can do with them inside Terraform data structures.
Given this example:
provider "k8s" {
  host = rke_cluster.rancher_cluster.api_server_url

  client_certificate     = rke_cluster.rancher_cluster.client_cert
  client_key             = rke_cluster.rancher_cluster.client_key
  cluster_ca_certificate = rke_cluster.rancher_cluster.ca_crt

  load_config_file = false
}

could data resources be created to pass in to providers like so?
provider "k8s" {
  host = rke_cluster.rancher_cluster.api_server_url

  client_certificate     = data.ionoscloud_k8s_cluster.this.client_cert
  client_key             = data.ionoscloud_k8s_cluster.this.client_key
  cluster_ca_certificate = data.ionoscloud_k8s_cluster.this.ca_crt

  load_config_file = false
}

Yes, we can add new attributes to the k8s_cluster data source to reference certificate data.

@mflorin the actual kube_config produced is not correct. It cannot be used as it is produced. Can you try and run your examples on a test cluster? Then please try and pass the file to your choice of k9s, Lens or kubectl. They will report that the file is unusable.

You're right, my example was wrong - it was missing an yamlencode - I've edited the comment, please review it.
That said, the datasource works as expected. The actual kube_config is correct.

You're right, your datasource does work as expected with the addition of yamlencode. You're also right that passing the datasource into config_path which expects a file will not work, that was an oversight on my part.

Yes, we can add new attributes to the k8s_cluster data source to reference certificate data.

Thank you very much! That's really great news :confetti_ball: :dancers:

@worldofgeese , would bearer tokens suffice? I'll have to double check but as far as I can see, Ionos Cloud k8s clusters are not configured with client certificate authentication, but with bearer tokens, which I think you could use via the token attribute of the hashicorp kubernetes resource you're trying to use.

@mflorin I've never made use of the token attribute before but if you think it will work as a solution, sure!

Hello @worldofgeese,
We've just released v6.0.0-beta.3 which adds the functionality we discussed.
In short, you can use the user token like this:
resource "ionoscloud_k8s_cluster" "test" {
  name = "test_cluster"
  maintenance_window {
    day_of_the_week = "Saturday"
    time            = "03:58:25Z"
  }
}

data "ionoscloud_k8s_cluster" "test" {
  name = "test_cluster"
}

provider "kubernetes" {
  host = data.ionoscloud_k8s_cluster.test.server
  token =  data.ionoscloud_k8s_cluster.test.user_tokens["cluster-admin"]
}

We've added 4 new attributes:

config - a structure that maps the kube_config fields
user_tokens - a map of authentication tokens for each user
server - the cluster server
ca_crt - the cluster ca certificate

For more information about what was added, please see the documentation at https://registry.terraform.io/providers/ionos-cloud/ionoscloud/latest/docs/data-sources/k8s_cluster#config .


Use of private VSTS Feed with a Azure AD

Description
We have visual studio solutions that we want to migrate to VSTS.
These solutions use paket instead of nuget, and it work well today in our environment.
When we use paket inside a VSTS Build, paket do restore only packages from nuget.org.
But, these that come from a private VSTS nuget Feed are not resolved.

The attached file show the log in verbose mode for paket restore
paket-error.txt
(I have replace the real vsts name by xxxxx)
For information, this is a corporate VSTS, that need a CredentialProvider.VSS.exe when a nuget.exe (that works well).
Repro steps
paket restore on a VSTS private feed, which need a nuget credential provider (if used)
Known workarounds
no workarround for the moment

In addition, in your case, when you login into VSTS, do you need to first fill login field with an email (that do not exists), to be redirected to your company windows authentication ?

I got it !!!
Solution (from the handyman :) ) :

Call the Microsoft Tool that come with our nuget.exe (downloaded from VSTS account) with my creds.
CredentialProvider.VSS.exe with -Url https://xxxxxxxx.pkgs.visualstudio.com/_packaging/G2DevTeam/nuget/v3/index.json

The return is a json that contains a username and a >800 char's password (temporary??)

Call paket config url with the provided username and password

Call restore

And it works !
So, I'm gonna develop a tool that will do the job before the call of paket...
Is it possible to add the support of that kind of Credential Provider directly in paket ?

Yes I think it would make sense to support credential providers the same way as nuget

@benjamin-devuyst, hello. I've tried my self and credentials manager does the trick (on the dev machine).
But I'm having problems with PaketRestore task in Azure Pipelines.
I've also tried adding username:password@ to package source but paket cannot to authenticate. (The password is a Personal Access Token).
Do you know the correct way to do that?


Running Vanilla Phone Simulator Throwing Uncaught TypeError (hasQueueWaitTimeCheckbox)

Hey Demo SCV Connector Team,
I am running the latest Demo SCV Connector and I am encountering an issue when it is running.
Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')     at ./src/remote-control/main.js (main.js:328:26)     at __webpack_require__ (bootstrap:19:1)     at 1 (remote.bundle.js:12285:18)     at __webpack_require__ (bootstrap:19:1)     at bootstrap:83:1     at bootstrap:83:1
Digging deeper the problem is in the main.js files specifically at
hasQueueWaitTimeCheckbox.addEventListener('change', setCapabilities);
See screenshot for more information

These are my exact steps to reproduce

Ensure that my machine is running Node 16 as SCV Connector Demo does not work with Node 18
Ensure that I have a SF SCV Org configured correctly, with a Contact Center which has the Adapter URL pointing to localhost (https://localhost:8080)
Clone the Repo for salesforce/demo-scv-connector
Open the Repo in Visual Studio Code
Run the command npm install (Confirm All Installed Correctly)
Run the command npm test (Confirm All Tests Are Passing)
Run the command npm run start (Confirm That Is Successfully Running)
Open Google Chrome and Navigate to https://localhost:8080/remote (Confirm That Phone Simulator Loads)
I open Developer Tools for Google Chrome and notice the Uncaught Type Error
Furthmore I am able to Login to my SCV SF Org and navigate to the App with SCV App, the Phone Simulator then updates to have the appropriate Agent Settings which means my client is talking to the server correctly
However then I am unable to make for instance a Inbound Call action from the Phone Simulator

Could you please confirm that my setup is correct? A couple of fellow coworkers are experiencing the exact same problem.
Also if I try to do some actions I get
main.js:423 Uncaught TypeError: Cannot read properties of null (reading 'checked')     at HTMLInputElement.setCapabilities (main.js:423:56)
To confirm my Client is taking to Server okay I see the following
[0] i ｢wdm｣: Compiled successfully.
[1] TenantInfo configured :
[1] scrtBaseUrl : https://uplandingenius-b-dev-ed.my.salesforce-scrt.com
[1] orgId : 00DB0000000ccwF
[1] callCenterName : IGContactCenter
[1]
[1] User joined<EMAIL_ADDRESS>Please this app is crucial to be in a functional and running state so that our developers may properly integrate with SCV Connector, and reference this Demo SCV Connector to confirm what vanilla functionality is currently offered, so we understand if we integrate/programmed correctly
Thanks

FYI @rjanamanchi-sfdc @vivektikoo-force @dlouvton @v-goyal-sfdc @rxu-sfdc

This issue has been verified and is currently being fixed by the Salesforce - SCV Connector Demo team
Internal Salesforce Reference Number - W-12672146

Thank you for the quick response acknowledging this issue, and the quick turnaround to get a fix into the master branch. Much thank from the Upland InGenius team!


Show risk for each question in the Risk profile

Could you paste an image of the output of this?

Could you paste an image of the output of this?

Could you paste an image of the output of this?

Looks like this has broken the formatting of short answer fields?

Before my changes

After  my changes

The current profile looks like this in PDF format:

Are you viewing raw HTML?

The current profile looks like this in PDF format:

Are you viewing raw HTML?

Yes, I will check PDF.

The current profile looks like this in PDF format:

Are you viewing raw HTML?

Yes, I will check PDF.

PDFs
before

after


Draft implementation of service-area-server

…o commit 6bf3762eb1ee733c642e79074744d1185b82a89c 2024-05-24
Draft PR for development of Service Area Cluster server code.

Closing this PR and it has achieved it's purpose of allowing Dyson and iRobot engineers to develop and review each other's work.


Disable unused_containers test everywhere

It's currently failing any time we build without stdlib assertions.

@swift-ci please smoke test and merge

Ugh, flaky test kept this from merging. It's no longer needed, but would've been nice to have merged a few hours earlier.


[Airbrake] [Staging] key not found: "buffer_space_heating_1"

Airbrake error: #4499
Airbrake project: ETMoses
Error type: KeyError
Error message: key not found: "buffer_space_heating_1"
Where: gas_asset_lists#load_summary
Occurred at: May 19, 2016 08:40:33 UTC
First seen at: May 19, 2016 08:40:33 UTC
Occurrences: 1 (1 since last deploy on May 18, 2016 15:38:56 UTC)
URL: https://beta-moses.energytransitionmodel.com/testing_grounds/389/gas_asset_lists/111/load_summary
File: [PROJECT_ROOT]/app/models/calculation/technology_load.rb
Backtrace:
[PROJECT_ROOT]/app/models/calculation/technology_load.rb:88:in fetch
[PROJECT_ROOT]/app/models/calculation/technology_load.rb:88:in composite
[PROJECT_ROOT]/app/models/calculation/technology_load.rb:48:in block (2 levels) in techs_for
[PROJECT_ROOT]/app/models/installed_technology/profile_curve.rb:17:in block in each

Possible duplicate of:  #892


Windows Machine File Copy Task with an UNC Share for source cannot be used with a local user

Environment
TFS On-Premises (Version 16.122.27102.1)
Hosted Agents :  Agent.Version | 2.105.6
Issue Description
Hi,
I'm trying to use the Windows Machine File Copy Task on TFS On-Premise (Version 16.122.27102.1).
I encountered an issue with this task when providing an UNC Path for the Source Directory.
Like decribed on this link (https://docs.microsoft.com/en-us/vsts/pipelines/tasks/deploy/windows-machine-file-copy?view=vsts) I though that was ok to add an UNC for the directory source.
For example :
Source : \mypath
Machines :  Destination-machine
Admin Login : destination-admin
Password : password
Destination Folder:  D:\Sample
The only way to access for my agent to this share, is to add the NETWORK SERVICE account (of my Agents) to this share... I have multiple agents that can access to this, so I will need to add the network service of each agent, and the NETWORK SERVICE account can be easily "hijack".
The files that i need to copy are the appsettings with my connection strings.
Is this the only way to make this task working with network share ?
This is not what I want, I want to be able to specify that "destination-admin" can access to this share.
Is this possible ?
I tried a workaround, that is not great at all and error prone : Mounting and unmounting after the task, the network share via a "net use" command for this specific user.
Thanks !!

@FrenchTastic , One possible solution is configure the agents as some other account which has the access to the share. You can go to task manager and update the user account of the service start with vstsagent.

Thanks for your answer.
This can be a solution,but with have a different user for production files and for our develop/integration environment, and the same agent can be used for develop or production.
So I will forced to set soecific vsts agent for specific environments (I did not check if it's possible, and I do not know if it's a great idea).
But I'll look into your solution and thank you again for your help.

@FrenchTastic , It is possible to set specific vsts agent for specific environments. We can add a custom capability in the agents and a custom demand in the agent phase to filter out the specific agent.

Alternatively  you can use different agent queues for different environments.

Closing the issue as no further customer communication. Please reopen if still blocked.


feat: experimental cloudflare-durable preset

This PR adds a new experimental cloudflare-durable (based on cloudflare-module) preset which allows:

out of the box websocket support with pub/sub
cloudflare:durable:init and cloudflare:durable:alarm for custom hooks via plugins

Not documenting yet to experiment

Anything similar planned for Workflows?

Yes, actually for supporting workflows i might reiterate with another method of enabling durable for workers (via config)

Sounds interesting looking forward, just getting started with Tanstack Start 🤓

Not documenting yet to experiment

@pi0 any idea when this is ready enough to utilize in a prod. project?


Re-visit almanac API surface (i.e. keep some basic provenance/metadata)

Make the almanac useful to store provenance data and easy for users to view. To be further defined after the internal demo of current functionality scheduled for Tuesday, March 26, 2024.

During LINCCup June 2024 we have decided that we probably do not want this functionality. At the moment moving to backlog.

https://github.com/astronomy-commons/hipscat/issues/328

Superseded by #328


Support Puppet up to 4.10 and Ruby 2.3.1

@emahags if you don't have the time to maintain the puppet modules, I can take over the work.

updated to support Puppet 4.10.0 as well

updated this commit to keep support for Ruby 1.9.3


Instructions for OC Web example in Kubernetes

This adds instructions for how to run the OpenCensus web initial load example on GKE (Kubernetes on Google Cloud Platform) using Stackdriver trace.

What is the role of examples/initial_load/static/.gitkeep file?

The role of examples/initial_load/static/.gitkeep was to make it so that the static folder would exist in git to be ready to have the built JS files copied into it. But that isn't strictly needed and I was able to remove it and instead add a mkdir -p static. I also added static/ to .gitignore to prevent the added files from being included (I had that change in an earlier version of this but forgot to get it added when I changed branches)

@songy23 for GO related reviews.


Update compile_starknet_contract_to_casm_from_path binding to support pythonic_hints.

New output of cairo1 compiler contains both hints and pythonic_hints. Previous output contained only hints.
compile_starknet_contract_to_casm_from_path binding should be updated to support flag --add-pythonic-hints flag that controls if the pythonic_hints get added to the compiler output.

Cairo-lang's CompileClass expects the output to contain both hints and pythonic_hints - this is blocking.
For now we can do with simple repackaging since new pythonic_hints seem to be equivalent to old hints, but this may become problematic in the future.

Most likely blocked by #1653

I defaulted it to True here #1694   , is it fine and we can close it @cptartur ?


Build TensorFlow Lite prebuilt libs with CMake or Bazel

We've built TFLite libs with Makefile (ndkbuild).
TensorFlow declared to deprecate it at the end of this July, we need to build those with CMake or Bazel
REF: https://github.com/tensorflow/tensorflow/commit/474264956ad829611e3f52531bc0458f3a769df7

:octocat: cibot: Thank you for posting issue #77. The person in charge will reply soon.

Let's do it with next tflite version Tizen releases (2.5 or 2.6?)

Right. Tizen tensorflow lite packaging should also be changed.


How generate menu items dynamically in dot net 2008

Dear Team,
Its very nice template, How can i generate menu items dynamically in dot net 2008 (C#).
Kindly guide me.
Regards

Not sure on this one, if anyone else wants to chime in feel free!


Alarm triggers immediately when second sensors is tripped

Checklist

no similar issue listed. I thought this might be a feature, but I cannot find it mentioned anywhere
Observed on v 1.7.4

Expected behavior
"Pending" state should continue for the whole extent of the trigger delay after one sensor is tripped, regardless of how many other sensors are tripped.
Actual behavior
"Pending" state starts when one sensor is tripped. If another sensor is tripped before the end of the trigger delay, the "triggered" state becomes active.
Steps to Reproduce
Turn on alarm in any mode with multiple sensors assigned. Trigger a first sensor, and then trigger a second sensor before the trigger delay finishes.

This looks to be the case with me as well,I will be able to test tomorrow and report.


Improving indice processing for boolean and integer attributes

Description
Please include a short summary of the change.
This PR aims to improve the processing of boolean and integer indices by avoiding an expensive list of tuple unpacking.
Results below:
import time

import numpy as np

def new(shape):
    idx = np.arange(np.prod(shape))
    multi_idx = np.unravel_index(idx, shape, order='F')
    return np.ravel_multi_index(multi_idx, shape, order='F')

def prev(shape):
    idx = np.ndindex(shape)
    multi_idx = list(zip(*idx))
    return np.ravel_multi_index(multi_idx, shape, order='F')

# compare prev with new for time
shape = (10000, 1000)
start = time.time()
prev(shape)
print('prev:', time.time() - start)
start = time.time()
new(shape)
print('new:', time.time() - start)

Output:
prev: 3.726440906524658
new: 0.06124114990234375

Issue link (if applicable):
Type of change

[x] New feature (backwards compatible)
[ ] New feature (breaking API changes)
[ ] Bug fix
[ ] Other (Documentation, CI, ...)

Contribution checklist

[x] Add our license to new files.
[x] Check that your code adheres to our coding style.
[x] Write unittests.
[x] Run the unittests and check that they’re passing.
[x] Run the benchmarks to make sure your change doesn’t introduce a regression.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.William Zijie Zhang seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Stop Smeshing Feature

Add a new Smeshing section in the settings
Add a button labeled 'Stop Smeshing' to this section
Clicking on it should remove the POST file(s) from the user's hard drive and return the app to the state where the user have not set up smeshing yet.
When clicked, display a confirm dialog box: Are you sure you want to stop smeshing and reclaim the free disk space you committed to Spacemesh? You can always setup smeshing again at a later time..
User will need to start smeshing again via the smeshing tab by setting post commitment.

App will likely need node support to stop mining and delete post via the api.
@IlyaVi

@IlyaVi - we discussed this briefly yesterday. I think this is important feature for testing for 0.1. I've updated this issue with the new terminology.

@IlyaVi - this issue is outdated and the smeshing screen smeshing features should supersede this.

The user can pause/unpause smeshing via the new pause smeshing button and he can stop / change post size via the modify smeshing button but all of these features are less important then the basic smeshing feature that should ideally be finished for this sprint - happy path for smeshing.


RPC framework implemented by the Pulsar client

Feedback is not positive due to PIP-371.
https://github.com/apache/pulsar/pull/23143
https://github.com/apache/pulsar/pull/23194
We need to implement this distributed RPC framework in a way that does not intrude into the pulsar core library. Therefore, we need to use two topics, one is the request topic and the other is the reply topic. The client side sends RPC requests to the request topic, the server side receives request message and performs customized processing, and finally sends them to the reply topic. The client receives the reply message and returns.
Motivation

As we known，Pulsar's current asynchronous publish-subscribe model serves well for decoupled message distribution, but it lacks a native mechanism for handling synchronous interactions typical of Remote Procedure Calls (RPC).
This request-reply model can greatly enhance the utility of Pulsar. We can then use Pulsar as RPC.
Why would we use Pulsar for this RPC call?

This proposal to achieve the function is request. Request and existing send function of pulsar can be mixed to same topic. This means that the user can choose, and the call to the server side (consumer) can be asynchronous or synchronous, which is controlled by the user flexibly.
You can directly use Pulsar's own delaying messages, that is, you can execute RPC regularly.
You can directly use Pulsar's own load balancing mechanism.
You can directly use Pulsar's own message consumption throttling mechanism.
You can directly use Pulsar's own expansion and contraction mechanism.
You can directly use Pulsar's own message call tracking, monitoring, and logging mechanisms.

Modifications

Verifying this change

[x] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

this image has some Chinese,please translate to English

this image has some Chinese,please translate to English

Picture updated.

Feedback is not positive due to PIP-371. apache/pulsar#23143 apache/pulsar#23194
We need to implement this distributed RPC framework in a way that does not intrude into the pulsar core library. Therefore, we need to use two topics, one is the request topic and the other is the reply topic. The client side sends RPC requests to the request topic, the server side receives request message and performs customized processing, and finally sends them to the reply topic. The client receives the reply message and returns.
Motivation
As we known，Pulsar's current asynchronous publish-subscribe model serves well for decoupled message distribution, but it lacks a native mechanism for handling synchronous interactions typical of Remote Procedure Calls (RPC).
This request-reply model can greatly enhance the utility of Pulsar. We can then use Pulsar as RPC.
Why would we use Pulsar for this RPC call?

This proposal to achieve the function is request. Request and existing send function of pulsar can be mixed to same topic. This means that the user can choose, and the call to the server side (consumer) can be asynchronous or synchronous, which is controlled by the user flexibly.
You can directly use Pulsar's own delaying messages, that is, you can execute RPC regularly.
You can directly use Pulsar's own load balancing mechanism.
You can directly use Pulsar's own message consumption throttling mechanism.
You can directly use Pulsar's own expansion and contraction mechanism.
You can directly use Pulsar's own message call tracking, monitoring, and logging mechanisms.

Another benefit of using message queues to implement RPC requests is that the request message can be received by multiple services and processed in parallel, and then all the processing results are returned. Finally, the client will do the integration.

Feedback is not positive due to PIP-371. apache/pulsar#23143 apache/pulsar#23194
We need to implement this distributed RPC framework in a way that does not intrude into the pulsar core library. Therefore, we need to use two topics, one is the request topic and the other is the reply topic. The client side sends RPC requests to the request topic, the server side receives request message and performs customized processing, and finally sends them to the reply topic. The client receives the reply message and returns.
Motivation
As we known，Pulsar's current asynchronous publish-subscribe model serves well for decoupled message distribution, but it lacks a native mechanism for handling synchronous interactions typical of Remote Procedure Calls (RPC).
This request-reply model can greatly enhance the utility of Pulsar. We can then use Pulsar as RPC.
Why would we use Pulsar for this RPC call?

This proposal to achieve the function is request. Request and existing send function of pulsar can be mixed to same topic. This means that the user can choose, and the call to the server side (consumer) can be asynchronous or synchronous, which is controlled by the user flexibly.
You can directly use Pulsar's own delaying messages, that is, you can execute RPC regularly.
You can directly use Pulsar's own load balancing mechanism.
You can directly use Pulsar's own message consumption throttling mechanism.
You can directly use Pulsar's own expansion and contraction mechanism.
You can directly use Pulsar's own message call tracking, monitoring, and logging mechanisms.

Another benefit of using message queues to implement RPC requests is that the request message can be received by multiple services and processed in parallel, and then all the processing results are returned. Finally, the client will do the integration.

Has been updated.

@liangyepianzhou please agree to the workflow and do some checks first.

@liangyepianzhou @AuroraTwinkle @StevenLuMT
Currently only SimpleRpcCallTest#testRpcCallWithCallBack has some problems. Can you help me look at it? It may be related to topicsPattern.

@StevenLuMT I added the testcontainers, and fixed the SimpleRpcCallTest#testRpcCallWithCallBack. Please agree to the workflow.

about Question5
I will confirm this question with you again. It may also be related to translation. My suggestion logic at that time was:
Can you add a few confirmation methods, such as writing needs to wait for the following strategies to return success, similar to these scenarios:
Scenario 1: All subscriptions to sub1/sub2 are acked successfully
Scenario 2: n (0<n<All) subscriptions to sub1/sub2 are acked successfully
Scenario 3: No need to wait for the ack of subscriptions to sub1/sub2, fall back to the original mq mode

about Question5 I will confirm this question with you again. It may also be related to translation. My suggestion logic at that time was:
Can you add a few confirmation methods, such as writing needs to wait for the following strategies to return success, similar to these scenarios:
Scenario 1: All subscriptions to sub1/sub2 are acked successfully Scenario 2: n (0<n<All) subscriptions to sub1/sub2 are acked successfully Scenario 3: No need to wait for the ack of subscriptions to sub1/sub2, fall back to the original mq mode

Users can implement a org.apache.pulsar.rpc.contrib.client.RequestCallBack and implement onReplySuccess methods to achieve the three scenarios described above.
/**
 * Invoked after receiving a reply from the server successfully.
 *
 * <p>Please note that {@code replyFuture.complete(value)} must be executed at the end.
 *
 * @param correlationId The correlation ID associated with the reply.
 * @param subscription The subscription name the reply was received on.
 * @param value The value of the reply.
 * @param replyFuture The future to be completed with the received value.
 */
void onReplySuccess(String correlationId, String subscription, V value, CompletableFuture<V> replyFuture);

When the ReplyListener receives the reply message, it directly calls onReplySuccess, and the parameter contains the subscription, key, and value to which it belongs. If the user-defined "success" criteria are met, the user will call rpcClient.removeRequest(correlationId); remove this request. At this time, if the ReplyListener still receives reply message corresponding to non-existent request, it will directly ack and not return to the user.
So the framework itself does not provide the corresponding scenario implementation, but through the RequestCallBack, users can achieve a variety of scenarios.
I added a simple scenario implementation in SimpleRpcCallTest#testRpcCallWithCallBack.
@StevenLuMT

Currently, a module pulsar-rpc-contrib has been added, and a PIP needs to be proposed. I think we should take this opportunity to vote and decide how to merge the current project in the future, similar to what lari proposed, https://lists.apache.org/thread/y2ccnoxj76pnw25n5p91ymqygjoq1x27
My suggestion is to be consistent with bookkeeper's method. I will initiate a vote:

Because this project belongs to Pulsar, I think it is better to initiate discussions and votes on Pulsar's mailing list.
And Pulsar is also optimizing its voting process to reduce blocks.
https://lists.apache.org/thread/5lv8pwdgtxcobkjfgto274xxvrr3b1q7

@StevenLuMT @liangyepianzhou @AuroraTwinkle The PCIP document has been updated. PTAL!

@lhotari @eolivelli  Would you be willing to help review this PR when you have time?


Rally should print a warning if there are no measurement samples

Current situation
If there are no measurement samples, Rally will show empty throughput lines in the summary report. On certain hardware and for "smaller" benchmarks (e.g. geonames) this can happen and is puzzling users.
Desired situation
Rally should make it clear that there are no measurement samples and should provide appropriate guidance.

Experiencing this!
Playing with Rally on 3, 6, and 9-node clusters on EC2, m3.2xlarge instances. I'm setting the number of shards to be the same as the number of nodes. Running track 'geonames', challenge 'append-no-conflicts-index-only'.
For 3-node clusters, it works; for 6 and 9, it doesn't. The report for a 3-node cluster:

|   Lap |                          Metric |    Operation |     Value |   Unit |
|------:|--------------------------------:|-------------:|----------:|-------:|
|   All |                   Indexing time |              |   48.5889 |    min |
|   All |                      Merge time |              |   13.2943 |    min |
|   All |                    Refresh time |              |   2.05545 |    min |
|   All |                      Flush time |              |  0.183817 |    min |
|   All |             Merge throttle time |              |   2.24493 |    min |
|   All |              Total Young Gen GC |              |    43.709 |      s |
|   All |                Total Old Gen GC |              |    11.372 |      s |
|   All |          Heap used for segments |              |   29.9591 |     MB |
|   All |        Heap used for doc values |              |  0.102047 |     MB |
|   All |             Heap used for terms |              |   29.1469 |     MB |
|   All |             Heap used for norms |              | 0.0784302 |     MB |
|   All |     Heap used for stored fields |              |  0.631676 |     MB |
|   All |                   Segment count |              |       103 |        |
|   All |                  Min Throughput | index-append |   44029.8 | docs/s |
|   All |               Median Throughput | index-append |     44577 | docs/s |
|   All |                  Max Throughput | index-append |   44781.7 | docs/s |
|   All |       50.0th percentile latency | index-append |    853.63 |     ms |
|   All |       90.0th percentile latency | index-append |   1025.61 |     ms |
|   All |       99.0th percentile latency | index-append |   1186.15 |     ms |
|   All |      100.0th percentile latency | index-append |   1230.55 |     ms |
|   All |  50.0th percentile service time | index-append |   853.277 |     ms |
|   All |  90.0th percentile service time | index-append |   1025.53 |     ms |
|   All |  99.0th percentile service time | index-append |   1186.15 |     ms |
|   All | 100.0th percentile service time | index-append |   1230.55 |     ms |
|   All |                      error rate | index-append |         0 |      % |
|   All |                  Min Throughput |  force-merge |  0.697659 |  ops/s |
|   All |               Median Throughput |  force-merge |  0.697659 |  ops/s |
|   All |                  Max Throughput |  force-merge |  0.697659 |  ops/s |
|   All |      100.0th percentile latency |  force-merge |   1433.35 |     ms |
|   All | 100.0th percentile service time |  force-merge |   1433.35 |     ms |
|   All |                      error rate |  force-merge |         0 |      % |

---------------------------------
[INFO] SUCCESS (took 291 seconds)
---------------------------------

The report for a 6-node cluster:
|   Lap |                          Metric |    Operation |      Value |   Unit |
|------:|--------------------------------:|-------------:|-----------:|-------:|
|   All |                   Indexing time |              |   0.472517 |    min |
|   All |                      Merge time |              |   0.143567 |    min |
|   All |                    Refresh time |              | -0.0180667 |    min |
|   All |                      Flush time |              |  0.0571833 |    min |
|   All |             Merge throttle time |              |  0.0652333 |    min |
|   All |              Total Young Gen GC |              |      44.89 |      s |
|   All |                Total Old Gen GC |              |      9.596 |      s |
|   All |          Heap used for segments |              |      30.41 |     MB |
|   All |        Heap used for doc values |              |   0.127308 |     MB |
|   All |             Heap used for terms |              |    29.5544 |     MB |
|   All |             Heap used for norms |              |  0.0866699 |     MB |
|   All |     Heap used for stored fields |              |   0.641594 |     MB |
|   All |                   Segment count |              |        117 |        |
|   All |                  Min Throughput | index-append |            | docs/s |
|   All |               Median Throughput | index-append |            | docs/s |
|   All |                  Max Throughput | index-append |            | docs/s |
|   All |                      error rate | index-append |          0 |      % |
|   All |                  Min Throughput |  force-merge |    1.63125 |  ops/s |
|   All |               Median Throughput |  force-merge |    1.63125 |  ops/s |
|   All |                  Max Throughput |  force-merge |    1.63125 |  ops/s |
|   All |      100.0th percentile latency |  force-merge |    613.016 |     ms |
|   All | 100.0th percentile service time |  force-merge |    613.016 |     ms |
|   All |                      error rate |  force-merge |          0 |      % |

---------------------------------
[INFO] SUCCESS (took 202 seconds)
---------------------------------

@danielmitterdorfer Is there a workaround for that - apart from using a bigger dataset?

For reference, reducing the warmup-time-period for the challenge seems to be a solution, which makes sense, given that all data captured during this period is not considered for measurement results; so, the bigger the value, less measurements we get.

Hi @salazar, yes, a workaround is to reduce the warmup time. However, I think it does not make too much sense to run such short benchmarks because you are measuring a system that is clearly still in the warmup phase (JIT compiler is still very active, FS caches might not be warmed up enough, etc. etc) and you are basically measuring bogus numbers that will not help you at all. So you could either use a different one (see the output of esrally list tracks to see which ones are available) or create your own track and use a sufficiently large data set.


Modal Throws Error on Navigating Away in .NET 8

Describe the bug
In a .NET 8 (Interactive Server, per component) project, when creating a simple page with one of the Modal examples, the modal works properly, but when the user navigates away from page to another page an error is thrown:
Error: Microsoft.JSInterop.JSException: Cannot read properties of undefined (reading 'backdrop')
TypeError: Cannot read properties of undefined (reading 'backdrop')
    at Ni._initializeBackDrop (https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js:6:52074)
    at new Ni (https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js:6:50951)
    at Ni.getOrCreateInstance (https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js:6:8197)
    at Object.dispose (http://localhost:5062/_content/Blazor.Bootstrap/blazor.bootstrap.js:401:31)
    at http://localhost:5062/_framework/blazor.web.js:1:3244
    at new Promise (<anonymous>)
    at y.beginInvokeJSFromDotNet (http://localhost:5062/_framework/blazor.web.js:1:3201)
    at fn._invokeClientMethod (http://localhost:5062/_framework/blazor.web.js:1:62541)
    at fn._processIncomingData (http://localhost:5062/_framework/blazor.web.js:1:60016)
    at connection.onreceive (http://localhost:5062/_framework/blazor.web.js:1:53657)
   at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
   at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime jsRuntime, String identifier, Object[] args)
   at BlazorBootstrap.Modal.DisposeAsync(Boolean disposing)
   at BlazorBootstrap.BlazorBootstrapComponentBase.DisposeAsync()
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.<ProcessDisposalQueueInExistingBatch>g__GetHandledAsynchronousDisposalErrorsTask|79_0(Task result)

It appears the Modal component is firing a JS Interop to Bootstrap to initialize something during the component's Dispose() but is failing as the object is no longer in the DOM?
This causes a Blazor UI error:

Versions (please complete the following information):

BlazorBootstrap: 1.10.4
Blazor WebAssembly / Server: Server
.NET Version: .NET 8

I've had this happen with other components as well: .net 8, interactive server, per page.


Remove duration condition when query conjecture node

Please answer these questions before submitting pull request

Why submit this pull request?

[ ] Bug fix

[ ] New feature provided
-[ ] Improve performance

Related issues

Bug fix

Bug description.

How to fix?
Delete time query condition for dashborad DB&cache

New feature or improvement

Describe the details and related test reports.

@qibaichao Hello, is there anybody here. 6 days ago, do you want to change the code refer by my suggest?
I will wait 3 days, if nobody to change it, I will close this PR.

@qibaichao If you feel having troubles in git, consider to open another pull request to fix this by re-branch from master.


Easy Mode

Although we don't want too many knobs for users, it is clear that some of the logic in DASH is not accessible to newer runners. In particular, things related to suits. We'd like to add an Option that restricts seeds from requiring hell runs and suitless maridia.
Easy Mode would be curated by the team and additional restrictions could be added later based on feedback. The name Easy Mode is probably not the best. Since it's an Option, maybe the field is "Skill Level" or something like that. We'll need new documentation for this as well. In my mind, we don't really worry about balancing Easy Mode for racing in the way that we do Default Mode.
Approaches
As for how we implement the mode at the graph level, I see two potential options:

Update loadout.ts and the various edge files to expressly limit things
Generate seeds and verify that they don't require hell runs or suitless maridia
Override the entry edges (and a few others) for maridia and norfair to require gravity/PV and varia/HS ⭐

Approach 2 was my preferred solution at first because it fits more into how we currently generate seeds in DASH. It has the big benefit of not having to overcomplicate the graph/loadout logic. It might be too hard though because properly detecting whether or not a seed required suitless for progression is not trivial.
We already have a simple way to implement hell run restrictions for Approach 1 because of the HellRunTanks property. Perhaps we could do a SuitlessHJB or simple add an AllowSuitless flag.
Approach 3 follows the same design we use for implementing changes for Recall and Area on top of the standard graph. Since each area has an edge between the door and the first room, we can put a restriction there to limit things. We already do this for LN where we have HasVaria as a requirement here:
  Door_RidleyMouth: {
    Ruins: () => HasVaria && (HasGravity || HasHiJump),
  },

  Door_Muskateers: {
    Muskateers: () => HasVaria,
  },

The current plan is to go with Approach 3

Added as Relaxed Logic


ERROR IndexError: list index out of range when trying to convert deps

Problem
When trying to execute deps convert cmd on project which contains # coding=utf-8 in some files, I get this error:
❯ dephell deps convert --from=pip --to=pyproject.toml --traceback
WARNING cannot find config file
ERROR IndexError: list index out of range
Traceback (most recent call last):
  File "/home/rocky/.local/share/dephell/venvs/dephell/lib/python3.6/site-packages/dephell/cli.py", line 79, in main
    result = task()
  File "/home/rocky/.local/share/dephell/venvs/dephell/lib/python3.6/site-packages/dephell/commands/deps_convert.py", line 78, in __call__
    'project': resolver.graph.metainfo,
  File "/home/rocky/.local/share/dephell/venvs/dephell/lib/python3.6/site-packages/dephell/controllers/_graph.py", line 239, in metainfo
    return RootDependency.get_metainfo(*self._roots)
  File "/home/rocky/.local/share/dephell/venvs/dephell/lib/python3.6/site-packages/dephell/models/root.py", line 130, in get_metainfo
    info = root.package.metainfo
  File "/home/rocky/.local/share/dephell/venvs/dephell/lib/python3.6/site-packages/dephell_discover/_cached_propery.py", line 18, in __get__
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/home/rocky/.local/share/dephell/venvs/dephell/lib/python3.6/site-packages/dephell_discover/_root.py", line 84, in metainfo
    return MetaInfo.parse(paths=paths)
  File "/home/rocky/.local/share/dephell/venvs/dephell/lib/python3.6/site-packages/dephell_discover/_metainfo.py", line 56, in parse
    lines.extend(cls._parse_file(path=subpath))
  File "/home/rocky/.local/share/dephell/venvs/dephell/lib/python3.6/site-packages/dephell_discover/_metainfo.py", line 29, in _parse_file
    line = Line.parse(content=content, row=row, path=path)
  File "/home/rocky/.local/share/dephell/venvs/dephell/lib/python3.6/site-packages/dephell_discover/_line.py", line 46, in parse
    if type(tree.body[0]) is not ast.Assign:  # type: ignore
IndexError: list index out of range

This happens because quick check here doesn't work properly with any lines, which contains =:
def parse(cls, content: str, row: int, path: Path) -> Optional['Line']:
        if '=' not in content:
            return None

In this case, in content arg was this string: '# coding=utf-8\n'.
Proposed solution
Change:
if type(tree.body[0]) is not ast.Assign:
    return None

to:
if not tree.body or type(tree.body[0]) is not ast.Assign:
    return None

Good solution. Do you want to make PR for it? You can edit the file right from GitHub interface.

If tests not needed, yep, I can handle it :)


Regulation child term for GO:0008608

Hi,
Could I get a regulation term for GO:0008608;
attachment of spindle microtubules to kinetochore.
Thanks,
Emily
(Q7Z460 - IMP - 12837247)
Reported by: edimmer
Original Ticket: "geneontology/ontology-requests/3284":https://sourceforge.net/p/geneontology/ontology-requests/3284

thanks www.movied.org


Prevent tikv-server keeps starting and panic

Feature Request
Is your feature request related to a problem? Please describe:
In some cases, tikv will panic at startup (such as data corruption), and systemd of the ansible deployment will continue to restart it, which will output a large number of error logs.
Describe the feature you'd like:

Currently, TiKV supports creating a mark file to prevent itself from starting again when a critical error happens (see https://github.com/tikv/tikv/pull/3725). I think we can take advantage of this feature.  When tikv-server is panic many times in a short time, or if it is panic for the same reason, write the mark file.
Describe alternatives you've considered:

There may be other approaches by configuring ansible or systemd, but I'm not sure.
Teachability, Documentation, Adoption, Migration Strategy:

Typically the init system which is causing rapid restarts is responsible for doing this, no? In systemd's case there are a number of options to control restart behavior: https://www.freedesktop.org/software/systemd/man/systemd.service.html
I think this is not our responsibility.

@Hoverbear Absolutely! But the introduction of the mark file makes it seem to want to solve this kind of problem inside TiKV. Maybe we need to provide a good description of the exit code, then adjust tidb-ansible to better support the restart strategy.

I think that would be an excellent way to solve this problem. :)


Add status badges in README.md

This PR adds a new script status/update_status_badges.py. The script scans through git submodules in the superproject and generates a table with CI status badges as well as other relevant links for all the submodules. Multiple tables can be created for different git branches.
The script inserts the generated content between two marker Markdown comments in README.md, removing any previous content between them. This allows the script to be simply rerun to update the list of submodules.
This PR also adds the generated tables with CI badges for master and develop in README.md. You may view the result here.
The intended workflow is to run status/update_status_badges.py periodically when new git submodules are added or removed from the superproject, or the CI badges are added or removed in the submodules. It might be a good idea to run the script every once in a while (e.g. before a new Boost release preparation starts) to make sure the badges are up to date. Note that you do not need to run this script to update badge statuses (i.e. whether the CIs are passing or failing). This happens automatically as this information is pulled from CI via the badge image URLs.
I believe, this information could be useful to Boost release managers (@mclow, @glenfe, @igaztanaga) in order to monitor overall Boost health during the release preparation. This is specifically useful for monitoring libraries that are not actively maintained, as it sometimes happens that breakages that are visible on CI are not noticed by anyone until after the release.
I'm also open to suggestions on how this can be improved to be more useful. Also please let me know if this is not useful at all and not worth the effort.

Any comments? It might be a good time for a tool like this since 1.87 release is preparing.


Update apt cache when installing snapd

On Debian/Ubuntu distributions where the package index have been stale for a while, using the role will throw an error like below:
TASK [istvano.microk8s : Make sure snapd is installed] *****************************************************
task path: /home/bryancs/.ansible/roles/istvano.microk8s/tasks/install.yml:1
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "msg": "No package matching 'snapd' is available"}
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "msg": "No package matching 'snapd' is available"}
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "msg": "No package matching 'snapd' is available"}

To get around this, the update_cache parameter of Ansible's apt module should be added and set to yes like below:
diff --git a/tasks/install.yml b/tasks/install.yml
index c48409b..e1177dd 100644
--- a/tasks/install.yml
+++ b/tasks/install.yml
@@ -2,6 +2,7 @@
   apt:
     name:
       - snapd
+    update_cache: yes
     state: present
   become: yes
   when: ansible_distribution == 'Ubuntu'

hi,
thanks for fixing this. Would you mind opening a PR?


How to deal with the Polyline width when I zoom out the map .

Polyline pathOverlay = Polyline()
pathOverlay.color = Color.parseColor("#99ffff00")
pathOverlay.width = 10f
pathOverlay.points = points
mMapView.overlays.add(0, pathOverlay)
I use this way to add a Polyline in the map, but when I zoom out or zoom in the map ,the width of
polyline  will zoom also. how can I deal with this problem?
no zoom
Zooming

The "zooming" image... is that during the process of zooming or after the the zoom animation is completed?

zooming is during the animation..

Well i guess we could turn off the zooming animation, but that's about it

but which API is close the animation? I use mMapController.zoomOut() mMapController.zoomIn() and double tap screen to zoom the map .
When I add the Overlay item with ItemizedOverlayWithFocus<OverlayItem>  ， the overlay will keep the same size when zooming map  ,  they are any way to add Polyline use  ItemizedOverlayWithFocus<Polyline> this way？

the zooming happens in map controller. it may be possible to trigger a onDraw method during the zoom, but this could be expensive when there are many overlays to redraw

@MKergall any insight on this?

Other use case for issue #661.
And (hopefully) same solution...

@niray Should be fixed by #800. Could you give it a try?

this is resolved with v6


P2002 error doesn't include meaningful meta with SQL Server

Bug description
I have a unique constraint on a name field in a table.  When I try and update one record with the same name as another one, I correctly get a PrismaKnownClientError, but I don't get any other useful information in meta.
So, when I do this:
prismaClient.thing.update({
  where: { id: 1 },
  data: { name: 'Thing 2' }
});

I get an error thrown like this:
{
  code: 'P2002',
  clientVersion: '4.9.0',
  meta: { target: 'dbo.Thing' },
}

As you can see, the "target" is the name of the table rather than the name of the field.
If I manually a similar query against the database using Azure Data Studio like this (which tries to set the name of one Thing to the same as that of another):
UPDATE [dbo].[Thing]
SET [name] = 'Thing 2'
WHERE [dbo].[Thing].[id] = 1

I can see that SQL Server itself gives back the following message:
Violation of UNIQUE KEY constraint 'Thing_name_key'.
Cannot insert duplicate key in object 'dbo.Thing'. The
duplicate key value is (Test Thing 2).

I understand that this does not include the column name directly, but I would assume that prisma ought to be able to get the relevant column name(s) from the constraint name that is provided.
How to reproduce
Trigger a unique constraint error on update (or in fact, on create), and inspect the error object.
Expected behavior
I expect the error object meta to include something like fields, target, or constraint so that I can provide meaningful error messages myself.
See https://github.com/prisma/prisma/issues/10829 for a similar request.
Prisma information

generator client {
  provider = "prisma-client-js"
}
datasource db {
  provider          = "sqlserver"
  url               = env("SQL_SERVER_DB_URL")
  shadowDatabaseUrl = env("SQL_SERVER_SHADOW_DB_URL")
}
model Thing {
  id              Int          @id @default(autoincrement())
  name            String       @unique
}

// Add your code using Prisma Client
const prismaClient = new PrismaClient();
await prismaClient.thing.create({ name: 'Thing' });
await prismaClient.thing.create({ name: 'Thing 2'});

// this is where the error is thrown
await prismaClient.thing.update({
  where: { id: 1 },
  data: { name: 'Thing 2' },
});

Environment & setup

OS: macOS (M1 chip), Azure SQL Edge in Docker
Database: SQL Server
Node.js version: 16.6

Prisma Version
4.9.0

Getting the same error code @pete-otaqui.
Error message is this: Unique constraint failed on the fields: (userId)
Hope we get some help.

Thanks for looking @dev-xo, let me know if there's any more information I can provide, or other testing you'd like me to do (in other environments / with a specific branch of prisma, etc)

I've made a similar feature request here https://github.com/prisma/prisma/issues/15046. Would love to see this come to fruition. Even just allowing us to access the raw error thrown by the DB would be great help.

any updates?

Just ran into this issue too. If the error was more meaningful I would've saved lots of time debugging.

I just ran into this issue as well. I'm trying to debug it, but I feel like some kind of error message could save me a lot of time

same here

@daiho-nfq Isn't that the name of the constraint that is failing in your database? To me this looks as good as it can get on a database level.

@janpio DB's also relay what value is violating the unique constraint, not just the column name. In this case, it'd be good to know that it's the user Thing 2 that's violating the unique constraint.

Understood. I don’t intend to hijack the thread of the original poster, so I’ll let them make a case for a bug versus feature request.
I opened a feature request for this in the past https://github.com/prisma/prisma/issues/15046, so I’m more than happy to plug that as the “feature request” split off of this, if you think there is sufficient information outlined in that issue.

Nice flex to be able to point to a feature request from August last year 🤣  Thanks!

Back to the original report for SQL Server:
Running the script:
  await prisma.thing.create({ data: { name: 'Thing' }});
  await prisma.thing.create({ data: { name: 'Thing 2'}});

  // this is where the error is thrown
  await prisma.thing.update({
    where: { id: 1 },
    data: { name: 'Thing 2' },
  });

Indeed throws this error:
PrismaClientKnownRequestError:
Invalid `prisma.thing.update()` invocation in
C:\Users\Jan\Documents\throwaway\19963\script.js:10:22

   7 await prisma.thing.create({ data: { name: 'Thing 2'}});
   8
   9 // this is where the error is thrown
→ 10 await prisma.thing.update(
Unique constraint failed on the constraint: `dbo.Thing`
    at In.handleRequestError (C:\Users\Jan\Documents\throwaway\19963\node_modules\@prisma\client\runtime\library.js:122:6877)
    at In.handleAndLogRequestError (C:\Users\Jan\Documents\throwaway\19963\node_modules\@prisma\client\runtime\library.js:122:6211)
    at In.request (C:\Users\Jan\Documents\throwaway\19963\node_modules\@prisma\client\runtime\library.js:122:5919)
    at async l (C:\Users\Jan\Documents\throwaway\19963\node_modules\@prisma\client\runtime\library.js:127:11167)
    at async main (C:\Users\Jan\Documents\throwaway\19963\script.js:10:3) {
  code: 'P2002',
  clientVersion: '5.14.0',
  meta: { modelName: 'Thing', target: 'dbo.Thing' }
}

And then the manual equivalent SQL via another database client directly:
UPDATE [dbo].[Thing] SET [name] = 'Thing 2' WHERE ([dbo].[Thing].[id] = 1

returns this error message:
SQL Error [2627] [23000]: Violation of UNIQUE KEY constraint 'Thing_name_key'. Cannot insert duplicate key in object 'dbo.Thing'. The duplicate key value is (Thing 2).

As @pete-otaqui identified, Prisma currently only parses the object name dbo.Thing for its error message and target, but the error message also includes the constraint name Thing_name_key and value Thing 2. It might be possible to go from the constraint name to the affected column in many cases.

Aside: @daiho-nfq's screenshot indicates that for some other Non SQL Server database Prisma might return the constraint name as the target, instead of the object name. This might indicate some inconsistency in how Prisma utilized the target property.

Guys, this bug is > 18 months old, can we get some closure?

Happy to take a look at any pull request you opened @shaununderwood and see if it fixes the problem. If you didn't open one, then we will get to it when we have the capacity to figure this out ourselves. That can take some time, as you can see we have many open feature requests and also bug reports and are doing our best to work on them in a prioritized manner that will affect most of our users. Thanks for understanding.

tive esse retorno no terminal após realizar o teste  de descrição de dados via POST,
PrismaClientKnownRequestError:
Invalid prisma.user.create() invocation:
Unique constraint failed on the constraint: User_email_key
at qn.handleRequestError (/home/iago/Sistema-de-Login/node_modules/@prisma/client/runtime/library.js:121:7315)
at qn.handleAndLogRequestError (/home/iago/Sistema-de-Login/node_modules/@prisma/client/runtime/library.js:121:6640)
at qn.request (/home/iago/Sistema-de-Login/node_modules/@prisma/client/runtime/library.js:121:6347)
at async l (/home/iago/Sistema-de-Login/node_modules/@prisma/client/runtime/library.js:130:9616)
at async file:///home/iago/Sistema-de-Login/server.js:12:6 {
code: 'P2002',
clientVersion: '6.1.0',
meta: { modelName: 'User', target: 'User_email_key' }
}
mesmo rodando
$:npx prisma migrate dev --name add_age_field
ele não corrige o erro
porem ao realizar o inserimento manual no banco de dados o mesmo aceita como isso é possivel


Support :mri_25 platform and its variations

The next ruby version is decided to be 2.5 🎉  https://github.com/ruby/ruby/commit/1a47fcadd675601c5b9c4e69d49def28fc3b61af
I'm not requesting you the bundler team to rush for a new release for this, but I guess it's not too early to have this definition in master.

@bundlerbot r+
Beat me to it! We should come up with a more dynamic way of doing this eventually, though.

We also need to update CurrentRuby to include 2.5 as a known patch version

@bundlerbot r+

@bundlerbot retry

@bundlerbot retry
ugh this is getting annoying, sorry for the spam

@segiddins Thank you!


[T4A5][T13-B1] Low Bao Ling Vivian

Ready for review

@sunset1215 good job on this PR. keep it up :+1:
some minor comments added, pleas take note and close the PR when you have read the comments.


L3 Test Spec Document - device settings - dsDisplay

Design L3 Low-level test specification for dsDisplay

merged to develop


The signup button should be disabled as soon as it is clicked

The signup button remains clickable while the email is being sent - this leads to the user being able to click it multiple times, and send themselves multiple emails.

Probably fixable here: https://github.com/krgamestudios/MERN-template/blob/main/client/components/pages/signup.jsx#L30

Also needs to be mirrored in egg trainer.

This needs to be fixed soon.


PEP621ValidationError

I accidentally put a source-includes field in the [project] section of my pyproject.toml instead of [tool.pdm].  For versions of pdm-pep517 prior to 0.11.2 this was fine, but 0.12.0 up to the current 0.12.3, PDM gives the error below.
Would it be possible to print line number and offending line (on stdout instead of in the log) when this happens? Even better, if we know that a field is correct but in the wrong section, the error could mention that.
Collecting pdm-pep517
  Using cached pdm_pep517-0.12.3-py3-none-any.whl (302 kB)
Installing collected packages: pdm-pep517
Successfully installed pdm-pep517-0.12.3
Traceback (most recent call last):
  File "/Users/dlipsitt/Library/Application Support/pdm/venv/lib/python3.9/site-packages/pep517/in_process/_in_process.py", line 363, in <module>
    main()
  File "/Users/dlipsitt/Library/Application Support/pdm/venv/lib/python3.9/site-packages/pep517/in_process/_in_process.py", line 345, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "/Users/dlipsitt/Library/Application Support/pdm/venv/lib/python3.9/site-packages/pep517/in_process/_in_process.py", line 283, in build_editable
    return hook(wheel_directory, config_settings, metadata_directory)
  File "/var/folders/m9/d2t2rmwx7rz10l9dvlsb35540000gq/T/pdm-build-env-eluxduco-shared/lib/python3.9/site-packages/pdm/pep517/api.py", line 97, in build_editable
    with EditableBuilder(Path.cwd(), config_settings) as builder:
  File "/var/folders/m9/d2t2rmwx7rz10l9dvlsb35540000gq/T/pdm-build-env-eluxduco-shared/lib/python3.9/site-packages/pdm/pep517/editable.py", line 75, in __init__
    to_filename(self.meta.project_name), self.location.as_posix()
  File "/var/folders/m9/d2t2rmwx7rz10l9dvlsb35540000gq/T/pdm-build-env-eluxduco-shared/lib/python3.9/site-packages/pdm/pep517/base.py", line 144, in meta
    self._meta.validate(True)
  File "/var/folders/m9/d2t2rmwx7rz10l9dvlsb35540000gq/T/pdm-build-env-eluxduco-shared/lib/python3.9/site-packages/pdm/pep517/metadata.py", line 87, in validate
    return validate_pep621(self._metadata, raising)
  File "/var/folders/m9/d2t2rmwx7rz10l9dvlsb35540000gq/T/pdm-build-env-eluxduco-shared/lib/python3.9/site-packages/pdm/pep517/validator.py", line 85, in validate_pep621
    raise PEP621ValidationError(validator.errors)
pdm.pep517.exceptions.PEP621ValidationError: {'source-includes': ['unknown field']}

Apologies if this bug should be filed in the PDM project instead of here. The behavior differs between pdm-pep517 versions and I filed it before I knew the cause.

We have rewritten the build backend in a way that it uses validate-pyproject as the validator. It is still in alpha stage, please have a try.