CPU and Memory profiling and documentation have been added

What does this PR do (include background context, if relevant)?
This PR adds CPU and Memory profiling in Secretless and the associated documentation to get up and running.
What ticket does this PR close?
connected to #468
Where should the reviewer start?
Changes were made to the main.go and manager.go files. Reviewer should start with documentation to ensure the provided information makes sense and provides the proper guidance to get up and running.
What is the status of the manual tests?
To test, reviewer should attempt to explicitly add the flags to the terminal cmd when spinning up secretless (profile=cpu or profile=memory). Also, attempt to test by adding the debug flag (-debug) with and without the profile flag.
Have you run the following manual tests to verify existing functionality continues to function as expected?

[ ] Manually tested K8s CRDs
[ ] Manually tested Keychain provider
[ ] Manually run the K8s demo
[ ] Manually run Kubernetes-Conjur demo with a local Secretless Broker image build of your branch
[ ] Manually run the full demo (optional)

If this feature does not have any/sufficent automated tests, have you created/updated a folder in test/manual that includes:

[x] An updated README with instructions on how to manually test this feature
[ ] Utility start and stop scripts to spin up and tear down the test environments
[ ] A test script to run some basic manual tests (optional; if does not exist, the README should have detailed instructions)

Links to open issues for related automated integration and unit tests
Links to open issues for related documentation (in READMEs, docs, etc)
Screenshots (if appropriate)

Feedback on documentation content and arrangement? Is the info clear enough? @doodlesbykumbi

@sigalsax sorry to make your life harder, but I moved dev content to CONTRIBUTING.md :)
can you please also move your #Profiling section to that file?

GH history was messed up. Closing PR. NEW PR: #572


PublishCodeCoverageV1 uses out-datet version of ReportGenerator

Required Information
Question, Bug, or Feature?
Type: Bug
Enter Task Name: PublishCodeCoverageResultsV1
list here (V# not needed):
https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/PublishCodeCoverageResultsV1
Environment

Server - Azure Pipelines or TFS on-premises?

If using TFS on-premises, provide the version:

If using Azure Pipelines, provide the account name, team project name, build definition name/build number: Smartersoft, Roostersync, Roostersync Core, Build 20190816.2

Agent - Hosted or Private: Hosted

If using Hosted agent, provide agent queue name:

If using private agent, provide the OS of the machine running the agent and the agent version:

Issue Description
The used dll for the report generator is out-datet. The task uses this ReportGenerator. Locally I have installed the latest version, which is 4.2.15 and that has a ton of bugfixes on board. One of these is counting the correct number of lines if the coverage file consists of multiple dlls.
I cannot find a package file on how this dll below PublishCodeCoverageResults_2a7ebc54-c13e-490e-81a5-d7561ab7cd97/1.155.0/netcoreapp2.0/ReportGenerator.dll got into the final task package, but it would be really nice if you guys could update it.
Task logs
==============================================================================
Task         : Publish code coverage results
Description  : Publish Cobertura or JaCoCo code coverage results from a build
Version      : 1.155.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/test/publish-code-coverage-results
==============================================================================
[command]/usr/bin/dotnet /home/vsts/work/_tasks/PublishCodeCoverageResults_2a7ebc54-c13e-490e-81a5-d7561ab7cd97/1.155.0/netcoreapp2.0/ReportGenerator.dll -reports:/home/vsts/work/1/s/Coverage/coverage.cobertura.xml -targetdir:/home/vsts/work/_temp/cchtml -reporttypes:HtmlInline_AzurePipelines
Loading report '/home/vsts/work/1/s/Coverage/coverage.cobertura.xml' 1/1

Screenshots from generated reports

Troubleshooting
Checkout how to troubleshoot failures and collect debug logs: https://docs.microsoft.com/en-us/vsts/build-release/actions/troubleshooting
I don't thing you guys need any logs for this issue, do you?
Error logs
[Insert error from the logs here for a quick overview]

We have updated the Report Generator version to 4.2.20.


Mark AuctionOrBidWindowCoder as consistentWithEquals

R: @kennknowles

Coverage remained the same at 69.513% when pulling bdc738e0c010829af7f7649f6ea57dc044a18285 on dpmills:nexmark2 into 3b04d1355954c7d5344ca80bbbce25cbee50a55a on apache:master.

Coverage decreased (-0.006%) to 69.506% when pulling e3abd6988b9e9bf0ad465dda573870650ddceb2e on dpmills:nexmark2 into 3b04d1355954c7d5344ca80bbbce25cbee50a55a on apache:master.

Coverage decreased (-0.01%) to 69.5% when pulling e3abd6988b9e9bf0ad465dda573870650ddceb2e on dpmills:nexmark2 into 3b04d1355954c7d5344ca80bbbce25cbee50a55a on apache:master.


datapath: Do not print JoinEP warnings when request was cancelled

When an endpoint creation request is cancelled midflight, compilation or reload
will typically fail due to unavailability of resources. Return an error to
indicate that the request was cancelled instead of returning random errors.
Related: #7282

This change is

Dup of #7600

Coverage decreased (-0.02%) to 42.01% when pulling f8da1e6ffb1faf9ee5e732aa3aa55781896a9bf4 on pr/tgraf/fix-joinep-flake into 08e4dde73a327bf693422df76a67e99f5d5a8655 on master.


Cannot read properties of undefined (reading 'config')

I'm trying to build S3 upload with the use of your solution, and it keeps returning this error:
TypeError: Cannot read properties of undefined (reading 'config')     at Payload.find (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\collections\operations\find.ts:28:25)     at Payload.find (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\collections\operations\local\find.ts:35:38)     at Payload.find (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\index.ts:221:12)     at module.exports (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload-s3-upload\lib\file-exists.js:2:33)     at C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload-s3-upload\lib\index.js:28:44     at C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\collections\operations\create.ts:186:19     at C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\collections\operations\create.ts:184:5     at Payload.create (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\collections\operations\create.ts:183:3)     at Payload.create (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\collections\requestHandlers\create.ts:14:17)
(fabricstudio-backend is obviously my repo)
Any ideas why it accures? I tried in Typescript installation, but also in pure js. It all comes back the same.
The payload.config file has this declaration :
`plugins: [
s3Upload({
  region: process.env.AWS_REGION,
  credentials: {
    accessKeyId: process.env.AWS_KEY,
    secretAccessKey: process.env.AWS_SECRET,
  },
}),

],
`
Which is exactly like the one You provided in instructions. AWS credentials are legit. Double checked.
Would appreciate help!

Hi, thanks for rapid reply!
It works with local storage.
Upload collection has slug defined. There was a mistake in that: the slug was defined capitalized. I changed it, and it started partially working with s3 ( it was working with local before):

It does upload to S3
It puts files in the correct folder on bucket

BUT:

Succesful upload crashes the app.
Thumbnails does not show (error prevents paylod from writing asset reference to mongo)
there is a new error:

Cannot read properties of undefined (reading 'startsWith')
    at C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\uploads\mimeTypeValidator.ts:6:44
    at Array.some (<anonymous>)
    at Object.validate (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\uploads\mimeTypeValidator.ts:6:28)
    at validationPromise (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\fields\validationPromise.ts:31:47)
    at C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\fields\traverseFields.ts:377:56
    at C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\fields\performFieldOperations.ts:113:43
    at Array.forEach (<anonymous>)
    at Payload.performFieldOperations (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\fields\performFieldOperations.ts:113:22)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Payload.create (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\collections\operations\create.ts:197:29)

[nodemon] app crashed - waiting for file changes before starting...

My media config looks like this:
const Media = {
    slug: 'media',
    labels: {
        singular: 'Media',
        plural: 'Media',
    },
    upload: {
      staticURL: '/media',
      staticDir: 'media',
      disableLocalStorage: true,
      s3: {
        bucket: process.env.AWS_BUCKET_NAME,
        prefix: 'fabricstudio/assets',
        commandInput: {
          ACL: 'public-read',
        },
      },
      adminThumbnail: ({ doc }) => `https://{mybucket-name}.s3.eu-central-1.amazonaws.com/fabricstudio/assets/${doc.filename}`,
        imageSizes: [
          {
            name: 'thumbnail',
            width: 400,
            height: 300,
            crop: 'centre',
          },
          {
            name: 'card',
            width: 768,
            height: 1024,
            crop: 'centre',
          },
          {
            name: 'tablet',
            width: 1024,
            height: null,
            crop: 'centre',
          }
        ],
        mimeTypes: ['image/*'],
      },
      fields: [
      ]
}
export default Media

AND, If i comment out mimeTypes line, the error chages to:
ValidationError: The following field is invalid: sizes.card.filename
    at new ExtendableError (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\errors\APIError.ts:26:11)
    at new APIError (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\errors\APIError.ts:43:5)
    at new ValidationError (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\errors\ValidationError.ts:6:5)
    at Payload.create (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\collections\operations\create.ts:236:11)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Payload.create (C:\DEV PROJECTS\FABRIC_STUDIO\fabricstudio-backend\node_modules\payload\src\collections\requestHandlers\create.ts:14:17)

What do You think?

I tried uploading very large media, with mimeTypes line commented out and it works!
Looks like the error finally was due to not large enough images for the imageSizes to work.
I'll go deeper in to documentatation of Paylod to see how to prevent images that are not large enough, from being processed at all, and still being uploaded.
Thanks for your help!
If You have something to add - please do. If not, you may close this issue, my problem has been solved.


optimization of latency-type metrics

@dzy176 Thanks for your contribution!
LGTM, and please fix the lint issue to make CI pass.


baraodemaua

website https://www.baraodemaua.br/

@PauloKrempel Please provide us with a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.
You can provide us with any of the following:

A copy of instruction (a hard-copy or electronic one) given to you by the school that tells you to use an email address in this email domain
An URL of a page at the official school website that says that students use this email domain
A reference to a recognized journal where an article was published by someone from the school, with explicit affiliation to the school, and e-mail address from the email domain
A WHOIS data that link the email domain to the school somehow
A copy of official letter from the school representative saying that the school provides e-mail addresses in this domain to the students
Anything else that can prove this fact in similar way, i.e. can be verified independently.

attached is the email in pt-br that we students received in 2021 with the guidelines for using email.
Email with domain.pdf
I also leave a translation in en us
translated email.pdf
below, the pdf with the usage guidelines:
manual_acesso_office365.pdf
link to access the internal student portal
https://www2.baraodemaua.br/area_aluno/office/index.php
Does this information already help as confirmation?

@PauloKrempel  Thank you for the clarifications. Pull request merged.


Non english charactors throw error

Sometime my series have non english characters which resulting in followin error in carbon.  Example characters are ÀÁÂÃÄÅàáâãäåÈÉÊËIлｔèｒｎåｔïｏｎɑｌíƶａｔï߀ԉ .. How can i fix this error
12/03/2019 13:25:52 :: [console] Unhandled Error
Traceback (most recent call last):
File "/usr/lib64/python2.7/site-packages/twisted/protocols/basic.py", line 766, in dataReceived
self.stringReceived(packet)
File "/opt/graphite/lib/carbon/protocols.py", line 272, in stringReceived
self.metricReceived(metric, datapoint)
File "/opt/graphite/lib/carbon/protocols.py", line 182, in metricReceived
events.metricReceived(metric, datapoint)
File "/opt/graphite/lib/carbon/events.py", line 17, in call
handler(*args, **kwargs)
---  ---
File "/opt/graphite/lib/carbon/pipeline.py", line 31, in run_pipeline
for out_metric, out_datapoint in processor.process(metric, datapoint):
File "/opt/graphite/lib/carbon/client.py", line 680, in process
state.client_manager.sendDatapoint(metric, datapoint)
File "/opt/graphite/lib/carbon/client.py", line 657, in sendDatapoint
for factory in self.getFactories(metric):
File "/opt/graphite/lib/carbon/client.py", line 635, in getFactories
destinations = self.getDestinations(metric)
File "/opt/graphite/lib/carbon/client.py", line 627, in getDestinations
destinations = list(self.router.getDestinations(metric))
File "/opt/graphite/lib/carbon/routers.py", line 108, in getDestinations
for (server, instance) in self.ring.get_nodes(key):
File "/opt/graphite/lib/carbon/hashing.py", line 106, in get_nodes
position = self.compute_ring_position(key)
File "/opt/graphite/lib/carbon/hashing.py", line 68, in compute_ring_position
return carbonHash(key, self.hash_type)
File "/opt/graphite/lib/carbon/hashing.py", line 51, in carbonHash
big_hash = compactHash(key)
File "/opt/graphite/lib/carbon/hashing.py", line 39, in compactHash
return md5(string.encode('utf-8')).hexdigest()
exceptions.UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 39: ordinal not in range(128)

Assuming your clients are running Python 2. I think you are sending UTF-8 characters as 'str' object in pickle. You can fix this doing a .decode('UTF-8') on the metric name before sending, or send a 'unicode' object instead of 'str'.
Note that unicode metric names should work in carbon, but is not supported in graphite-web (there are known issues).


Updating type search for getContent

Playing around with /library/sections/:sectionId and in the returned Directory it shows the different type searches. I've updated the client to accept all four that I'm aware of.

search?type=1: Search only (type=1) movies.
search?type=2: Search only (type=2) shows.
search?type=3: Search only (type=3) seasons.
search?type=4: Search only (type=4) episodes.

Response Directory:
{
    "prompt": "Search for Shows",
    "search": true,
    "key": "search?type=2",
    "title": "Search Shows..."
},
{
    "prompt": "Search for Episodes",
    "search": true,
    "key": "search?type=4",
    "title": "Search Episodes..."
}

Hey John!
Great catch!
With this new data found search should probably be broken out into its own endpoint, and the type should be a query parameter.
If you want to take a stab at it you can refer to the similar section/refresh endpoint.
Or I can take a crack at it later tonight.
Cheers 🎉

@LukeHagar I took a first stab and created pms/paths/library-content-search.yaml.
I copied the query content from the pms/paths/library-content.yaml file since it seems they use all the same filters, which are all optional.
I'm still learning the API, so i'm not 100% on this stuff, so please 👀  for me, if you can.
Thank you!


restore no progress information

Output of restic version
debug enabled
restic 0.7.1 (v0.7.1-80-g5b25b85)
compiled with go1.8.1 on darwin/amd64
How did you start restic exactly? (Include the complete command line)
./restic -r repo restore 50be5857 --target ~/Desktop/test2/
What backend/server/service did you use?
object storage
Expected behavior
should show the progress information
Actual behavior
don't know the progress, like the backup we do have the progress information
Steps to reproduce the behavior
enter password for repository:
restoring <Snapshot 50be5857 of [/Users/gluth/Desktop] at 2017-08-10 19:22:29.945157443 +0800 CST by<EMAIL_ADDRESS>to /Users/gluth/Desktop/test2/
no any progress information showed
Do you have any idea what may have caused this?
we should have some progress information for restore, for each backup we can save the total size,  and during the run restore we got the size from repo, which will give the progress information.

Hey, thanks for leaving an issue. I'm labeling this as an enhancement for the restore process.
When reporting issues, it is a good idea not to mix the observation/description with a proposed solution. In this case, I think it is not a good idea to just save the size of the backup to use for restore progress: It is not backwards compatible and changes the repository format, that is only permissible in certain situations. It may also be inaccurate: What if the user specifies includes/excludes?
A better idea is to wait for #1040 to land, then we can traverse the restore tree once to get the size, and then display progress information. During traversal, we can take any includes/excludes into account so the progress information is accurate.

Hello! I don't want to sound harsh but any news on this?
I am just restoring a backup and having no information whatsoever is a little bit confusing.
Thanks!

Maybe this should get more priority. I've been waiting for hours to restore something, and see some CPU load, but no data being transferred. Because i'm in testing phase, i'm considering other options.

@zout It's always good to consider multiple options to find the one that suits you the most :)
It's pretty odd however that you are not seeing any data being transferred.  Seems fishy.
Personally I just check the size of the target folder(s) to check on progress, then I let it run as long as it needs to (assuming I'm seeing progress of course).

I've used a S3 backend, and are backing up a minio data folder. Minio stores a lot of small files. For our repo it comes down to about 493000 files. I now keep progress of restoring by counting all the files (also in subfolders). What I suspect is dat restoring is happening file by file, and it only does about 100 files per second. It takes little over 2 hours to complete the restore that tool under 2 minutes to backup to S3.
Thats why I was very worried that it was not doing anything at all, but it was, but just very slowly.

As suggested in #2438, the --verbose flag could be used to select how much information should be printed, just like with the backup command.

I believe this is a duplicate of #426

Merged into #426.


Global aggregations

Hi there,
here we are trying to recreate what is done there https://madewithlove.be/faceted-search-using-elasticsearch/ could anyone tell me if there is a way for global aggregations with ElasticsearchDSL ?  I was able to add one aggregation to the other but I'm getting lost here
{    "query": {        "and": [            {                "terms": {"country": ["be", "fr"]}            },            {                "terms": {"category": ["books", "movies"]}            }        ]    },    "aggregations": {       "all_products": {          "global": {},          "aggregations": {             "countries": {                "filter": {                   "and": [                      {                         "terms": {"category": ["books","movies"]}                      }                   ]                },                "aggregations": {                   "filtered_countries": {                      "terms": {"field": "country"}                   }                }             },             "categories": {                "filter": {                   "and": [                      {                         "terms": {"country": ["be","fr"]}                      }                   ]                },                "aggregations": {                   "filtered_categories": {                      "terms": {"field": "category"}                   }                }             }          }       }    } }
Cheers

Responding myself
https://github.com/ongr-io/ElasticsearchDSL/blob/9552d6b39d4bb2e66b87d7d0fd6561cb348b0f85/docs/Aggregation/Bucketing/Global.md

Well, its not exactly the same, could anyone point me how to add a filter to an aggregation?


Replace loop: with while nextFrame(): in python

The fact that python itself has no loop comment makes it very confusing for beginners when they learn in CodeCombat about loop: and then try to use loop: in real cpython.
The fact that loop: uses backround magic to wait for the next frame is very nonobvious to a beginner. A beginner will expect that while True: does the same thing as loop:.
The solution would be to add a new nextFrame() function that makes the magic explicit:
def nextFrame():
    self.wait(0.066) # seems to be the current frame length
    return True

Instead of loop: the standard could be while nextFrame():.
Why is this a problem? In January someone ask for help to debug an issue that comes from this error:
http://discourse.codecombat.com/t/python-while-loop-runs-infinitely/2407 nobody helped the poor guy. The error is non-obvious enough that forums users don't spot it.
User who are expecting normal python ask themselves whether this is really python when they see loop instead of while and for:
http://discourse.codecombat.com/t/python-coding-question/3853/4

You first example is trumped up. his problem would not have changed by adding any sort of loop around his code, and he specifically states this.

Let's look at the first linked example:
e = self.findNearest(self.findEnemies())
while e.health > 0:
   self.attack(e)

There are two ways to get that code correct:
e = self.findNearest(self.findEnemies())
loop:
    if e.health > 0:
       self.attack(e)
    else:
        break

or
e = self.findNearest(self.findEnemies())
while e.health > 0 and nextFrame():
   self.attack(e)

When testing around I sometimes found that self.attack() needs nearly no time to execute and can lead to a infinitive loop. It doesn't seem to do this always.

"While nextFrame()" would require the explanation of "frames" to happen in the Kithgard Dungeon,

No, the level could just tell the user that he has to write while nextFrame():. It doesn't have to explain the details. It doesn't have to explain anything about why that line works. It doesn't even have to allow the user to use any other while statement as long as he has only 'Programmaticon I'.
Apart from that the loop; magic violates the zen of python which says: Explicit is better than implicit.
PS: Python is just discussing to add a async for loop (https://www.python.org/dev/peps/pep-0492/).

Maybe you should try reading the post and not pulling code out of context to support your own theories:

The following code results in an infinite loop, even though the selected enemy is clearly dead.

The fix for his problem is NOT ANYTHING TO DO WITH THE LOOP, but fixing of the updating of the loss of enemy health.

Well, if you want to not explain things you just introduced then there is no need to change "loop" or explain that it isn't "real" python................. (but you are asking for it by "while nextFrame()" ?? what does that mean? at least "loop" does what it says and says what it does. It loops, If you want to complain about black-boxes then don't ever try to introduce python "for" loops, with out lots of explanation.
This is not a "Teach pythonic python" site. This is a teach PROGRAMMING site, you choose the language to learn PROGRAMMING by using. You keep asking for the site to teach idiomatic python, PERIOD.

I agree that adding a self.nextFrame() method would be more Pythonic, and certainly better for more advanced programmers. The reason we added loop:, though, was based on difficulties raw beginners were having with super basic syntax and infinite loops, and although it does have some big downsides, I still think it's worth it for how much easier it is to do loops early on.
Maybe if we were going to do another campaign that moved a bit faster for older players, we would test out a while self.nextFrame(): approach instead. For now I think the next step is to better explain somewhere around where loops are introduced that they are syntactic sugar that's not part of Python.

I also get slightly bothered that Python is the default programming language but the lessons are not taught in a Pythonic way.
Don't get me wrong, CodeCombat is awesome and I find the "structured" way of programming pretty efficient for teaching as well -- it just strikes me as odd that the default programming language was not from the broad C-family.
Either way, seeing as the Python-to-JS compiler currently used in CodeCombat seems rather limited, it most likely isn't suitable for teaching the Pythonic way. I'm also not sure whether it wouldn't be too complicated for beginners, although I've heard good stories about students learning the Pythonic way before being exposed to C-family languages.
Oh, sorry if I derailed the thread too much. :stuck_out_tongue:
Back on topic, loop: introduces quite a degree of magic that is not really part of the programming logic, but while self.nextFrame(): may be too confusing for beginners.
I agree that explaining that loop: is syntactic sugar intended to ease the learning is the best approach for the time being.

We are just going to make while True: act like the current simple loop does, with the automatic yielding of one frame if no blocking action is taken. Any other while condition won't trigger this yielding behavior. So it's still magic, but it works the way the player would expect (unless the player is super advanced) and prevents bad infinite loop errors. We'll work on our autocomplete and error hints to repair damaged while True: loop syntax as we see what happens with it becoming harder to type.

I think hidden magic of that type is very confusing. A player who's code works when he writes while True: but where it doesn't work with while 1==1: will be highly confused.

So we'll handle that with responsive error messages or something. It's honestly not nearly as likely to come up as either 1) someone thinking that loop is not real Python/JS or 2) someone getting confused by the concepts involved in while self.nextFrame().
loop is already nominally equivalent to while True, while 1, while 1==1, etc., but I've never seen anyone just decide to use one of those instead inside CodeCombat.

@ChristianKleineidam I believe @nwinter means that any loop that does not perform any yielding would implicit yield at the end. E.g. for and do-while would also be affected. Is my assumption correct?

No, that would mess up a lot of code, like when you looping over a list/array of coins to find the most valuable one–your code would suddenly take one extra frame per coin. This is evil black magic to only apply when it's while True:, which is very unlikely to happen in an inner loop that's not supposed to take an action. (I couldn't think of a reasonable example of when you would want to do this in CodeCombat.)

I see, makes sense. Though, in that case, you would most likely want to add the magical yield only to while True: loops that do not contain a break statement.
People moving the break condition to inside the loop is quite common. E.g.:
n = 0
while True:
    n++
    # do something
    if n > 3: break

Ah yeah, that's a good extension of the heuristic! I think that anyone who knows how to use break will either 1) just write the loop as while n <= 3: here instead or 2) have some more complicated condition that depends on what happens in the world leading to the break–in which case there is probably a blocking action in there anyway.
Really, the exercise would be to come up with breaking code that would actually be applied in a CodeCombat level–not necessarily the best way to do something, but one that at least sort of makes sense to some player doing it. Eventually I had come up with this crazy example:
def commandFollowers():
    # Iterate through friends between 1 and 2 times to either defend self or find a healer and defend it.
    friends = self.findFriends()
    friendIndex = 0
    healer = None
    timesIterated = 0
    while True:  # needs to not yield
        friend = friends[friendIndex]
        friendIndex += 1
        if not healer and friend.type is 'paladin' and friend.canCast('heal', self):
            healer = friend
            self.command(friend, "cast", "heal", self)
        elif friend is healer or friendIndex is len(friends):
            if timesIterated or not healer:
                break
            else:
                friendIndex = 0
                timesIterated = 1
        elif healer:
            self.command(friend, "defend", healer)
        else:
            self.command(friend, "defend", self)

while True:  # used to be simple loop, needs to yield
    self.commandFollowers()  # doesn't block

But that's pretty out there...

Yes, complex conditions that need to be tested inside the loop represent an use case.
I believe the more common use case would be simply (ab)use break.

I think that anyone who knows how to use break will [...] just write the loop

You're assuming that everyone will write code in the most conventional and optimally readable way. Given that the vast majority of CodeCombat players are beginner programmers, I believe that would not be the case.
It is not uncommon for a learner to get addicted to certain language constructs right after discovering them (e.g. moving the break condition to a break statement). Of course, most often this is not good practice, but it takes a while (no pun intended) until they master these constructs and know where and when to apply them correctly.
And yes, if I recall correctly, I used to be a break abuser at some point. :smile_cat:

We've finished doing this for the Course levels, intended to be used in classrooms, and will update the rest of the individual game levels sometime around when we change the way we do videos, most likely.


Issue setting up kip with minikube

Hi, I just came across kip and wanted to try it out with minikube. I have gone trough the installation instructions several times and I still can not get it to run correctly.
It looks like some pods and  or nodes does not get created properly when staring kip.
First I add the aws credentials in deploy/manifests/kip/base/provider.yaml
then.
minikube start
kustomize build deploy/manifests/kip/base | kubectl apply -f

I get the output
serviceaccount/kip-network-agent created
serviceaccount/kip-provider created
clusterrole.rbac.authorization.k8s.io/kip-provider created
clusterrole.rbac.authorization.k8s.io/kip-network-agent created
clusterrolebinding.rbac.authorization.k8s.io/kip-provider created
clusterrolebinding.rbac.authorization.k8s.io/kip-network-agent created
configmap/kip-config-8gf89h865f created
secret/kip-network-agent created
service/kip-provider created
statefulset.apps/kip-provider created
persistentvolumeclaim/kip-provider-data created

I do not see any pods:
kubectl get pods
No resources found in default namespace.

or nodes related to kip
kubectl get nodes
NAME       STATUS   ROLES    AGE    VERSION
minikube   Ready    master   7m3s   v1.18.3

as mentioned in the readm: "After applying, you should see a new kip pod in the kube-system namespace and a new node named "kip-0" in the cluster."
and not unsuprisingly:
kubectl -nkube-system logs kip-0 -c kip -f
Error from server (NotFound): pods "kip-0" not found

When trying to deploy a basic ngnx service
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:
        type: virtual-kubelet
      containers:
        - name: nginx
          image: nginx:1.14.2
          ports:
            - containerPort: 80

with kubectl apply -f nginx-deployment-virt-kub.yaml
the job get stuck as pending:
kubectl describe pod nginx-deployment-79cbb8c99-9xptz
Name:           nginx-deployment-79cbb8c99-9xptz
Namespace:      default
Priority:       0
Node:           <none>
Labels:         app=nginx
                pod-template-hash=79cbb8c99
Annotations:    <none>
Status:         Pending
IP:
IPs:            <none>
Controlled By:  ReplicaSet/nginx-deployment-79cbb8c99
Containers:
  nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-vdmvx (ro)
Conditions:
  Type           Status
  PodScheduled   False
Volumes:
  default-token-vdmvx:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-vdmvx
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  type=virtual-kubelet
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason            Age               From               Message
  ----     ------            ----              ----               -------
  Warning  FailedScheduling  3s (x3 over 77s)  default-scheduler  0/1 nodes are available: 1 node(s) didn't match node selector.

versions
I tried this both on the latest master (hash 891adef0e0f0e552956254a3dbe2a9e01fac9aa6) and v0.0.17 and v0.0.15
kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.5", GitCommit:"e6503f8d8f769ace2f338794c914a96fc335df0f", GitTreeState:"archive", BuildDate:"2020-07-01T16:28:46Z", GoVersion:"go1.14.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40", GitTreeState:"clean", BuildDate:"2020-05-20T12:43:34Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

minikube version
minikube version: v1.11.0
commit: 57e2f55f47effe9ce396cea42a1e0eb4f611ebbd

Thanks a lot for trying kip, @joh4n !

First I add the aws credentials in deploy/manifests/kip/base/provider.yaml

If you want to use kip on minikube, kustomize scrips in https://github.com/elotl/kip/blob/master/deploy/manifests/kip/overlays/minikube/ are a better choice. Can you please retry with manifests in this directory? If you still do not see kip node, kubectl -n kube-system get pods should show *kip* pod. Can you please share kubectl logs from kip pod? Thanks!

One other note: We updated the name of the kip pod to kip-provider-0 and missed updating the references in the README and troubleshooting doc. Apologies!
As @myechuri pointed out, you'll want to give the minikube manifests a shot. Minikube is a bit of a different setup for kip and you'll need to configure a couple additional items to make kip work (check out the instructions here: https://github.com/elotl/kip/blob/master/deploy/manifests/kip/overlays/minikube/kustomization.yaml#L1-L26):

Credentials for starting instances in AWS since kip can't use an instance profile if its running on a laptop. The credentials can be specified using a secret or directly into provider.yaml (but a secret is preferred).
You'll need to tell kip where it should launch instances (what VPC & subnet) in provider.yaml
You'll need to create an additional security group that kip can use to connect to instances it creates.  That security group should, at a minimum, open TCP port 6421 to traffic from your laptop.  That security group needs to be manually specified in provider.yaml as well: https://github.com/elotl/kip/blob/master/deploy/manifests/kip/overlays/minikube/provider.yaml#L27-L29

Feel free to comment here if things are unclear or if you run into issues.

I missed the minikube folder thx. However, I followed the instructions in:  https://github.com/elotl/kip/blob/master/deploy/manifests/kip/overlays/minikube/kustomization.yaml#L1-L26
with  provider.yaml
apiVersion: v1
cloud:
  aws:
    # You can also use environment variables for region, access and secret key.
    region: eu-central-1
    accessKeyID: ""
    secretAccessKey: ""
    vpcID: vpc-0eddxxxxxxxxxxx
    subnetID: subnet-0eexxxxxxxx
etcd:
  internal:
    dataDir: /opt/kip/data
cells:
  standbyCells:
  defaultInstanceType: t3.nano
  defaultVolumeSize: 15G
  bootImageSpec:
    owners:<PHONE_NUMBER>01
    filters: name=elotl-kip-*
  nametag: minikube
  itzo:
    url: https://itzo-kip-download.s3.amazonaws.com
    version: latest
# Optional, if kip needs to connect to cells via public IPs.
#  extraCIDRs:
#  - FILL_IN
 extraSecurityGroups:
 - sg-0bf4xxxxxxx
kubelet:
  cpu: "100"
  memory: "512Gi"
  pods: "200"

and kustomization.yaml
bases:
  - ../minikube
namespace: kube-system
configMapGenerator:
  - name: kip-config
    behavior: merge
    files:
      - provider.yaml
secretGenerator:
  - name: kip-secrets
    literals:
      - AWS_ACCESS_KEY_ID=AKIxxxxxxxxx
      - AWS_SECRET_ACCESS_KEY=1lXxxxxxxxxxxxxxxxxx

with that kustomiztion.yaml I get the error
Error: merging from generator &{0xc0007f6120 { } {{ kip-config merge {[] [provider.yaml] []} <nil>}}}: id resid.ResId{Gvk:resid.Gvk{Group:"", Version:"v1", Kind:"ConfigMap"}, Name:"kip-config", Namespace:""} does not exist; cannot merge or replace
error: no objects passed to apply

so I updated it with
.
.
configMapGenerator:
  - name: config
    behavior: merge
.
.
.

that runs but I get the error:
 kubectl -n kube-system logs kip-provider-0
error: a container name must be specified for pod kip-provider-0, choose one of: [kip kube-proxy] or one of the init containers: [init-cert]

Hi @joh4n ,

kubectl -n kube-system logs kip-provider-0
error: a container name must be specified for pod kip-provider-0, choose one of: [kip kube-proxy] or one of the init containers: [init-cert]

Can you please run kubectl logs -n kube-system kip-provider-0 kip ? kip-provider-0 is a pod with kip container in it, and we would be interested in logs from kip container.
Also, can you please confirm if you see kip-provider-0 in the output of kubectl get nodes? Thanks.

region: eu-central-1

@joh4n : kip trial is currently setup for us-east-1 region . Apologies for not calling this out in the readme, we will update readme. Can you please try us-east-1? Thanks.

This is with us-east-1 as a region.

(ignore fatal: ref HEAD is not a symbolic ref it is a set up issue in my zsh when I check out a tag and I have been to lazy to fix it)

@joh4n : let me repeat your steps with your your kustomization.yaml and see if i can reproduce your error. Will update by the end of the day.

@joh4n : i reproduced your CreateContainerConfigError error in my local setup. The cause of failure is below:
  Warning  Failed            17s (x5 over 70s)  kubelet, m01       Error: secret "provider-secret" not found

This is because of minikube kustomize overlay scripts being out of sync with base. Let me fix that and share an update by the end of day PT wednesday.

@joh4n : the issue is now fixed in master. There were two issues:

Instructions in the beginning of overlays/minikube/kustomization.yaml were outdated. This is what you followed and ran into failed apply.

We switched from listing AWS credentials in provider.yaml to specifying it via a secret in some of the deploy paths (minikube, provision your own cluster, burst kip workloads from on-prem cluster to AWS/GCP, etc). Some of the scripts in overlays/minikube assumed old format and some assumed new format. Apologies for this issue. i fixed overlays/minikube to use AWS credentials in provider.yaml by default and not rely on a secret.

Master now has fixes for both 1 and 2. https://github.com/elotl/kip/tree/master/deploy/manifests/kip/overlays/minikube/README.md has the latest instructions. i tested the latest instructions with latest bits. Please let me know how the latest bits work for you. Thank you for your patience!

Also, we've distributed our images across all AWS regions so you can now run in us-central-1.

@joh4n : checking in to see if you were able to make progress with your minikube env? Please let us know if there are any further issues. Thanks!


[DNM] used to test CI

Signed-off-by: Yang Keao<EMAIL_ADDRESS>Used to test #137

/tests

[2020-02-04T04:43:11.175Z] + git diff --quiet -- . ':(exclude)go.mod' ':(exclude)go.sum'

[2020-02-04T04:43:11.175Z] + git diff -- . ':(exclude)go.mod' ':(exclude)go.sum'

[2020-02-04T04:43:11.175Z] diff --git a/config/crd/bases/pingcap.com_podchaos.yaml b/config/crd/bases/pingcap.com_podchaos.yaml

[2020-02-04T04:43:11.175Z] index 00fb152..bfa1121 100644

[2020-02-04T04:43:11.175Z] --- a/config/crd/bases/pingcap.com_podchaos.yaml

[2020-02-04T04:43:11.175Z] +++ b/config/crd/bases/pingcap.com_podchaos.yaml

[2020-02-04T04:43:11.175Z] @@ -38,6 +38,9 @@ spec:

[2020-02-04T04:43:11.175Z]                description: 'Action defines the specific pod chaos action. Supported

[2020-02-04T04:43:11.175Z]                  action: pod-kill / pod-failure Default action: pod-kill'

[2020-02-04T04:43:11.175Z]                type: string

[2020-02-04T04:43:11.175Z] +            destroy:

[2020-02-04T04:43:11.175Z] +              description: Destroy  is an extra field to test CI

[2020-02-04T04:43:11.175Z] +              type: string

[2020-02-04T04:43:11.175Z]              duration:

[2020-02-04T04:43:11.175Z]                description: Duration represents the duration of the chaos action. It

[2020-02-04T04:43:11.175Z]                  is required when the action is `PodFailureAction`. A duration string

[2020-02-04T04:43:11.175Z] @@ -143,6 +146,7 @@ spec:

[2020-02-04T04:43:11.175Z]                type: string

[2020-02-04T04:43:11.175Z]            required:

[2020-02-04T04:43:11.175Z]            - action

[2020-02-04T04:43:11.175Z] +          - destroy

[2020-02-04T04:43:11.175Z]            - mode

[2020-02-04T04:43:11.175Z]            - selector

[2020-02-04T04:43:11.175Z]            type: object

[2020-02-04T04:43:11.175Z] + echo Please make fmt and make yaml before creating a PR

[2020-02-04T04:43:11.175Z] Please make fmt and make yaml before creating a PR

YES! CI failed


Oauth/request_token page does not exist

Trying to authenticate users with twitter.
I'm creating a post request to oauth/request_token as described here. But I keep getting this error:
error: [ { message: 'Sorry, that page does not exist', code: 34 } ]
  const client = new Twitter({
    consumer_key: 'KwG9Ni37yZTooeiSGTqebNwzN',
    consumer_secret: 'BTOvEtUNYShtEdovNNDfwUwA85NO97cg4QQvn24TjCIsjofRr5',
    access_token_key: '775341332155944960-KV2dUCGWRTMs4XijgzkLAXBY92rTI3F',
    access_token_secret: 'jxDnVDKeTpP7N7oc0Mu4LM5nfkI21lyxEcMAVthbq3I6k'
  });

  var tokenData = {
    oauth_callback: "https://example.com/twitter_request_token"
  }

  client.post('oauth/request_token', tokenData, function (error, data, response) {
    if (error) return console.log('error:',error);

    console.log(data);

    res.redirect('https://api.twitter.com/oauth/authenticate?oauth_token='+data.oauth_token);
  });

TLDR I think this won't work; you need to use some other library (such as request) to get the request_token. More detail:
The first problem is that node-twitter prepends an API version string to the request path, which isn't wanted for the oauth URLs. So your code as written requests this:
https://api.twitter.com/1.1/oauth/request_token
...but you want this:
https://api.twitter.com/oauth/request_token
You can work around the issue by passing a full URL for the first argument to client.post(), which will override the built-in base URLs.
However, your next problem is that, contrary to the documentation, the request_token endpoint's response format isn't actually JSON, it's url-encoded form data. node-twitter assumes response bodies are always JSON and it crashes with a parse error.
I had to use request.js to get this working. Here's sample code:
`
const request = require('request');
const options = {
headers: {
Accept: '/',
Connection: 'close',
'User-Agent': 'node-twitter/1'
},
oauth: {
consumer_key: MYKEY,
consumer_secret: MYSECRET,
token: MYAPPTOKEN,
token_secret: MYAPPTOKENSECRET,
},
method: 'post',
url: 'https://api.twitter.com/oauth/request_token',
form: {
'oauth_callback': MY_WHITELISTED_CALLBACK_URL,
}
};
request(options, function(error, response, data) {
console.log(data);
});
`


Bump v1.36.x branch's version to 1.36.0-pre1

Known failure: https://github.com/grpc/grpc/issues/25392


TST Install bitsandbytes for compile tests

Also, remove outdated comment.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


typescript bug: orderBy(Knex.Raw, order) missing definition

Environment
Knex version: 3.0.1
Database + version: postgres
OS: macos
Select applicable template from below.
If issue is about TypeScript definitions, tag @lorefnon
Bug

Explain what kind of behaviour you are getting and how you think it should do
knex.orderBy(knex.raw(..), order) accepts Knex.raw, but typescript fails

Error message
No overload matches this call.

Reduced test code, for example in https://npm.runkit.com/knex or if it needs real
database connection to MySQL or PostgreSQL, then single file example which initializes
needed data and demonstrates the problem.

https://stackblitz.com/edit/node-8bbxss?file=index.ts
knex('myTable').orderBy(knex.raw(`"jsonCol"->>'jsonVal'`), 'desc')

Is there a workaround for this in the meantime?


Add notification authorization token in POST Request

Point discussed  during Jan 18th call.
We propose to add a notificationAuthToken attribute in the POST Request. If the Carrier Billing client wishes to get notification for payment status update, Client provided a notification uri. Additionally this attribute provided the token to be used by the Carrier Billing server to POST the notification on the listener side.
We aligned this pattern with QoD API.
Outcome of the discussion:

OK for the team
Added in next release for both API flavor

I would like to understand the securization method indicated.
I am going to upload today Notifications Model in Checkout proposal as well. And would like to know about that securization approach

This is a good point to be discussed.
For now I've just followed what have been defined for the QoD API.
I guess the pattern should be the same for all API and probably approved in Commonalities.
The idea is:
If API consumer requests to get notification from Carrier Billing server, it has to provide to the Carrier Billing server:

the url ({notificationUrl}) where to POST notification and the token to be used.
the token to be passed ({notificationAuthToken})

Once Carrier Billing server has to send a notification, it has to send a
curl -X POST "https://{**notificationUri**}/notifications" -H "Authorization: Bearer {**notificationAuthToken**}" -H "Cache-Control: no-cache"   -H 'accept: application/json' -H 'Content-Type: application/json' -d  '{   "paymentId": "string",   "action": "prepare_payment",   "status": "succeeded",   "description": "string" }

Understood Explanation Ludovic

What do you think @bigludo7 about this issue.
Think we can set closed so far, until notifications track discussion is being carried over Commonalities

Hello @PedroDiez
Yes we can close it. Meanwhile it is already implemented in the Payment swagger version so we will not forget it.

ok, I close it @bigludo7, thanks for feedback


Changes in brightness up and down

I'm not sure why this happened, but when I watch some movies like The Martian I noticed that during the same scene brightness changed several times. Any setting to fix this?

Not currently, Could be part of https://github.com/natural-harmonia-gropius/hdr-toys/issues/5.
I think I should to use 99.7% peak instead of 100% peak (currently using) to fix this.

Not currently, Could be part of #5. I think I should to use 99.7% peak instead of 100% peak (currently using) to fix this.

Do you plan to make some test version with this change? I'll like to test it.

similar to issue #20

Please continue this issue in https://github.com/natural-harmonia-gropius/hdr-toys/issues/28.


feat: formdrawer支持antd^5.13.0版本,解决footer/extra不显示问题

Before submitting a pull request, please make sure the following is done...

[ ] Ensure the pull request title and commit message follow the Commit Specific in English.
[ ] Fork the repo and create your branch from master or master.
[ ] If you've added code that should be tested, add tests!
[ ] If you've changed APIs, update the documentation.
[ ] Ensure the test suite passes (npm test).
[ ] Make sure your code lints (npm run lint) - we've done our best to make sure these rules match our internal linting guidelines.

Please do not delete the above content

What have you changed?
Antd5.13.0版本更改了Drawer的结构，然后导致了在使用FormDrawer时FormDrawer.Footer、FormDrawer.Extra无法显示。这里修复了这个问题

@jymsy 这个仓库还有人维护么？


Enum registering?

I tried to find how to register enums, but couldn't see any indication of support for such in the examples nor the code. Is there a preferred workaround for this?

@bzar no, qml-rust does not support registering enums. Is it needed? Why not define enums in QML code?

Well, because they're already registered in another part of the application. I'm creating a thin translation layer for a library to be usable from a QML UI. Much of the library's interface depends on various enums, and not being able to register them directly results in either multiple versions of the same function to cover all the cases or creating some ugly magic number/string based enum emulation. This is only a doodle, so nothing of importance is lost for me  if there's no enum support, just wanted to ask if there's a way to do this. Thanks for the quick reply.

@bzar sorry for the inconvenience


Selection of house types

This may be something to pay attention to on the 13th.
When I was first presented with the site I tried to click the boxes to select house type rather than the names.
It was obvious once I'd worked it out - boxes show colour of line - but it did provoke an initial Huh? moment.

This should be fixed now

confirm working


Investigate QuarkusIntegrationTest as a replacement for camel-quarkus-integration-tests-process-executor-support

I think the new QuarkusIntegrationTest annotation could be used to achieve most of what integration-tests-process-executor-support does in terms of launching a Quarkus runner JAR or native binary. So it might make sense to switch some of the tests over to using it, such as:

main-command-mode
main-unknown-args-fail
main-unknown-args-ignore
master

https://quarkus.io/guides/getting-started-testing#quarkus-integration-test

Since NativeImageTest is now deprecated, we should switch anything that uses it to QuarkusIntegrationTest.


use-cli-effectively: Fix certificate path on Windows

Azure CLI is typically installed in Program Files (64-bit installer).

Closing PR as the Default Certificate Authority Bundle paths were updated in PR 4075.


Permission 'cloudkms.cryptoKeys.get' denied on init setup

TL;DR
Not enough permission to read from KMS
Expected behavior
No response
Observed behavior
The following error in VM logs of fresh setup
Error parsing Seal configuration: error checking key existence: rpc error: code = PermissionDenied desc = Permission 'cloudkms.cryptoKeys.get' denied on resource 'projects/$PROJECT_ID/locations/us-central1/keyRings/vault/cryptoKeys/vault-init' (or it may not exist).
Terraform Configuration
module "vault" {
  source     = "terraform-google-modules/vault/google"
  version    = "7.0.0"
  project_id = var.project_id
  region     = var.region

  network                   = "main"
  subnet                    = "main-01"
  network_subnet_cidr_range = "<IP_ADDRESS>/20"
  allow_public_egress       = false
  manage_tls                = true
  tls_cn                    = "some.domain.com"

  storage_bucket_force_destroy = true
  vault_version                = "1.13.2"
  vault_machine_type           = "e2-small"
  vault_max_num_servers        = 1
}

Terraform Version
Terraform v1.4.5
on darwin_amd64
+ provider registry.terraform.io/hashicorp/google v4.63.1
+ provider registry.terraform.io/hashicorp/google-beta v4.63.1
+ provider registry.terraform.io/hashicorp/local v2.4.0
+ provider registry.terraform.io/hashicorp/tls v4.0.4

Additional information
Was able to fix this using this configuration
## Fix for "7.0.0" version of module with 1.13.2 Vault version
resource "google_kms_crypto_key_iam_member" "ck-iam" {
  crypto_key_id = "${var.region}/vault/vault-init"
  role          = "roles/cloudkms.viewer"
  member        = "serviceAccount:${module.vault.service_account_email}"
}

Thanks @voxmaster. Do you mind sending a PR for this? Happy to review that for you.

@g-awmalik PTAL: https://github.com/terraform-google-modules/terraform-google-vault/pull/185


Remove standalone etcd specific play, cleanup host mode

Now etcd role can optionally disable etcd cluster setup for faster
deployment when it is combined with etcd role.

ci check this


feat: upgrade @opentelemetry/api to version 0.2.0

Updates the Opentelemetry packages to the latest version and updated the
code to reflect the API changes
This should closely resemble the API of 1.0.0 of the package which is expected
to be released shortly.
Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[X] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[X] Ensure the tests and linter pass
[X] Code coverage does not decrease (if any source code was changed)
[X] Appropriate docs were updated (if necessary)

Fixes #1304 🦕

@googlebot I consent.

there is a plan to release 1.0.0 of the @opentelemetry/api within days. Would be possible to do a release once this becomes available? My understanding is that this will be a safe version

Updated it with 1.0.0 of @opentelemetry/api :)

Oops, I forgot the Kokoro force-run.


⚠ ClamAV has degraded performance

In f419054, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 67 ms

Resolved: ClamAV performance has improved in ba9d398.


fix(regex): fix data file for regex 942362

Improved regex data file for rule 942362

Nice work!

Thanks for all feedback, I fixed all of them.

Comments need still to be addressed here.

@fzipi sorry, which comments do you think about?

I think he just meant my review comments :)

Thanks :smile:, then I think I don't need to to add anything to this PR. If you think, you can merge it. The regexp-assembly.py tool says there is no difference:
$ util/regexp-assemble/regexp-assemble.py compare 942362
Processing 942362, chain offset 0
Regex of 942362 has not changed

Congrats! And thanks! This was a hard one :)


Space travelers hub

Hello
Here is the link to our project.
We are two people in our group:

Pablo
Ulises

Hello @thasipablo && @ulises2607  👋 ,
Good job so far! 👍
There are some issues that you still need to work on to go to the next project but you are almost there!

Highlights 🍾

Created Kanban board

Required Changes ♻
Check the comments under the review.

[ ] You have 28+6 cards in your backlog but you are a team of 2. So, the cards in your backlog should be only 17.

Optional suggestions 💭
Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me @Lucas-Masaba in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Connect user to aggregation tables

This is the first iteration of the styling available datasets.
In this PR I've added the capability to connect admin0 and admin1 tables to the user database using Foreign Data Wrappers. All the needed info comes from the app_config file.
Also I've added one rake task to empower some selected users with this capability
// @rafatower @javisantana

:+1:

works for me :es:


Colour picker should be changed to display only the 3375 available colours

In case it helps, I generated a palette with only the 3375 pixels that are settable without approximations
Empty rows and columns could be deleted, the remaining spaces filled with the closest neighbour colour, and used with the current picker code

Another option would be to set the color inserting 0-15 values in text boxes and having the picker rectangle display a preview

I would prefer if there was a colour picker. Still not sure how to do this. Probably will leave it like this for now.

This makes me wonder: what about the motherboards MSI sells stating "16 million colours"? Smells like burnt..

As far as I know, all the motherboards that MSIRGB supports are advertised as having only 7 choices of colour. Those that do say 16 million colours all likely use a separate Renesas chip for LED control.

Fixed.


Follow on Server author considerations

It would be good to have info icons next to each field pointing into the Egeria website for the definitions
Local URL root, I suggest defaulting to the standard non-Docker one https://localhost:9443 would be better.
I am thinking local server type would be a dropdown.
E.g., does not need the last comma. In fact I am not sure I would put e.g. I have seen the label repeated here; I think that makes more sense.
It would be good if the wizard widget was at the top or it can scroll off the bottom
The current content is Just over a page - so I had to scroll. It would be better to have the basic content show in a page.
Instead of first step , second step, third step, I suggest basic , advanced, preview . The text underneath can be more detail.
I suggest setting the organisation name up front (prior to the wizard) so all server definitions use it. This ui would be setting up servers for an organisation. We may want to extend the env to supply this so the ui does not need to enter it.
If I fill in all the fields and press the button is hangs if you put in an invalid server name . Is that was you expect at this stage?
on the second page, the big forward and back buttons look strange. Maybe if they were not primary buttons and were arranged next to each other. I would have hoped for smaller buttons maybe with > and <. It would also be good to be able to navigate back by pressing the radio button on the wizard widget.
on the second screen, the access servers all need to be listed. Maybe 2 radio buttons , with all access services and choose access services.
It hung trying to get to the third screen.
It did create the config file for the new server on the view server :-) and the content looked as expected.
I did see some network errors in the log
Errors I see in the network errors in the log:
@dkneisly I have been talking with @planetf1 another maintainer. We suggest : Platform URL root instead of local URL root. We also think we should remove local from all the fields in the UI - we don't think that word helps. We could have Server Userid and Server password. The server userid would be that of the Server not GaryGeeke.

Do we need the platform URL at all? -- at least eventually (even if we do right now). Since we're already adding configuration in the view service @grahamwallis is using to have logical names/permitted set of platforms (and in that case servers) wouldn't we do the same with platforms here?
Though it does depend on the definition of 'server author' since someone has to configure that permitted set in the view server? (apologies, not entirely familar with the overall use case)

Some more feedback:
The serverURL root is only used for metadata repositories not all server types.  Need to think about the setting of the eventBusConfig since that is needed for cohort members.
The server type should not be there any more - and the server category should be a dropdown to select since it will determine what is shown on the next screen

@planetf1 Good point. Phase 1 of the config UI is issuing admin commands to the platform that the view server is running. So for phase 1 we need it. Phase 2 is to  have the admin calls coming into a view service. I think this is a phase 2 consideration, when we could adopt the approach that @grahamwallis is trail blazing. It is also a value add for using a view service. Phase 2, there is potentially a bootstrap issue that we cannot use this Ui to configure the view service that it needs.

I think it's fine to come back in phase 2... but does bring up the fact we need to consider that initial bootstrap. What are the defaults, and what can be pre-configured ie through properties/parameters be it to the jar or a container -- this will also be quite interesting in the operator model on k8s where the operator will actually launch the platform entirely, and again will need to be able to configure as needed (it can use the admin services also)


Purview portal is partially loading - Network Error

Purview portal (new) is not loading:
Error: Network Error
at e.exports (https://res.cdn.office.net/scc-resources/resources/ww/scc/static/axios/0.26.1/axios.js:1:8711)
at g.onerror (https://res.cdn.office.net/scc-resources/resources/ww/scc/static/axios/0.26.1/axios.js:1:7532)

@akuthinil
It would be great if you could add a link to the documentation you are following for these steps? This would help us redirect the issue to the appropriate team. Thanks!

Hello!
https://learn.microsoft.com/en-us/purview/register-scan-power-bi-tenant?tabs=Scenario1
[https://learn.microsoft.com/en-us/media/open-graph-image.png]https://learn.microsoft.com/en-us/purview/register-scan-power-bi-tenant?tabs=Scenario1
Connect to and manage a Power BI tenant same tenanthttps://learn.microsoft.com/en-us/purview/register-scan-power-bi-tenant?tabs=Scenario1
This guide describes how to connect to a Power BI tenant in the same tenant as Microsoft Purview, and use Microsoft Purview's features to scan and manage your Power BI tenant source.
learn.microsoft.com
Data Map page is not loading at this step, giving the error message provided in the original issue:
[cid:b9ce4457-ccdc-414b-a541-92defb7cf63c]

From: Naveenommi-MSFT @.>
Sent: Tuesday, September 12, 2023 17:46
To: MicrosoftDocs/azure-docs @.>
Cc: Andras Kuthi @.>; Mention @.>
Subject: Re: [MicrosoftDocs/azure-docs] Purview portal is partially loading - Network Error (Issue #114620)
You don't often get email from @.*** Learn why this is importanthttps://cas5-0-urlprotect.trendmicro.com:443/wis/clicktime/v1/query?url=https%3A%2F%2Faka.ms%2FLearnAboutSenderIdentification&umid=e78674c4-60d9-4b09-923f-2cc59042e90a&auth=9917aa3f8284aac8929e71cb9fee6c5a594dddc5-692b6fb08e05140f7bfaaa241d98abd6982214b4
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
@akuthinilhttps://cas5-0-urlprotect.trendmicro.com:443/wis/clicktime/v1/query?url=https%3A%2F%2Feur02.safelinks.protection.outlook.com%2F%3Furl%3Dhttps%253A%252F%252Fgithub.com%252Fakuthinil%26data%3D05%257C01%257Cakuthi%2540nilfisk.com%257Cd47d1dc777664fb2baae08dbb3a78120%257C753c5d9905be4237b4c5fdb2e6b32ab2%257C0%257C0%257C638301304245258577%257CUnknown%257CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%253D%257C3000%257C%257C%257C%26sdata%3DSrIoavnAZ%252FvJ78AgDVnFmExylYUYzJcFlVb6wXiWW6s%253D%26reserved%3D0&umid=e78674c4-60d9-4b09-923f-2cc59042e90a&auth=9917aa3f8284aac8929e71cb9fee6c5a594dddc5-937231624e7acff78d9cf68493dfe16cf22b21a8
It would be great if you could add a link to the documentation you are following for these steps? This would help us redirect the issue to the appropriate team. Thanks!
—
Reply to this email directly, view it on GitHubhttps://cas5-0-urlprotect.trendmicro.com:443/wis/clicktime/v1/query?url=https%3A%2F%2Feur02.safelinks.protection.outlook.com%2F%3Furl%3Dhttps%253A%252F%252Fgithub.com%252FMicrosoftDocs%252Fazure-docs%252Fissues%252F114620%2523issuecomment-1715983943%26data%3D05%257C01%257Cakuthi%2540nilfisk.com%257Cd47d1dc777664fb2baae08dbb3a78120%257C753c5d9905be4237b4c5fdb2e6b32ab2%257C0%257C0%257C638301304245258577%257CUnknown%257CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%253D%257C3000%257C%257C%257C%26sdata%3DUe5zomEtZ4QAPGkE0h%252FcYKkQdK3XbzVU2bLnS%252B%252FZy3Q%253D%26reserved%3D0&umid=e78674c4-60d9-4b09-923f-2cc59042e90a&auth=9917aa3f8284aac8929e71cb9fee6c5a594dddc5-3e879e91bd663cdb1d36ef7e3c7a15419a289947, or unsubscribehttps://cas5-0-urlprotect.trendmicro.com:443/wis/clicktime/v1/query?url=https%3A%2F%2Feur02.safelinks.protection.outlook.com%2F%3Furl%3Dhttps%253A%252F%252Fgithub.com%252Fnotifications%252Funsubscribe-auth%252FA23ZSPW6E7FWFQZVZ4IM523X2B7XHANCNFSM6AAAAAA4U3L6K4%26data%3D05%257C01%257Cakuthi%2540nilfisk.com%257Cd47d1dc777664fb2baae08dbb3a78120%257C753c5d9905be4237b4c5fdb2e6b32ab2%257C0%257C0%257C638301304245258577%257CUnknown%257CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%253D%257C3000%257C%257C%257C%26sdata%3DEGheAqOFioNT%252FWDXtOzVzyyim1oEyftghUgONRnqfy4%253D%26reserved%3D0&umid=e78674c4-60d9-4b09-923f-2cc59042e90a&auth=9917aa3f8284aac8929e71cb9fee6c5a594dddc5-0c0042cb64c8d3595b535b95cf8305661483d3f6.
You are receiving this because you were mentioned.Message ID: @.***>

@akuthinil
Thank you for bringing this to our attention.
I've delegated this to content author @whhender, who will review it and offer their insightful opinions.

@akuthinil - There are many reasons you may receive a network error when attempting to connect to a resource or when using an Azure service.
For these kinds of errors, please reach out to Microsoft Support.

#please-close


Recents menu needs "clear recents" or "edit..."

Edit recents allows you to selectively remove items from recents

recents menu now has reset (clear) and edit


Can't connect to Mysql Docker Container

This is my mysql configuration inside .env file
DB_CONNECTION=mysql
DB_HOST=<IP_ADDRESS>:32772
DB_DATABASE=adonis
DB_USER=xxx
DB_PASSWORD=xxx

I got this error
$ ./ace migration:run
Error: getaddrinfo ENOTFOUND <IP_ADDRESS>:32772 <IP_ADDRESS>:32772:3306

Can you help me?

Host and port needs to be different
DB_HOST=<IP_ADDRESS>
DB_Port=32772

$ ./ace migration:run
Error: connect ECONNREFUSED <IP_ADDRESS>:3306

Still confused, DB_PORT variable seems does not work.

Yes coz the config file is not using it. you need to define it in config/database.js file

Success, you should add this to documentation, or default code. Thank you so much
$ ./ace migration:run
√ Database migrated successfully in 504 ms

@thetutlage i create pull request for this https://github.com/adonisjs/adonis-app/pull/53 , very happy with this framework, thank you 😄

@arryanggaputra Can't able to run fresh install of adonis into docker.
  1 # Define the image
  2 FROM node:6.3
  3
  4 ENV NODE_ENV development
  5 ENV APP_PATH /usr/src/app
  6
  7 # Create the app directory
  8 RUN mkdir -p $APP_PATH
  9
 10 # Bundle app source
 11 COPY . $APP_PATH
 12 COPY .env $APP_PATH
 13 WORKDIR $APP_PATH
 14
 15 # Install
 16 RUN npm install
 17
 18 # Run it in port 3333
 19 EXPOSE 3333
 20
 21 # Start it
 22 CMD [ "npm", "start" ]

And tried to run image as
docker run -p 44444:3333 -d singhnavdeep/adonis-fresh
But not running. Any clue?

@navdeepsingh Here is a possible solution, but I think you should have opened another issue, the first reason is because this one is closed, so not many people see your question, the second reason is because it is not the same problem, this one is about the db and your problem is about the http conecction. I was having the same issue and solve it by removing the HOST key from the .env file or changing its value to <IP_ADDRESS>, it worked for me.


Community profile not being downloaded

The skin is not downloading my community profile from the steam servers.
The skin itself is hanging on Detecting Steam games and upon turning on the log, I can see that it's hanging on Attempting to download file:    http://steamcommunity.com/profiles/[id number here]/games/?tab=all&xml=1    communityProfile.txt    OnCommunityProfileDownloaded    OnCommunityProfileDownloadFailed
It was working normally until a short while ago, but this has persisted across multiple restarts and even after downloading beta 5

Five minutes after the hang, it has finally updated, but has lost track of all playtime. I can see in the log that an error did occur while downloading, Download failed (res=0x800C000B, COM=0x00000000): http://steamcommunity.com/profiles/[id number here]/games/?tab=all&xml=1 (Lauhdutin\Main.ini - [Downloader]), if that's any help in troubleshooting.

How long has this been going on?
I just tested completely removing my copy of games.json and all backups to force everything to reset to what can be gathered from the various platforms. No issues with accessing my Steam community profile nor with acquiring the hours played from that profile.
You removed your ID from the log message you posted so I cannot test if the page loads, but have you done that via a browser? If the issue goes away, then it might have been an issue e.g. with your connection to the content delivery network that Valve use for their Steam services.
I'm not sure how the skin would have lost track of the hours played stat short of the names of games being changed. If you had an existing copy of games.json with the hours played stats intact, then the skin would always override whatever values it got from e.g. the Steam community profile with the values stored in that file provided that the values in games.json were greater than those gathered from the community profile.


dasel complete jq replacement? Problem with maps

Describe the desired outcome
Nice tool, but I'm having a problem to achieve a particular output. Assuming the following input:
{
  "Admin": {
    "ClientID": "eBZ5kp",
    "ClientSecret": "rSiGsF"
  },
  "User": {
    "ClientID": "Y1Btrp",
    "ClientSecret": "pHfeK-"
  }
}

I want to use the ClientIDs in a subsequent dasel search on another file with ClientID as the search item (with some shell glue). I wasn't able  to achieve the desired results with dasel, which I could achieve fairly easy with jq:
jq -r '.[].ClientID'
eBZ5kp
Y1Btrp

Attempts
dasel -s '.' reproduced the input file, but I could not achieve the same result as with jq.
I went through the docs a couple of times, but I didn't saw anything that would result in the desired outcome. I typically would see errors like:
dasel select -f /tmp/clients.json -p json -s '.ClientID
Error: could not query node: could not find value: no value found for selector: .ClientID: map[......

and various combinations of ., [], [*] and .ClientID. Maybe I missed something obvious.

You can use the search selector, looking for a key value of ClientID:
echo '{
  "Admin": {
    "ClientID": "eBZ5kp",
    "ClientSecret": "rSiGsF"
  },
  "User": {
    "ClientID": "Y1Btrp",
    "ClientSecret": "pHfeK-"
  }
}' | dasel -p json -m --plain '.(?:keyValue=ClientID)'
eBZ5kp
Y1Btrp

The [] and [*] selectors are only usable with arrays. If this were an array of objects then you could do something like .[*].ClientID.
I could look at making the [*] selector also support map values in the future. If you need that then let me know 🙂

It's actually quite easy to add the any index selector and dynamic selector for maps as well as arrays so I'll go ahead and implement that

Hey, thanks a lot.
First of all I'm on Arch Linux and when I installed I only got version 1.6.2. I have now updated to 1.7.0.
And yes indeed I didn't use the keyValue search thing. And it could have been the absence of -m also played a role.
I'm happy now, thanks again.

The search selector docs are here: https://github.com/TomWright/dasel#search
There is a basic example with key based searching there already but let me know if you don't think that's good enough and I can update the readme.

No, I think everything is good. I remember trying (?:-, but I guess the implications of keyValue/-  didn't really sink in (and possibly the absence of the -m flag).  So alas, during trying I simply didn't hit the right combination.

OK good to hear. On a side note I've just released v1.8.0 which will allow you to use a simpler selector of .[*].ClientID.


Players pearled in tet shard respawn in tet shard - not candyland

Pretty much the title. I was pearled and spawned in tet. Currently happening to a few others too.

Could be players pearled in any shard actually spawn in tet. Some guys built a trap to kill them as they spawn


Issue #2236 : Customized the default scrollbar

closes #2236

Preview the PR here
Before customizing

After customizing
Without hover or drag

When hovering or dragging

Looks Good @PritamSarbajna


Add wezterm.on emitters

A user should be able to run code when certain events happend, like having a toast notification when writing the state to a file.
wezterm.on events are a great way to allow a user to have a custom callback for events. wezterm.on should be added where users might want to run a callback function, before and/or after an event like writing the state.
See #25 for more info on this.
The events should be named such that they do not interfer with events from other users or plugins. They should thus have the following structure resurrect.<function_name>.<event_name>. See example here

closed by #35


Google analytics

Description
changed google analytics to use react-ga and init in App. Set up pageview & events (more events can be added to various event handlers and more things are added to FE.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Change Status

[ ] Complete, tested, ready to review and merge
[x] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?

[ ] Test A
[ ] Test B

Checklist

[ ] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] There are no merge conflicts

 Google Analytics


[Enhancement][backport] Optimize global lock when creating table/mv/view (#31951)

This is a backport from #31951.
What type of PR is this:

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[ ] 3.2
[x] 3.1
[x] 3.0
[x] 2.5

[FE Incremental Coverage Report]
:heart_eyes: pass : 38 / 47 (80.85%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/server/LocalMetastore.java
30
38
78.95%
[484, 487, 504, 2179, 2208, 2223, 2226, 2227]

:large_blue_circle:
com/starrocks/common/util/StringUtils.java
7
8
87.50%
[39]

:large_blue_circle:
com/starrocks/catalog/Database.java
1
1
100.00%
[]

[BE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

@Mergifyio backport branch-3.1

@Mergifyio backport branch-3.0

@Mergifyio backport branch-2.5

[FE Incremental Coverage Report]
:heart_eyes: pass : 38 / 47 (80.85%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/server/LocalMetastore.java
30
38
78.95%
[484, 487, 504, 2179, 2208, 2223, 2226, 2227]

:large_blue_circle:
com/starrocks/common/util/StringUtils.java
7
8
87.50%
[19]

:large_blue_circle:
com/starrocks/catalog/Database.java
1
1
100.00%
[]

[BE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)


Cannot use get or get_multi filter with like string

Hello,
I'm currently utilizing FastCRUD with the FastAPI boilerplate, but I'm unsure how to implement a filter to retrieve a string from a field similar to the SQL 'LIKE' query, as shown below:
count_projects = await crud_projects.count(db=db, project_code=f"{short_code}%")
I need to count the projects whose project_code begins with a specific short_code (for example, "ABC"). Could you assist me in resolving this issue?
Thank you!

PR #85 will fix this, it's almost done

While waiting for the resolution of the previous issue, I have another question regarding nested join query formats.
I aim to retrieve a project and its nested objects based on client_id, department_id, and assignee_id as follows:
db_project = await crud_projects.get_joined(
    db=db, id=id, is_deleted=False, nest_joins=True, schema_to_select=ProjectRead,
    joins_config=[
        JoinConfig(
            model=Client,
            join_on=Project.client_id == Client.id,
            join_prefix="client",
            schema_to_select=ClientRead,
            join_type="left",
        ),
        JoinConfig(
            model=Department,
            join_on=Project.department_id == Department.id,
            join_prefix="department",
            schema_to_select=DepartmentRead,
            join_type="left",
        ),
        JoinConfig(
            model=User,
            join_on=Project.assignee_id == User.id,
            join_prefix="assignee",
            schema_to_select=UserReadSub,
            join_type="left",
        ),
    ],
)

However, I encounter an issue: when a foreign key is null, the object is still returned but with all fields set to None.
{
    'id': 1,
    'project_code': 'ABC1',
    'status': 'Approved',
    'name': 'Project Example',
    'start_date': datetime.datetime(2024, 6, 5, 9, 26, 48, 914000, tzinfo=datetime.timezone.utc),
    'end_date': datetime.datetime(2024, 6, 5, 9, 26, 48, 914000, tzinfo=datetime.timezone.utc),
    'client': {
        'name': None,
        'contact': None,
        'phone': None,
        'email': None,
        'id': None
    },
    'department': {
        'id': 1,
        'name': 'Department Name'
    },
    'assignee': {
        'id': None,
        'name': None,
        'username': None,
        'email': None,
        'phone': None,
        'profile_image_url': None,
        'department_id': None,
        'company_id': None
    }
}

How can I modify the query so that if a nested object's foreign key is null, the entire nested object is returned as None (e.g., 'client': None)?
Thank you.

This is a bug, I'll fix it!

Closed by #85


Update the open source MLOps repo with data annotation

Picked out the most interesting tools from this repo built by ZenML. Added a new section to our repo for data annotation. Include a link to ZenML’s repo as well.

whylogs and evidently can be used for data validation as well.


Feature: accept RGB(A) tuple as colormap

🚀 Feature
Just as our add/view_image() function accepts a string "red" for the colormap value (meaning you want a colormap that goes from black to red), it should accept an RGBA tuple, meaning you want a linear colormap that goes from black to whatever color that is.
The alternative is to import either napari or vispy to create a colormap object manually (which means heavy dependencies for plugins is that's the only thin they're using it for)
originally mentioned in https://github.com/napari/napari/pull/2936#issue-679256433

agreed, seems like something we should add 👍🏼


Added InfluxDB client for Perl to api.md

Hi
I have added my InfluxDB Perl client to the client library page for 0.13.

thanks, @raphaelthomas, looks good!

thanks for merging @beckettsean.


unable to retrieve StnryAssetEnvSrcCnfg

Summary
Not able to retrieve metadata using the sfdx force:source:pull in a scratch org that has net zero cloud enabled.
We can’t retrieve the specified metadata object: StnryAssetEnvSrcCnfg. Certain metadata types, like Default are not currently supported by the CLI.
Steps To Reproduce:

Create a scratch org with net-zero cloud
Go to  Setup Object Manager -> Stationary Asset Environmental Source -> create a record type
Go to Setup -> Feature Settings ->  Net Zero  -> Stationary Asset Environmental Source Record Type Configuration.
Click New and create Stationary Asset Environmental Source Record Type Configuration record use the record type created in step 2.
run force:source:pull or force:source:pull -f

Expected result
Should be able to retrieve metadata from scratch org
Actual result
not able to retrieve metadata from scratch org
System Information
{
"cliVersion": "sfdx-cli/7.142.1",
"architecture": "darwin-x64",
"nodeVersion": "node-v16.14.0",
"pluginVersions": [
"@oclif/plugin-autocomplete 0.3.0 (core)",
"@oclif/plugin-commands 1.3.0 (core)",
"@oclif/plugin-help 3.3.1 (core)",
"@oclif/plugin-not-found 1.2.6 (core)",
"@oclif/plugin-plugins 1.10.11 (core)",
"@oclif/plugin-update 1.5.0 (core)",
"@oclif/plugin-warn-if-update-available 1.7.3 (core)",
"@oclif/plugin-which 1.0.4 (core)",
"@salesforce/sfdx-plugin-lwc-test 0.1.7 (core)",
"alias 1.2.1 (core)",
"apex 0.11.0 (core)",
"auth 1.8.1 (core)",
"community 1.1.4 (core)",
"config 1.3.23 (core)",
"custom-metadata 1.0.12 (core)",
"data 0.6.9 (core)",
"generator 1.2.2 (core)",
"info 1.3.0 (core)",
"limits 1.3.0 (core)",
"org 1.11.2 (core)",
"salesforce-alm 52.5.0 (link) /Users/abhishektangudu/Documents/GitHub/toolbelt/node_modules/salesforce-alm",
"schema 1.1.0 (core)",
"sfdx-cli 7.142.1 (core)",
"source 1.8.18 (core)",
"telemetry 1.4.0 (core)",
"templates 54.2.0 (core)",
"trust 1.1.0 (core)",
"user 1.7.1 (core)"
],
"osVersion": "Darwin 21.4.0"
}
Additional information
Feel free to attach a screenshot.

Hello @abhishektangudu, thanks for the issue. Could you please provide direction on how to "Create a scratch org with net-zero cloud"? I am not able to find any information on how this is done. Or provide a link to a scratch org repo that I can clone and create. Thanks!
Just curious, why do you have an old version of salesforce-alm linked in your sfdx version --core output?

Closing this issue due to inactivity, please let us know if you experience this error using the latest stable version, thanks!


Add tilde to bs fallback href

Minor fix to bootstrap fallback href

@guardrex,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot


It's not said about .appxrecipe for UWP test pipeline

In the documentation it's mentioned only **\*test*.dll, but it's possible to use .appxrecipe for UWP test pipeline.
Although I still do not understand why it's failing in the build, but tests are running. It would be very helpful if you add an example of how to configure Visual Studio Test task for UWP.
Here I created a repo with an example: https://dev.azure.com/melashkina0755/UWP_App_With_Tests
Pipeline YAML:
# Universal Windows Platform
# Build a Universal Windows Platform project using Visual Studio.
# Add steps that test and distribute an app, save build artifacts, and more:
# https://aka.ms/yaml

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'x86|x64'
  buildConfiguration: 'Release'
  appxPackageDir: '$(build.artifactStagingDirectory)\AppxPackages\\'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    platform: 'x86'
    solution: '$(solution)'
    configuration: '$(buildConfiguration)'
    msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(appxPackageDir)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload'

- task: VSTest@2
  inputs:
    platform: 'x86|x64'
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\UnitTestProject1.build.appxrecipe
      !**\*TestAdapter.dll
      !**\obj\**
    searchFolder: '$(System.DefaultWorkingDirectory)'

Tests are green: https://dev.azure.com/melashkina0755/UWP_App_With_Tests/_build/results?buildId=3&view=ms.vss-test-web.build-test-results-tab
Build itself failed: https://dev.azure.com/melashkina0755/UWP_App_With_Tests/_build/results?buildId=3

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

ID: 16bd8dd1-7650-8c18-2553-38a8bc54e892
Version Independent ID: f9fa517a-7adc-e327-d12e-256295a1ed52
Content: Visual Studio Test task - Azure Pipelines
Content Source: docs/pipelines/tasks/test/vstest.md
Product: devops
Technology: devops-cicd
GitHub Login: @PBoraMSFT
Microsoft Alias: pbora

@aosyatnik -- Anna, thank you for your detailed feedback.  You may find some answers here:

Azure DevOps on Stack Overflow
Azure DevOps Support Bot

@PBoraMSFT -- Prachi, please look into this issue for potential documentation updates.

@aosyatnik - I see in the pipeline sample that you have provided that you are using Microsoft hosted agents. Microsoft hosted agents are not equipped to run UWP workloads as they are Server OS images.
There are multiple things to do here.

Add an E2E UWP example in the documentation. Can I please request you to file a separate issue for that, so that all aspects of UWP development (and not just test) can be addressed in that?
Some tests seem to be succeeding even though the error messages seem to indicate that the app didn't start. That looks suspicious. Can you try running your pipeline on a self hosted agent? If you still run into issues with running the tests, pls loop back on this thread and we can take it forward.

Hi, @PBoraMSFT , thank you for your reply.

I tried to run on self-hosted agent. I created another branch called with_self_hosted_agent
Here is the result: https://dev.azure.com/melashkina0755/UWP_App_With_Tests/_build/results?buildId=8

As self-hosted agent, I used my laptop.

Tests are not running at all (the same error that it couldn't connect to the test process), although build is successful.

@aosyatnik - I see that the yaml suggests that the build was done for x86 but the tests are run for x86 and x64. Can you please check to make sure that the architecture between the build and test task match?

Hi @SadagopanRajaram , thank you for suggestions. I tried to run only x86. No good result.
Here is a build for Windows agent (1 test passed): https://dev.azure.com/melashkina0755/UWP_App_With_Tests/_build/results?buildId=9
Here is a build for Self-hosted agent (no test assed): https://dev.azure.com/melashkina0755/UWP_App_With_Tests/_build/results?buildId=10
I'm wondering why there is no good working example among all Microsoft examples? =\

@aosyatnik, from the logs it seems the task picks up two .appxrecipe files. Out of which the second one is failing.
"d:\a\1\s\UnitTestProject1\bin\x86\Release\UnitTestProject1.build.appxrecipe"
"d:\a\1\s\UnitTestProject1\bin\x86\Release\Upload\UnitTestProject1.build.appxrecipe"

My guess is the second one comes from the parameter /p:UapAppxPackageBuildMode=StoreUpload. This could be happening because a StoreUpload version does not support deploying.
It seems a little unnecessary to run tests on both of these files. So you can either try to remove it or filter this particular appxrecipe file by giving this specific filter **\Release\UnitTestProject1.build.appxrecipe.
cc @mayankbansal0187

Hi @karanjitsingh . Thank you it finally worked! I can see running test AND build didn't fail! Great work! 💃
Here is a build: https://dev.azure.com/melashkina0755/UWP_App_With_Tests/_build/results?buildId=13&view=logs
@PBoraMSFT as build issue is resolved. We can think about adding it to documentation. I find it useful to have such an example for UWP. Where issue should be opened?

For anyone who is having issues with the UWP test task. This is the right YML file:
# Universal Windows Platform
# Build a Universal Windows Platform project using Visual Studio.
# Add steps that test and distribute an app, save build artifacts, and more:
# https://aka.ms/yaml

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'x86|x64'
  buildConfiguration: 'Release'
  appxPackageDir: '$(build.artifactStagingDirectory)\AppxPackages\\'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    platform: 'x86'
    solution: '$(solution)'
    configuration: '$(buildConfiguration)'
    msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(appxPackageDir)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload'

- task: VSTest@2
  inputs:
    platform: 'x86|x64'
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\Release\UnitTestProject1.build.appxrecipe <-- HERE IS FIX
      !**\*TestAdapter.dll
      !**\obj\**
    searchFolder: '$(System.DefaultWorkingDirectory)'

@aosyatnik - thanks for the feedback and I am glad to see that Karan was able to help you get unblocked. I have filed 2 issues for additional documentation:
https://github.com/MicrosoftDocs/vsts-docs/issues/6240
https://github.com/MicrosoftDocs/vsts-docs/issues/6239

@aosyatnik @PBoraMSFT thanks for this post ! Shed some light on uwp testing infrastructure.
Wanted to ask for clarification on the build agent: do we need a selfhosted agent ? Aka no way around hosted agent images just because they are windows server skus ?
If so, what extra steps did you have to take in configuring the selfhosted agent (assuming that vs, sdk is already installed ) : Is turning developer mode on enough ?

Hi @mateialexandru .
I used ms agent, with a self-hosted agent it didn't work. SO you do not need a self-hosted agent. You might check my branch in repo here: https://dev.azure.com/melashkina0755/UWP_App_With_Tests/_git/81b0f53a-f8d9-46da-a794-36706ca7bbf5
There you will find azure-pipelines.yml file. There you can find
pool:
  vmImage: 'windows-latest'

This is ms agent:


tlstran_pipe_stop should free cparam

fixes #1519 Several memleaks in TLS
NanoMQ issue: https://github.com/nanomq/nanomq/issues/1519
p->tcp_cparam that is allocated in tlstran_pipe_nego_cb is not freed by tlstran_pipe_stop, instead the variable is directly set to NULL resulting in memory leak.

Thank you for your contribution! But we usually do frees in pipe_fini not pipe_stop. We will appreciate it if you can move all these to tlstran_pipe_fini, just like what we do in tcptran_pipe_fini. Or should I do it for you?

Some modification we did on broker_tcp needs to be synced to broker_tls

well done

Thank you @OdyWayne


Add targeting labels to Intro/Non Intro modules, Appendices

Link to the documentation: https://docs.google.com/document/d/1_LjLkeY-9ZkDBvMU1Je7S0AaVOTak37xT0J8pFd3H4E/edit
Related cnx-recipes issue: https://github.com/openstax/cnx-recipes/issues/4430

@MartaSztuka Information for testing purposes: Link to github page containing the texting-anchor book: https://github.com/openstax/osbooks-ce-styles-test/testing-anchor recipe: testing-anchor
Screnshot for reference showing how the marked linkes should look like:

PASSED
Testing Anchor

Accounting 1

Accounting 2


Add LOVR_USE_LOGO option;

Saves 20kb, may be worth for web build, or for "release" builds that don't need the logo.

Closing this, I think the nogame screen is a little too ugly without the logo.  It would be cool if it was rendered with a shader instead of a raster image.


Adding UI config for IDs

Adding support for configuring any of the 4 IDs via the text fields on the tag template.

Hey @wyattr, is it also possible to enhance the tag to accept unhashed email address & hash it? This is the only reason I'm using a 3rd-party template.