Merge the contents of config.yaml and config.*.yaml, fixes #3598

The Problem/Issue/Bug:

#3598

Before this fix, adding a web_environment key to an override config file (config.SOMENAME.yaml) would completely replace the content of that string list of environment variables. A fix needs to allow some reasonable notion of a merge, preserving old keys if not restated, updating them if changed.
How this PR Solves The Problem:
This PR modifies ddevapp.ReadConfig() to special case the web_environment item in the config data structure. In the WebEnvironment case, for config.yaml and config.override.yaml (any overriding name),

The original keys are added to a list
The new keys are compared with an regexp and will match the key portion of key=value. If the key matches for an existing item, the new key=value will replace it.
Any item in the new version of web_environment that did not match any in the old version will be put at the end of the list.

The PR also adds a bit of testdata and a unit test that confirms

Old items that are not matched are preserved.
New items with the same key will replace the old.
Other new items are indeed added.

Manual Testing Instructions:

Note the contents of the web_environment section of your config.yaml file.
Add these test keys to that section, say,

web_environment:
- TESTKEY1=oldvalue
- TESTKEY2=notchanged

Create a config.some-name.yaml file with at least this structure.

web_environment:
- TESTKEY1=newvalue
- TESTKEY3=notinold

Run ddev restart, and do ddev exec printenv | grep TESTKEY to see the keys on the web container.
You should see TESTKEY1 with its new value, TESTKEY2 preserved and with its original value, and TESTKEY3 as well.

Automated Testing Overview:

The PR  adds a bit of testdata and a unit test that confirm the fix:

Test data is in pkg/ddevapp/testdata/TestConfigMergeItems/.ddev and includes a simple config.yaml and config.override.yml file, both implementing the web_environment key.
Unit test TestConfigMergeItems() that has asserts for the following:

Old items that are not matched are preserved.
New items with the same key will replace the old.
Other new items are indeed added.

Related Issue Link(s):
Release/Deployment notes:

In all cases other than web_environment, the current clobber behavior is maintained. Anyone with a config file that duplicates the keys in config.yaml should see no change in behavior, since the new code will guarantee that all the keys in the override file will still be present and as they are in the override file.
I don't see any need anything different done in deployment unless you want to override the web_environment.

I was hoping for a full merge of the read apps, because that solves both environment and hooks. Hooks are more complex, because they are two-levels deep, and of course future config might include other multi-level elements.

So, with a couple exceptions, items typed as []string.
I looked at type DdevApp struct with the following questions in mind:

How many items are likely to be each item. If the number is small, then using a clobber strategy is less work for a developer.
Why would a developer want to "edit" their config.yaml settings for that particular item.  Is there a use case we can discern.
Are there use cases for removal of items? I'd say yes for additional_hostnames, additional_fqdns, omit_containers, webimage_extra_packages, dbimage_extra_packages (all simple []string), and hooks (a map).
Is there a reasonable way to indicate removal?

There was for web_environment: KEYNAME= is how you'd do it. I'm not sure if this really works with ddev's current code, since I expect the items are parsed and passed to os,Setenv. Not sure if it will be happy with an empty string, so a test is probably needed.
Not obvious how to handle any of the other []string variables. We could prefix the string with a - (dash) or !, but we'd need to document this pretty well. Might want to use a regexp to prevent trouble with people doing things we don't expect.
Items with map structures probably can do removal; for hooks, for example a removed set of hooks would be something like post-start: []. Removing a key from the []string list of a key like post-start has the same dev experience issues as the other []string, but likely could be solved the same way.

Can this be split into another PR later on, with us just solving the items we know developers are asking for. Sounds like web_environment and hooks are the top ask.

Generally speaking, adding items is easy, removing items will take a bit more work.

There are a number of struct-merge hits on google, https://www.google.com/search?q=golang+merge+structs&oq=golang+merge+stru&aqs=chrome.0.0i512j69i57j0i512l2j0i22i30l6.3528j0j7&sourceid=chrome&ie=UTF-8, I haven't tried them out. https://github.com/imdario/mergo looks like it has real potential, and looks to be maintained.
(There are also some yaml-merge hits, but I don't think the yaml is necessarily the thing to merge since we have everything already successfully into structs, but doing it at the yaml level may be appropriate as well.)

A library would be helpful, since manipulating data structures once they have been marshalled typically requires the Reflection API. Be afraid. Be very, very afraid.  Going around go's type checking can be bad juju.

Additional question: do you have any idea why TestDdevFullSiteSetup might be failing for Mac/Mutgen? I'm not clear how this would relate to changing the behavior of ReadConfig().

Yes, web_environment and hooks are the key asks, the only ones I've ever heard. But a generic approach would cover all (but would not allow removal)
The only failure I see right now (just restarted it) is https://buildkite.com/drud/ddev-macos-mutagen/builds/1924#0181e880-0907-4f9c-b330-b24a655f2a10, and it was a network or upstream issue. But the mac and Windows tests often fail because Docker Desktop is not that reliable, and also because the tests are mostly end-to-end so are impacted by upstream and network issues.
1, type DdevApp struct: It can be whatever it is. Some people have lots of environment variables or lots of hooks.
2. "Why would a developer want to "edit" their config.yaml settings for that particular item. Is there a use case we can discern" - Not sure I understand the question. People edit and override all the time, using ddev config or editing config.yaml or editing config.*.yaml.
3. Removal: I appreciate you looking carefully at removal; docker-compose has never succeeded at that after all these years. However, it's mostly an edge case asl well. I'm not sure it's fundamental to this PR.
4. Followup-PR later: If env and hooks are well-handled and we like the result and the resultant code, I would be OK with it, because those are the asks. However, I do think an actual merge might be easier.

Yes, web_environment and hooks are the key asks, the only ones I've ever heard. But a generic approach would cover all (but would not allow removal)

Of course, since the current strategy is "replace", users already have removal.  We may not want to change that unless there's a perceived user need.  Since there are reasons why the current behavior might be near optimal anyway.

The only failure I see right now (just restarted it) is https://buildkite.com/drud/ddev-macos-mutagen/builds/1924#0181e880-0907-4f9c-b330-b24a655f2a10, and it was a network or upstream issue. But the mac and Windows tests often fail because Docker Desktop is not that reliable, and also because the tests are mostly end-to-end so are impacted by upstream and network issues.

I figured that might be it. I tried to run all the pkg/ddev/ddevapp tests, and got just those kind of failures.  Is there a use case we can discern"

Not sure I understand the question. People edit and override all the time, using ddev config or editing config.yaml or editing config.*.yaml.

If we know what they're trying to accomplish, then we know whether people mostly want to add items to a list, and which people have instead wanted to remove them.  This should affect our implementation, making either adding or removing as easy as possible.

Removal: I appreciate you looking carefully at removal; docker-compose has never succeeded at that after all these years. However, it's mostly an edge case asl well. I'm not sure it's fundamental to this PR. 4. Followup-PR later: If env and hooks are well-handled and we like the result and the resultant code, I would be OK with it, because those are the asks. However, I do think an actual merge might be easier.

Yep. Removal is hard.  Personally, I'd treat handling of docker-compose.yaml type files to another issue.  There are yaml equivalents of the jq utility that give you a command-based way of editing that kind of file, and we're better off IMNSHO using one of those systaxes (or better: go libraries if they exist) to handle this.

Another question: what is the best way to report config errors back to the user?  If we allow for negation (I'm leaning towards using '!' as a prefix, since YAML syntax doesn't use it), then we need to check that a string doesn't look "screwed up".  And given that for the hooks issue we have the types:
// for hooks:
type Hooks map[string][]YAMLTask
// YAMLTask defines tasks like Exec to be run in hooks
type YAMLTask map[string]interface{}

the best way to parse hooks is likely a set of type switches.  I don't think a merge library will give you the needed tools to handle a merge intelligently, give how the structure is typed.  But since our object is not highly nested, type switches will work well and be easy to understand for anybody playing in that code.
But allowing users to extend in a config.OVERRDE.yaml file will require us to handle bad input; I'll need to give feedback when that happens.

Another question: what is the best way to report config errors back to the user? If we allow for negation (I'm leaning towards using '!' as a prefix, since YAML syntax doesn't use it), then we need to check that a string doesn't look "screwed up". And given that for the hooks issue we have the types:

The current behavior is quite bad IIRC. There are two cases:

yaml is invalid: I think the message implies that config.yaml is bad and it's confusing
DDEV won't allow whatever's in the yaml (maybe bad mariadb version or whatever). I think this also is a confusing result

We could easily validate each yaml file we load with the regular app validation. The only problem with that is they may get a validation error that isn't relevant because it's not something that actually gets used. (This would be the case with using mariadb:5.2 in the config.yaml and having mariadb:10.4 in the config.something.yaml)

Been a while since I've had to do commit squashing, and I'm clearly out of practice.
I may need @rfay to fix my damn commits once the tests start passing. Sorry about that, but I figure that's not a bad trade for the code if it actually works :-)

You don't have to do any squashing, we do squash-on-pull. The one awkward thing for this PR is since it's your first, Github won't run tests until I approve them. After the first, they run automatically.

I would definitely like to also have the hooks information merged in addition to the web_environment listing, looking forward to updates on this!

@davereid-pfg artifacts are updated in https://github.com/drud/ddev/pull/3983#issuecomment-1179739882 and your review would be welcome. (I'll look today or tomorrow @torenware, thanks so much for this great initiative!)

Does the asset list need updating? It looks like the version from two days back might be different than last night's build.

@torenware could you please update the OP to update to the current approach? Thanks!

This isn't quite working yet; hooks aren't being merged, although environment variables are.
I used the example config files in https://gist.github.com/rfay/91fcaefa0c085c696f8f12713f265d95

I'll see what I get with those files.  You expect the items to be added if they do not match, correct?

Please add test coverage for the merging of hooks, and if it's not too hard, turn off the feature of your IDE that is moving imports around. The world won't end if you can't figure that out.

I actually have test cases for this, which using my test data in pkg/ddevapp/testdata/TestConfigMergeItems, and pkg/ddevapp/config_test.go::TestConfigHooksMerge.  Not sure why your test data is handled differently, but I'll take a look at it.
Current test files are:
config.yaml:
webimage: config.yaml
web_environment:
  - LARRY=curly
  - MOE=standard
  - CURLEY=bald
additional_hostnames:
 - somename
 - someothername
hooks:
  post-start:
    - exec: "simple web command"
    - exec-host: "simple host command"
  post-import-db:
    - exec: "drush uli"

and
config.override.yaml
web_environment:
  - SHEMP=fake
  - LARRY=balding
  - MOE=hair-piece
additional_hostnames:
 # add a hostname
 - somename-new
 # remove a hostname
 - "!someothername"
hooks:
  post-start:
    - exec: "simple random expression"

The asserts tested are:
	assertTask(true, "post-start", "exec", "simple random expression")
	assertTask(true, "post-start", "exec-host", "simple host command")
	assertTask(true, "post-start", "exec", "simple web command")
	assertTask(true, "post-import-db", "exec", "drush uli")

i.e., all of the listed tasks were present, from both tasks.
I'll try your cases as well, and see why they are not handled as expected.

I haven't studied your actual code yet. Thanks so much for the great effort on this!

OK, looks like you're using stale binaries.  The assets you sent Dave too are the original versions; there's no hook processing code. You may want to generate the current assets and make those available.
I substituted my original test data for your config files; these asserts all pass, indicating locally that the hook code was invoked and that both the config.yaml and config.1.yaml versions got merged as we'd want them to be.
	// assertTask(true, "post-start", "exec", "simple random expression")
	// assertTask(true, "post-start", "exec-host", "simple host command")
	// assertTask(true, "post-start", "exec", "simple web command")
	// assertTask(true, "post-import-db", "exec", "drush uli")

	assertTask(true, "pre-start", "exec-host", "echo pre-start-orig")
	assertTask(true, "post-start", "exec", "echo post-start-orig")
	assertTask(true, "pre-start", "exec-host", "echo pre-start-1")
	assertTask(true, "post-start", "exec", "echo post-start-1")

I apologize.
You're right. I used gh pr checkout, which I haven't used until lately, and it did me wrong and gave an old version. I have only recently been trying it out, and I guess it won't remain in my toolkit. My normal technique is to add a remote, then check out the branch from the remote. And when I do that I see the hooks working fine in ddev debug configyaml

Sadly, I've discovered something that can never be merged, must be replaced. If you have this in config.yaml:
database:
  type: mariadb
  version: "10.3"

Then add this in config.x.yaml:
database:
  type: postgres
  version: "14"

You'll end up with:
database:
  type: mariadb
  type: postgres
  version: "10.3"
  version: "14"

Amazingly though, the last thing configured wins, so in this case that stanza actually works out and gets postgres:14
And also amazingly, this also works:
database:
  type: postgres
  type: mariadb
  version: "14"
  version: "10.3"

So maybe there's no problem here, but wow.

No, that was me experimenting with different options. I just manually created the merged option and tried it out in ddev.
My proposal of a simple full deep merge would result in the examples I show.

Hoping we can move forward on this (without putting pressure on you!). Please let me know if you have questions about the suggestions in the review, especially https://github.com/drud/ddev/pull/3983#discussion_r919501242

This should be ready to pull @torenware - Could you please rebase and add a commit that adds "config-star-yaml-merging" to ddev debug capabilities in https://github.com/drud/ddev/blob/master/cmd/ddev/cmd/debug-capabilities.go - thanks!

I believe this is properly merged including the debug-capabilities command -- which appears to have been among the 17 commits that are now merged. Kick off the tests at your leisure.

Unfortunately, you didn't do it right, not sure if it will be a problem. You'll want to learn how to use git fetch upstream && git rebase upstream/master and then git push --force to put your commits on top of the existing upstream/master. Do you want to do it again? When things are working right, you wont' see yourself pushing upstream commits in the PR, just the ones that belong to this PR.
This is all wrong now. (You can tell by just looking at what's changed, and you see all kinds of things you didn't intend to do).
The previous working commit was at https://github.com/drud/ddev/pull/3983/commits/7fe85b286afd0fda19f69fea691cdbd036de66dc, which is still there and can be recovered and worked from.

You may also have forgotten that you pulled my PR in using the Github Web UI, so you needed to update your remote before doing anything else, git fetch <forkremote> (my forked remote is always "rfay", I recommend that you use "torenware". git remote -v will show you your remotes.
So you would have needed to:

git fetch --all to get everything updated in your remotes
git reset --hard torenware/issue-3558-merge-config to get your local branch equal to the one on github.
git rebase upstream/master to rebase against current code.
Add your new commit.

These are worthy things to master.  And there is more than one way to do it.

The docs fix is in. I can rebase this or you can, as you like.

Unfortunately, the idea of creating a NewApp() results in this bad behavior for things like webserver_type, etc. Any default-set thing in the config.*.yaml will overwrite the config with the wrong data. I think the problems are all about scalar settings.

I hope you'll take a look at this @torenware - It seems to me that we probably need some more permutations in TestConfigMerge.

HUZZAH!!

Congratulations, thanks so much for your leadership and exploration on this.

Could I get some clarification on the expectation that hooks in two different config files get merged together or do they override each other? I'm using the current release and finding that adding an additional post-db-import hook in a config.local.yaml overrides the existing post-import-db hook I have set in my config.base.yaml file.

Ah! This hasn't been actually released yet!

@davereid-pfg you can now use this with brew install --HEAD --fetch-head and would love your reports. It will be in v1.20.0, hopefully in a couple of weeks or so.

If you want to know if a version of ddev supports it, ddev debug capabilities will contain config-star-yaml-merging


Images not loading in admin panel

Laravel Version: 5.5
Voyager Version: 1.0
PHP Version: 7.1.1
Database Driver & Version:

Description:
I have an issue in uploading and viewing images on admin panel. All Images (Logo, Avatar...) or broken in the Admin Panel
in chrome console i get:
http://localhost:8888/storage/users/default.png 404 (Not Found)
settings:582 GET
http://localhost:8888/storage/settings/March2018/CYSL8EeI1o5QdU8fDHJG.png 404 (Not Found)

Steps To Reproduce:
I checked the storage Folder with:
php artisan storage:link
i get the message, its already exist
i changed in .env the app_url in
APP_URL=http://localhost:8888 (yeah 8888 its my mamp port on my device)

Where is the file located? Can you find it somewhere in your applications storage or public path?

which file u mean? An File that i upload?
other standard files are also broken, like the standard avatar.

The March2018/CYSL8EeI1o5QdU8fDHJG.png file.

its located in
project/storage/app/public/settings/March2018

Can you access it from the URL at something like those links:

http://localhost:8888/settings/March2018/CYSL8EeI1o5QdU8fDHJG.png
http://localhost:8888/storage/settings/March2018/CYSL8EeI1o5QdU8fDHJG.png
http://localhost:8888/storage/app/public/settings/March2018/CYSL8EeI1o5QdU8fDHJG.png
http://localhost:8888/project/storage/app/public/settings/March2018/CYSL8EeI1o5QdU8fDHJG.png

Yeah the last one is working

Does this work too?
http://localhost:8888/project/public/storage/settings/March2018/CYSL8EeI1o5QdU8fDHJG.png

Yes

Your vhost has not been configured correct. It should be configured to have the project path being whats inside the project/public.
Which will result in this working: http://localhost:8888/storage/settings/March2018/CYSL8EeI1o5QdU8fDHJG.png

For all others, i resolve the Problem with:
APP_URL=http://localhost:8888
change to
APP_URL=http://localhost:8888/project/public

Could be a bad idea. You might be able to access your .env publicly at http://localhost:8888/project/.env


XD-3747: Add RabbitMQ channelCacheSize Property

JIRA: https://jira.spring.io/browse/XD-3747

Merged as https://github.com/spring-projects/spring-xd/commit/81e94eaa019e5b7a0d224b956470a6c34cf4a7f1


define how to implement periods/phases in a workshop (3h)

goal: get feedback from DSG and ADaM Connect team define how to implement it conceptually

@koegerr , what was the outcome? Should it not be covered by admiral core but implemented in company specific admiral extension packages?

@bundfussr : we still discussion the model within Orchid. Overall the thinking is that it is too protocol specific. But maybe when we have a timing model we can have a look if pieces of it can be used to create some utility functions. Probably more Roche specific

@koegerr , maybe we should split it into two parts. The first part is the the creation of the phase and period variables in ADSL. I agree that this is very study-specific. We could provide an interface like the Input Data Sets to Pass Phase, Period or Subperiod Information to ADSL VAD Macro in STREAM but the creation of the input datasets would be study-specific.
The second part is the creation of the phase and period variables in the BDS and OCCDS dataset. These can be derived from the ADSL variables and are usually not study-specific. I think providing an admiral function for this would be very useful.
What do you think?


Get-Date -UFormat %U does not match reference implementation

Fixes #20977

PR Summary
Corrects the implementation of Get-Data -UFormat %U
PR Context
This changes the algorithm used by the %U date format specifier to match the systems it's emulating.
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[ ] None
OR
[ ] Experimental feature(s) needed

[ ] Experimental feature name(s):

User-facing changes

[ ] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[ ] N/A or can only be tested interactively
OR
[x] Make sure you've added a new test if existing tests do not effectively test the code changed

Tooling

[x] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
OR
[ ] I have considered the user experience from a tooling perspective and opened an issue in the relevant tool repository. This may include:

[ ] Impact on PowerShell Editor Services which is used in the PowerShell extension for VSCode
(which runs in a different PS Host).

[ ] Issue filed:

[ ] Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.

[ ] Issue filed:

[ ] Impact on PSScriptAnalyzer (which provides linting & formatting in the editor extensions).

[ ] Issue filed:

[ ] Impact on EditorSyntax (which provides syntax highlighting with in VSCode, GitHub, and many other editors).

[ ] Issue filed:

The tests on MacOS seem fragile: https://dev.azure.com/powershell/PowerShell/_build/results?buildId=144217&view=ms.vss-test-web.build-test-results-tab&runId=2168512&resultId=100043&paneView=debug

mac Test - ElevatedPesterTests - CI
2024-01-20T17:59:17.4113750Z Flaky failed test results are opted out of pass percentage
2024-01-20T17:59:17.4129610Z ##[error]There are one or more test failures detected in result files. Detailed summary of published test results can be viewed in the Tests tab.

Are the flaky tests being excluded properly?


image-info: report errors from subprocess calls

The subproces.check_output function hides the output of the subprocess
it runs, using subprocess.run directly enable us to see the errors.

schutzbot

You are right, using exceptions as a control flow mechanism looks more like the Python way to do things, though I'd still print the output to stderr. That is replacing this line:
     print(e.output) # in the nice way you did

with:
        sys.stderr.write(f"--- Output from {argv}:\n")
        sys.stderr.write(sp.stdout)
        sys.stderr.write("\n--- End of the output\n")

what do you think? It looks bit like an overkill, but seems easier to read for me.

what do you think? The code looks bit like an overkill, but the result seems easier to read (console output, not code) for me.

Sorry yeah, that's what I meant with "in the nice way you did". What you had makes much more sense, especially sending it to stderr.


ENH: add minimum_bounding_circle and minimum_bounding_radius

Exposing GEOSMinimumBoundingCircle_r.
xref #126

Hmm, this seems to work only on macOS and segfaults elsewhere. I am afraid that is out of my C capabilities to debug this.

GEOSMinimumBoundingCircle_r takes an additional (radius) argument that is missing here? (not sure why it would sometimes succeed then, if that's the case)

Ah, so it's not an additional "argument" to the function in a python-sense, but it actually is an additional return value (I wanted to say: have a look at the "Yd_Y" signatures, but so that won't work either)

Using the following wrapper around the actual GEOS function to align the signature avoids the segfault for me on linux:
static void* GEOSMinimumBoundingCircleWithReturn(void* context, void* geom) {
  GEOSGeometry* center = NULL;
  double radius;
  void* ret = GEOSMinimumBoundingCircle_r(context, geom, &radius, &center);
  if (ret == NULL) {
    return NULL;
  }
  GEOSGeom_destroy_r(context, center);
  return ret;
}
static void* minimum_bounding_circle_data[1] = {GEOSMinimumBoundingCircleWithReturn};

Now, of course, that simply ignores the additional center/radius results.
If we want to add those to the actual python return value, we need to think about the desired API for this (different return values? a tuple of arrays or an array of tuples?) I have done something similar for polygonize_full in https://github.com/pygeos/pygeos/pull/298

PostGIS has a separate ST_MinimumBoundingRadius, so ST_MinimumBoundingCircle only returns the geometry (which I think I like, since often you might want one or the other?)

Thanks a lot for the wrapper!

PostGIS has a separate ST_MinimumBoundingRadius, so ST_MinimumBoundingCircle only returns the geometry (which I think I like, since often you might want one or the other?)

I also like this approach. It feels natural to get a polygon from minimum_bounding_circle. We can do the same here and then mirror this behaviour for maximum_inscribed_circle (which I am also playing with now) which returns a LineString from the centre to a point on the boundary.

Can you add a line to the CHANGELOG under "added GEOS functions" ?

@caspervdw All done. Thanks for the review to both of you.


Add AE Datastore transactions samples.

From:
https://cloud.google.com/appengine/docs/java/datastore/transactions
@lesv @shun-fan PTAL.

[Current coverage][cc-pull] is 57.28%

Merging [#223][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master       #223   diff @@
==========================================
  Files            67         67
  Lines          1634       1634
  Methods           0          0
  Messages          0          0
  Branches         93         93
==========================================
  Hits            936        936
  Misses          673        673
  Partials         25         25

Powered by Codecov. Last updated by [01ecbef...585ec57][cc-compare]
[cc-base-branch]: https://codecov.io/gh/GoogleCloudPlatform/java-docs-samples/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/GoogleCloudPlatform/java-docs-samples/compare/01ecbef26b3812e505bb5ed055a803f06d832dd8...585ec57230a55236603b2f13d6afa32e2a27a465
[cc-pull]: https://codecov.io/gh/GoogleCloudPlatform/java-docs-samples/pull/223?src=pr

LGTM


Ambigious references with local build

Atfer referencing a locally built NuGet package for diagnostics (clone/build of the current repo -     "Microsoft.AspNetCore.Diagnostics": "1.0.0-t002a46b59",) in an untouched RC2 ASP.NET Web App, NuGet automatically starts to restore packages.
In doing so it seems that an ambigious reference is created as my Program.cs is unable to distinguish the version of .UseContentRoot I want to use.

I don't have enough familiarity with the project.json and NuGet relationship to determine what the root cause is.
Am I missing a step in the process or is there something more fundamental causing the issue?
{
  "userSecretsId": "aspnet-JamieTest-ffeafaa8-e549-4ce5-89f2-69089954bd81",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0-rc2-3002702",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0-t002a46b59",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    },
    "Microsoft.Extensions.SecretManager.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "gcServer": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

I managed to get to the bottom of this in the end.
At the time of writing the aspnet/Diagnostics repository includes a commit which refactors the location of several Hosting based extension methods.
Unfortunately, the File -> New Project output from RC2 is looking at the previous location for the extension methods. As my locally built NuGet package and the RC2 output use differing implementations, the compiler is unable to determine which one is correct.
I wasn't paricuarly bothered which implementation was used as long as they were the same, and the path of least resistance was to change my locally built NuGet package to use the RC2 version of Microsoft.AspNetCore.Hosting.Abstractions.
Whilst this corrected the immediate issue I then came across two others at runtime, whereby the included dependency injection failed to load required types.
In total, I had to make three changes to my Diagnostics project.json file in order for my locally built NuGet package to load and be debuggable within Visual Studio:


Time text labels inconsistency

The "today" is inconsistent with the other dates, as the others use uppercase, and it looks odd when "today" is the only lowercase selection.

can you make a pull request ?

can be marked as closed.
See commit: 529b84a


keyDb postgreSQL docker

For the imaging and database pathway we need a Docker image with a postgreSQL server with the CAT key database

Done, see "key-database" folder


Add onAudioStart and onAudioStop events to WaveStreamPlayer

I need to know when playback of the generated audio stream finishes so I updated my copy of the WaveStreamPlayer class to include onAudioStart and onAudioStop events.  It might be useful to just add these to that class.  Here's the changes I made:

This is helpful! I think the intention would be to open source this library; so let me look into that and update this when there's a decision there.

there is a issue with this, I can't make use out of it as ,the .onAudioStop gets intializes multiple times even when there is no audio.


Small project setup improvements

Please don't mind the removal of unused imports: if it is something, that is needed at runtime, then i propose to explicitly document it.

@4F2E4A2E you can also set the tslint rule about enforcing spaces around { } brackets
I would like to use prettier as a commit hook but the decorators case hasn't been solved yet:
https://github.com/prettier/prettier/issues/325#issuecomment-321837796

just created a new PR: https://github.com/19majkel94/type-graphql/pull/26


Added Zube to "Documents & Productivity"

Thank you for taking the time to work on a Pull Request for this project!
To ensure your PR is dealt with swiftly please check the following:

[x] Your submissions are formatted according to the guidelines in the contributing guide
[x] Your additions are ordered alphabetically
[x] Your submission has a useful description
[x] The description does not end with punctuation
[x] Each table column should be padded with one space on either side
[x] You have searched the repository for any relevant issues or pull requests
[x] Any category you are creating has the minimum requirement of 3 items
[x] All changes have been squashed into a single commit

@iwishiwasaneagle Thanks for the contribution!
Can you please solve the conflict?

Hi, I long deleted this fork. So I'll remake the fork and redo the PR.


⚠ Thumbnails API Endpoint has degraded performance

In d93fed7, Thumbnails API Endpoint (https://thumbnails.roblox.com/v1/assets?assetIds=82738847&format=Png&isCircular=false&size=30x30) experienced degraded performance:

HTTP code: 200
Response time: 1275 ms

Resolved: Thumbnails API Endpoint performance has improved in 8569842 after 4 minutes.


[SPARK-16134][SQL] optimizer rules for typed filter

What changes were proposed in this pull request?
This PR adds 3 optimizer rules for typed filter:

push typed filter down through SerializeFromObject and eliminate the deserialization in filter condition.
pull typed filter up through SerializeFromObject and eliminate the deserialization in filter condition.
combine adjacent typed filters and share the deserialized object among all the condition expressions.

This PR also adds TypedFilter logical plan, to separate it from normal filter, so that the concept is more clear and it's easier to write optimizer rules.
How was this patch tested?
TypedFilterOptimizationSuite

cc @yhuai @liancheng @clockfly

Test build #61035 has started for PR 13846 at commit 6200460.

Test build #61035 has finished for PR 13846 at commit 6200460.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class TypedFilter(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/61035/
Test FAILed.

retest this please

Test build #61083 has started for PR 13846 at commit 6200460.

Test build #61083 has finished for PR 13846 at commit 6200460.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class TypedFilter(

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/61083/
Test PASSed.

Test build #61463 has started for PR 13846 at commit c1e7d9f.

Test build #61466 has started for PR 13846 at commit 1a2241f.

Test build #61463 has finished for PR 13846 at commit c1e7d9f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/61463/
Test PASSed.

Merged build finished. Test PASSed.

Test build #61466 has finished for PR 13846 at commit 1a2241f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/61466/
Test PASSed.

LGTM, merged to master.
(Also merged to branch-2.0 by mistake, will revert it ASAP. Sorry for the trouble.)

Reverted the commit on branch-2.0.


Exercise triangle

Adding exercise triangle

@kotp @hiljusti Thank you for your review. I added and modified the changes to the best of my ability but not sure if I addressed all issues. Please check. :-)

Not quite sure why the merge is still blocked.... (?)


Allow lower level access to the API

There appears to be plenty of Jama REST API functionality that's not exposed via Python methods in this library
The double underscore on the underlying __get_all() method invokes name mangling, making it rather difficult to access REST API endpoints that aren't exposed as Python methods.
By renaming __get_all() to a single underscore _get_all(), it is still denoted as non-public, but it allows access to un-pythonized REST endpoints for those that need it.
This pull request also changes __core to _core, to allow low level get, put, post, patch & delete calls to be made to the API.

Hi Tony,
Thank you for the suggested changes.  I would like to keep the client as simple as possible for general use.  As such I have made a design decision to keep the core class and pagination methods hidden.   You are correct that not all the endpoints are available yet as the client is still a work in progress.  If you would like access to lower level constructs, I would advise you to instantiate a copy of the Core class directly.  Alternatively if you need access to specific endpoints in the Client class, I encourage you to create them and submit a PR for their inclusion.  You are also welcome to fork and tailor this code to suit your specific needs.
Best Regards


add times parameter to {String,Sub}.cuts

This parameter is useful when splitting a string into a variable amount of fields (up to a maximum) and the last field may contain the separator.
I thought this would be rare and cut would do the job, but in some cases more than 2 fields are present or having a single field is a valid option and in addition to that the tail of the string is unnecessarily split and has to be concatenated again, which reduces the readability of the code.
Some examples:
https://github.com/xapi-project/tapctl/blob/6827cad4bebd3e2fbd289a469231bf7570f265d2/lib/tapctl.ml#L394
https://github.com/xapi-project/xen-api/blob/802b8be78eb4ff88ab34a654af6a0cc27a83da72/ocaml/xapi-aux/pool_role.ml#L54-L58
https://github.com/xapi-project/xen-api/blob/324bc6ee6664dd915c0bbe57185f1d6243d9ed7e/ocaml/xapi/xapi_event.ml#L57-L61
I tried to make it as ergonomic as possible, but the choice of ignoring values lower than 1 is a bit awkward, but so is exposing the option. I'm open to suggestions.

Thanks but I think it's better not to multiply optional arguments. Besides I think cuts should remain simple by design so that you are not tempted to use it when you should not and use proper parsing technology instead (e.g. to deal with escapes).
times is a better label than the limit label of your example but it still required too much brain work to understand how many segments I would get as a result.
Also it seems that the two last examples you gave are handled by String.cut as follows:
match String.cut ~sep x with
| None -> x, None
| Some (x, y) -> x, Some y

it still required too much brain work to understand how many segments I would get as a result.

This is true especially when in conjunction with ~empty:false, it makes sense thinking of it as "separators processed".
I think it's obvious that adding an optional argument makes it harder to reason with, this evident when seeing the explosion of testscases, but I didn't know what opinion you'd have, so it's worth a shot.
Thanks for considering the feature, I'll use your snippet to change quite a few usages in the codebase.


Fix: Show documentation URL for supported Resource Explorer items

Overview
Some nodes like chats in the Resource Explorer, which have documentation links, didn't have their links showing. This changes now with a difference in implementation to make it similar to the Query bar.
Demo
Before:

After:

Notes
Optional. Ancillary topics, caveats, alternative strategies that didn't work out, anything else.
Testing Instructions

Spin up GE locally
Append ?devx-api=https://graphexplorerapi-staging.azurewebsites.net to change the destination
open the chats node
Notice children in the chats node have their documentation showing

It helps with the user experience. If we don't have the icon visible the user will not have a consistent experience


scrabble-score: replace 'multibillionaire' with 'oxyphenbutazone'

The word multibillionaire is too long for the scrabble board. Oxyphenbutazone, on the other hand, is legal.
Please verify that there is no test for multibillionaire in the scrabble-score in this track. If the word is included in the test data, then it should be replaced with oxyphenbutazone. Remember to check the case (if the original is uppercase, then the replacement also should be).
If multibillionaire isn't used, then this issue can safely be closed.
See https://github.com/exercism/x-common/issues/86

Thanks, @drewbs.

Glad to be of help @yurrriq.


Feature/ascii

Implemented the solution purposed by @dsully for issue #1286

@ThiefMaster so is it better to delete this branch and create a new updated one? Or do you have any better suggestion?

No, just rebase/amend and then force-push. That will update this PR without adding even more commits.

Why did the checks failed?

There's a syntax error. Please test code before committing/pushing it...

Sorry it was a misunderstood with my colleagues.

Closing because #2223 added support for UTF-8 filenames.


docs/networks: Update IPFS endpoint

I've updated the IPFS config so this change is no longer required. Closing


Operations on second retry queue for jobs in Dr Elephant are not thread safe

Operations on second retry queue for jobs in Dr Elephant are not thread safe.
In AnalyticJobGeneratorHadoop2#fetchAnalyticJobs, we iterate over the jobs in second retry queue and if the job is eligible for retry, remove it from the queue while iterating over it.
But while that's happening, another thread, which is processing the job, on failure, can also add to the same queue by calling AnalyticJobGeneratorHadoop2#addIntoSecondRetryQueue.
This can lead to concurrent modification exception.

Ok. Thanks for the explanation.
LGTM.

Thanks for the commit.


Deprecate @azure/identity-vscode

Chatting with @KarishmaGhiya about #28879 I learned that the Azure Account extension no longer works with VisualStudioCodeCredential and a fix is not planned at this time.
It sounds like we are deprecating VisualStudioCodeCredential and this issue tracks the completion of that task:

Deprecate the package on npm
Remove it from azure identity readme (or specify its deprecation status)
Update the troubleshooting guide

Go ahead and do it
Discuss with Scott Addie
Already done :)
cc: @maorleger

Closing per offline discussion, we're not quite ready to deprecate this yet


Operation sync during upgrade can skip vital sync if etcd is unavailable

Current Result
Before each upgrade step on remote node, the agent attempts to sync with the cluster operation state. It is done on best-effort basis and once, after the attempt it continues without sync if etcd is unavailable. This can cause problems if it happens for sync attempts when vital information needs to be fetched from the cluster state - for example, step completion information important for the executor that steps the plan. If it cannot sync the completion of a dependent step it will fail upon attempting to execute the following step that depends on that completion state.
Expected Result
The state sync should run in a loop that attempts to retry on transient etcd errors.
Also highly relevant for robotests as these kinds of test failures have become frequent.
Logs from the relevant robotest run:
2020-05-12T16:58:37Z INFO [FSM:REMOT] "\x1b[31m[ERROR]: required phase \"/init\" is not completed\n\x1b[0m" CMD:/var/lib/gravity/site/update/agent/gravity#1 gravity:[plan execute --phase /bootstrap/robotest-32bf75f2-node-2 --operation-id 80dd0b8c-6375-45c3-8405-384d972d00bb] server:robotest-32bf75f2-node-2/<IP_ADDRESS> utils/logginghook.go:56
2020-05-12T16:58:37Z DEBU [RPC]       Completed. exit:255 gravity:[plan execute --phase /bootstrap/robotest-32bf75f2-node-2 --operation-id 80dd0b8c-6375-45c3-8405-384d972d00bb] seq:1 server:robotest-32bf75f2-node-2/<IP_ADDRESS> utils/logginghook.go:56
2020-05-12T16:58:37Z ERRO [FSM:REMOT] exit status 255 gravity:[plan execute --phase /bootstrap/robotest-32bf75f2-node-2 --operation-id 80dd0b8c-6375-45c3-8405-384d972d00bb] server:robotest-32bf75f2-node-2/<IP_ADDRESS> utils/logginghook.go:56
2020-05-12T16:58:37Z WARN [UPDATE]    Failed to execute plan. error:[
ERROR REPORT:
Original Error: *status.statusError rpc error: code = Unknown desc = exit status 255
Stack Trace:
        /gopath/src/github.com/gravitational/gravity/lib/rpc/client/agent.go:114 github.com/gravitational/gravity/lib/rpc/client.processStream
        /gopath/src/github.com/gravitational/gravity/lib/rpc/client/agent.go:93 github.com/gravitational/gravity/lib/rpc/client.(*client).command
        /gopath/src/github.com/gravitational/gravity/lib/rpc/client/agent.go:46 github.com/gravitational/gravity/lib/rpc/client.(*client).GravityCommand
        /gopath/src/github.com/gravitational/gravity/lib/fsm/rpc.go:122 github.com/gravitational/gravity/lib/fsm.(*agentRunner).Run
        /gopath/src/github.com/gravitational/gravity/lib/update/cluster/engine.go:170 github.com/gravitational/gravity/lib/update/cluster.(*engine).RunCommand
        /gopath/src/github.com/gravitational/gravity/lib/fsm/fsm.go:379 github.com/gravitational/gravity/lib/fsm.(*FSM).executePhaseRemotely
        /gopath/src/github.com/gravitational/gravity/lib/fsm/fsm.go:349 github.com/gravitational/gravity/lib/fsm.(*FSM).executePhase
        /gopath/src/github.com/gravitational/gravity/lib/fsm/fsm.go:207 github.com/gravitational/gravity/lib/fsm.(*FSM).ExecutePhase
        /gopath/src/github.com/gravitational/gravity/lib/fsm/fsm.go:397 github.com/gravitational/gravity/lib/fsm.(*FSM).executeSubphasesSequentially
        /gopath/src/github.com/gravitational/gravity/lib/fsm/fsm.go:391 github.com/gravitational/gravity/lib/fsm.(*FSM).executePhaseLocally
        /gopath/src/github.com/gravitational/gravity/lib/fsm/fsm.go:318 github.com/gravitational/gravity/lib/fsm.(*FSM).executePhase
        /gopath/src/github.com/gravitational/gravity/lib/fsm/fsm.go:207 github.com/gravitational/gravity/lib/fsm.(*FSM).ExecutePhase
        /gopath/src/github.com/gravitational/gravity/lib/fsm/fsm.go:164 github.com/gravitational/gravity/lib/fsm.(*FSM).ExecutePlan
        /gopath/src/github.com/gravitational/gravity/lib/update/updater.go:178 github.com/gravitational/gravity/lib/update.(*Updater).executePlan
        /gopath/src/github.com/gravitational/gravity/lib/update/updater.go:61 github.com/gravitational/gravity/lib/update.(*Updater).Run.func1
        /go/src/runtime/asm_amd64.s:1337 runtime.goexit
User Message: failed to execute phase "/bootstrap"] operation:operation(update(80dd0b8c-6375-45c3-8405-384d972d00bb), cluster=1fcf42d-upgrade7-1-T2-ubuntu16-overlay2-3n, state=update_in_progress, created=Tue May 12 16:56 UTC) utils/logginghook.go:56

The failure is immediately preceded by two failed attempts to check cluster state:
ERRO "StartProcess(&{0xc000184510 0xc000010118 <nil> [/usr/bin/etcdctl cluster-health] [{PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin} {HTTP_PROXY } {http_proxy } {HTTPS_PROXY } {https_proxy } {NO_PROXY <IP_ADDRESS>/0,.local} {ENV /etc/container-environment} {BASH_ENV /etc/container-environment} {ETCDCTL_CERT_FILE /var/state/etcd.cert} {ETCDCTL_KEY_FILE /var/state/etcd.key} {ETCDCTL_CA_FILE /var/state/root.cert} {ETCDCTL_PEERS https://<IP_ADDRESS>:2379} {KUBECONFIG /etc/kubernetes/kubectl.kubeconfig}]}) failed with
ERROR REPORT:
Original Error: *exec.ExitError exit status 5
Stack Trace:
	/gopath/src/github.com/gravitational/planet/lib/box/enter.go:150 github.com/gravitational/planet/lib/box.StartProcessStdout
	/gopath/src/github.com/gravitational/planet/lib/box/enter.go:48 github.com/gravitational/planet/lib/box.StartProcess
	/gopath/src/github.com/gravitational/planet/lib/box/websrv.go:105 github.com/gravitational/planet/lib/box.(*webServer).enter.func1
	/gopath/src/github.com/gravitational/planet/vendor/golang.org/x/net/websocket/server.go:89 github.com/gravitational/planet/vendor/golang.org/x/net/websocket.Server.serveWebSocket
	/gopath/src/github.com/gravitational/planet/vendor/golang.org/x/net/websocket/server.go:70 github.com/gravitational/planet/vendor/golang.org/x/net/websocket.Server.ServeHTTP
	/gopath/src/github.com/gravitational/planet/lib/box/websrv.go:121 github.com/gravitational/planet/lib/box.(*webServer).enter
	/gopath/src/github.com/gravitational/planet/lib/box/websrv.go:72 github.com/gravitational/planet/lib/box.(*webServer).makeJSONHandler.func1
	/gopath/src/github.com/gravitational/planet/vendor/github.com/julienschmidt/httprouter/router.go:334 github.com/gravitational/planet/vendor/github.com/julienschmidt/httprouter.(*Router).ServeHTTP
	/opt/go/src/net/http/server.go:2774 net/http.serverHandler.ServeHTTP
	/opt/go/src/net/http/server.go:1878 net/http.(*conn).serve
	/opt/go/src/runtime/asm_amd64.s:1337 runtime.goexit
User Message: exit status 5
" box/websrv.go:110

As slight detail to add, the etcd sync code, atleast at one point, detected whether etcd was running when choosing whether or not to sync the state (to avoid sitting and timing out on the socket while etcd is down). So any retry logic should use the same conditions, otherwise, during an actual etcd upgrade the sync code will block and increase the unavailability of the cluster during etcd upgrades.


Cant use Pie chart using it with cdn scripts

good evening.
i added:
<!--Pie chart-->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react-chartjs-2/2.7.0/react-chartjs-2.js"></script>

to my html
and
<Pie>
      data={data}
</Pie>

where data variable is constant.
I get error of "Pie is not declared"

Please refer to React documentation on how to render JSX components to the DOM: https://reactjs.org/


Update tutorial-deploy-vmware-hcx.md

Added reference link for HCX ports required.

@zsoldier-ms : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


gfortran compilation error

hello Sir/madam,
I m using f2py interface for a fortran code.but it is showing some compilation error as follows. And
i m using gnu95 as compiler ('f2py -c --fcompiler=gnu95'). i m having GNU Fortran (Homebrew gcc 6.2.0) 6.2.0 version in my machine.
please help me to solve the issue.
many thanks in advance!!
gfortran:f77: CCF.f
gfortran: internal compiler error: Killed: 9 (program f951)
Please submit a full bug report,
with preprocessed source if appropriate.
See https://github.com/Homebrew/homebrew/issues for instructions.
gfortran: internal compiler error: Killed: 9 (program f951)
Please submit a full bug report,
with preprocessed source if appropriate.
error: Command "/usr/local/bin/gfortran -ffixed-line-length-none -fPIC -O3 -funroll-loops -I/var/folders/lg/yyvpnn3104l_h61wy23cz1nm0000gr/T/tmpBEOTHh/src.macosx-10.11-x86_64-2.7 -I/usr/local/lib/python2.7/site-packages/numpy/core/include -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c -c CCF.f -o /var/folders/lg/yyvpnn3104l_h61wy23cz1nm0000gr/T/tmpBEOTHh/CCF.o" failed with exit status 4

This issue was moved to Homebrew/homebrew-core#6414


Update Get-MigrationUserStatistics.md

Previous example #3 listed skipped items as "{}", new example actually lists things.

Docs Build status updates of commit c5a4439:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Get-MigrationUserStatistics.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 9fec7e4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Get-MigrationUserStatistics.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Remove stream does not work as expected on Firefox

Got 'removeStream not yet implemented' on detachMediaStream, RTCMultiConnection.js:2220 on Firefox 41 while trying to stop audio/video streams.

AFAIK, Firefox didn't implemented removeStream method yet:

http://www.w3.org/TR/webrtc/#widl-RTCPeerConnection-removeStream-void-MediaStream-stream

Not even in nightly builds.
However Firefox implemented replaceTrack method; which allows us replace a real LIVE-video track with something captured using video.mozCaptureStream or canvas.captureStream method.

Hello Muaz,
got it. Also by doing other researches it seems firefox has got no planning about that implementation.
Anyway,

by using the replaceTrack method, is the onStreamEnded event fired?
Is the fallback with replaceTrack method implemented in the v2.2.x ?

Thanks Muaz

@muaz-khan up


Deck install 404 error

When running
unikube deck install
I get the following error:

Although the application gets up and works

I can reproduce this with Python 3.10 on Linux:
? Please select a deck buzzword-counter
[INFO] Requesting manifests. This process may take a few seconds.
[INFO] Installing Kubernetes resources to the cluster.  [####################################]  100%
Traceback (most recent call last):
  File "/home/georg/.local/bin/unikube", line 8, in <module>
    sys.exit(cli())
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/click/decorators.py", line 38, in new_func
    return f(get_current_context().obj, *args, **kwargs)
  File "/home/georg/.local/lib/python3.10/site-packages/unikube/cli/deck.py", line 262, in install
    ingress_data = get_ingress_data(deck, provider_data)
  File "/home/georg/.local/lib/python3.10/site-packages/unikube/cli/deck.py", line 62, in get_ingress_data
    ingresss = KubeAPI(provider_data, deck).get_ingress()
  File "/home/georg/.local/lib/python3.10/site-packages/unikube/local/system.py", line 422, in get_ingress
    ret = self._networking_api.list_namespaced_ingress(self._namespace, watch=False)
  File "/home/georg/.local/lib/python3.10/site-packages/kubernetes/client/api/networking_v1beta1_api.py", line 1400, in list_namespaced_ingress
    return self.list_namespaced_ingress_with_http_info(namespace, **kwargs)  # noqa: E501
  File "/home/georg/.local/lib/python3.10/site-packages/kubernetes/client/api/networking_v1beta1_api.py", line 1515, in list_namespaced_ingress_with_http_info
    return self.api_client.call_api(
  File "/home/georg/.local/lib/python3.10/site-packages/kubernetes/client/api_client.py", line 348, in call_api
    return self.__call_api(resource_path, method,
  File "/home/georg/.local/lib/python3.10/site-packages/kubernetes/client/api_client.py", line 180, in __call_api
    response_data = self.request(
  File "/home/georg/.local/lib/python3.10/site-packages/kubernetes/client/api_client.py", line 373, in request
    return self.rest_client.GET(url,
  File "/home/georg/.local/lib/python3.10/site-packages/kubernetes/client/rest.py", line 240, in GET
    return self.request("GET", url,
  File "/home/georg/.local/lib/python3.10/site-packages/kubernetes/client/rest.py", line 234, in request
    raise ApiException(http_resp=r)
kubernetes.client.exceptions.ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Audit-Id': 'e5555cb6-25fc-4469-82cf-990cdafeabe4', 'Cache-Control': 'no-cache, private', 'Content-Type': 'application/json', 'X-Kubernetes-Pf-Flowschema-Uid': 'ea865251-53cd-4f78-8158-0cc645536463', 'X-Kubernetes-Pf-Prioritylevel-Uid': '1f0d39ad-a055-42e4-bcc2-e0149bde902e', 'Date': 'Tue, 05 Apr 2022 07:46:58 GMT', 'Content-Length': '174'})
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"the server could not find the requested resource","reason":"NotFound","details":{},"code":404}


The playback state becomes paused when firing reset on iOS

Describe the Bug
On iOS devices, when I call the reset() function, the player's playback state becomes paused, while on Android devices it becomes idle.
Steps To Reproduce
Just run the app on any iOS emulator and fire the reset() function while playing an audio. Track the playback state through the usePlaybackState() hook and see how it changes.
Code To Reproduce
const state = usePlaybackState();

console.log({ state })

Replicable on Example App?
Yes
Environment Info:
react-native: "0.68.0"
react-native-track-player: "3.2.0"
Simulators: Android 11 and 12, IPhone 12 and 14
OS: Apple M1 Pro. Ventura 13.1 (22C65)

This is fixed in nightly which will be released as 4.0 in the coming weeks.

I have the same problem, but don't see 4.0 in public yet.
How can I use this version?


Skip tests

https://github.com/adnanrahic/boilerplate-api/blob/da758e64496d98c3eee003eb8219b24b317f2877/.semaphore/semaphore.yml#L64
Having functionality that i'm going to describe here is arguable desirable.
In setup as is (even with 2 pipelines) user has to wait for all tests to be finished before images are created before they can be deployed.
If this block (image creation block) is placed in separate pipeline (second one and deploy moved to third pipeline in sequence) then testing can be bypassed in case of DevOps emergency.
In order to achieve this production image cannot be tagged with SEMAPHORE_WORKFLOW_ID any more because there can potentially be more of them generated by different promotions.
https://github.com/adnanrahic/boilerplate-api/blob/da758e64496d98c3eee003eb8219b24b317f2877/.semaphore/semaphore.yml#L73
So, semaphore id that need to be used here is SEMAPHORE_PIPELINE_1_ARTEFACT_ID (one because image is generated by second pipeline in workflow - counting from zero)
Maybe you wander why not put together last 2 blocks (build image and deploy) in single pipeline?
Last two blocks should not be lumped together in the same pipeline because in that case there is no way to do clean roolback of the previously working image. And DevOps people really want that.

I've separated the build and push of the production images from the main pipeline. Now the tests can be skipped if you want to. The tag now looks like this:
docker build --cache-from $API_IMAGE:$TAG --tag $API_IMAGE:$SEMAPHORE_PIPELINE_1_ARTEFACT_ID .

The pipeline for building and deploying production images is now separated from the main pipeline.
https://github.com/adnanrahic/boilerplate-api/blob/d6f76af9abf91adbcaad7c61ce3d153628843498/.semaphore/push-image.yml#L2
It's triggered from an automatic promotion from the main pipeline.
https://github.com/adnanrahic/boilerplate-api/blob/d6f76af9abf91adbcaad7c61ce3d153628843498/.semaphore/semaphore.yml#L123-L127


Error while downloading a Playlist

Checklist

[X ] I've verified that I'm running youtube-dl version 2021.12.17
[X ] I've checked that all provided URLs are alive and playable in a browser
[X ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X ] I've searched the bugtracker for similar bug reports including closed ones
[X ] I've read bugs section in FAQ

Verbose log

[youtube:tab] PL9DpKzAHkdgrsL5Lm1DCXQT5jfcK1okw5: Downloading webpage
[download] Downloading playlist: Income Tax & TDS by LLA
[youtube:tab] playlist Income Tax & TDS by LLA: Downloading 18 videos
[download] Downloading video 1 of 18
[youtube] Wy017TbTzuY: Downloading webpage
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Description

I tried downloading a playlist it is throwing error.
OS: Windows 10

[X] I've searched the bugtracker for similar bug reports including closed ones

Learn how by reading #30839 (again?).

[X] I've read bugs section in FAQ

Apply this.
#30839 !


Enter safe mode and warn of network upgrade

If we plan a release before implementing the changes in next scheduled network upgrade, this will make the node enter safe mode and warn the user of outdated software.

I fear that by triggering on an expected fork date defined by a committee, we expose ourselves to the same problem as people who actually plan a fork with an unrealistic date -- namely scrambling to un-do the warning when the date has to be changed.
Could we instead trigger safe mode when no blocks are seen for 130 minutes (the low-side trigger in #147)?

We know that there is likely to be a majority fork at that time. So far, it doesn't look like it will be contentious. We don't know if there will be a minority fork.
If we assume that minority fork has low hash power and/or luck, then the no block seen check will work.

[..] we expose ourselves to scrambling to un-do the warning when the date has to be changed.

No need to scramble. The nodes won't be crippled. Subset of the node functionality is locked out, mainly wallet functions.
The node operator will have to assess the network situation and either -disablesafemode or upgrade to a version without the warning. The point is to not let the users unknowingly operate on the wrong side of the chain (wrong being up to them to decide).
The warning could use some rewording.

CheckForkWarningConditions()  also triggers safe mode when a ~6 block valid or invalid fork is found, and it doesn't depend on rate of new valid blocks.  Hard-coding the fork MTP in the non-fork client only gets us about an hour of extra warning.

That seems like a better strategy. Closing this.


Refactor ChecksPublisher

[x] Refactor ChecksPublisher
[ ] Add tests for ChecksPublisher and GitHubChecksPublisher

You made a lot of progress since I looked at it, it looks very promising 👍
I'm not sure if you want us to continuously have a look at the current state of the PR? Or do you ping us with a review request when we should look again at the whole PR?

You made a lot of progress since I looked at it, it looks very promising 👍
I'm not sure if you want us to continuously have a look at the current state of the PR? Or do you ping us with a review request when we should look again at the whole PR?

This PR is almost done, just need some minor fixing for coding styles and nits. I'll ping you when I'm totally finished, then we can take a look at the whole and merge it.

I think the initial purpose of this PR is done by now. The tests for ChecksPublisher and GitHubChecksPublisher need to set up a mock server, so I prefer to keep this PR from those works.
@uhafner @timja kindly review.

I removed the generic ChecksContext for simplicity but reserved ContextResolver as a utility class.

Merged this PR for splitting the works, the left problems in the unresolved conversations are all unrelated to this PR, I'll keep resolving them but in other PR or commits.


fix: diagnostic range in multi-byte lines

When we parse the report produced by a source, we usually read and forward the column index, but in Lua, the index of a substring depends on the number of bytes in the string, not the number of printable characters.
For example, the line:
• Any rule whose heading is ~~struck through~~ is deprecated.

Produces the report:
text:1:47:"is deprecated" may be passive voice

But if we use that 47 to create the diagnostic, Lua will count 47 bytes, which will give us:
"~~ is deprecated"

Instead of
"is deprecated"

That's why we end up with the odd range described in #19.
Luckily, the Neovim team has a function to find the index we need through the function vim.str_byteindex.

@mochaaP thank you for the review. Could you merge the PR? I don't have write access.


Create node.js.yml

Test the node.js CI on Pouchdb-authentication

Hi!
Thank you so much for working on this - I suggest that nodejs versions that are "End-of-life" are not prioritized (if relevant problems arise), thus you could consider not to spend too much time on versions 6.x and 10.x: Here is the nodejs release schedule.

Hi!
Thank you so much for working on this - I suggest that nodejs versions that are "End-of-life" are not prioritized (if relevant problems arise), thus you could consider not to spend too much time on versions 6.x and 10.x: Here is the nodejs release schedule.

Yea, Sure. Thank you for the suggestion, I will definitely take care of it


Better Readme

The README.md is a little bit confusing.
I created this iOS Open source Readme Template so you can take a look on how to better organize.
If you want, I can help you to organize the README.md.
What are your thoughts?

Contributions to the README are definitely welcome


Issuing Evan credits

Issue 2000 credits to @gnomevan.

 Follow up
On Tuesday, 19-Mar-24 20:49:21 UTC by Gov4Git dev
Issued 2000 credits to member @gnomevan.


Document for search command is empty

Issue ri to view the documentation for search command like:
ri Rbnotes::Commands::Search

The document seems to be empty.

The document for search command has been written as rdoc comment in lib/rbnotes/commands/search.rb.  But it was put in the wrong place.  So, the empty document was generated.


[LIVY-650][THRIFT] Remove schema from ResultSet

What changes were proposed in this pull request?
The class ResultSet is serialized and sent over the wire. Currently this class contains a JSON string representation of the spark schema, which is never used. Hence, the PR removes it in order to avoid serializing it uselessly.
How was this patch tested?
existing UTs

cc @jerryshao @vanzin  @yantzu

If there are no comments I'm going to merge in a couple of days.

cc @yiheng

+1

Thanks, merging to master.


Remove tree-sitter package from package.json

This PR removes the tree-sitter package from dependencies in package.json. AFAIK, tree-sitter-cli is enough.
I also took this opportunity to add the build directory to .gitignore (because why not :))

Thanks for doing this stuff, i dont really work with npm or js so once stuff was working i just left the deps where they were


images of docs/Page_*.md are mostly missing

Thank you for your suggestion. You can refer to our official website for the latest documents about the project (https://babitmf.github.io/). We will also deal with the problems here.

The latest documents were all targeted to https://babitmf.github.io/, some old docs in the source code repo were removed.


Very minor bug in TAKD

In the train_distil_model function, the batch loss is logged instead of epoch loss.

Yea this is a small error. @khizirsiddiqui can you rectify this?


⚠ AsianCinema has degraded performance

In 4b1d8d0, AsianCinema ($ACM) experienced degraded performance:

HTTP code: 200
Response time: 19008 ms

Resolved: AsianCinema performance has improved in 3cae15c after 10 minutes.


Migrate to null safety via Dart 2.12.1

Upgraded the repo to Dart 2.12.1 and migrated each file that needed to be updated.
I opted to go for non-nullable solutions when possible, but few remain nullable.
While this may need students would have to upgrade to Dart 2.12.0, I think that's for the better in the long run.
Given all the work left to migrate to v3 of exercism, I don't think we should maintain nullability. Specifically because the non-nullable syntax (!, ?, required, etc) would still require the user upgrades to 2.12.0 in order for that syntax to be readable unless they include the experiment flag for null safety. And we'd have to update the docs for users to know that.
I ran the tests, they all passed. Not sure if the Action will. If that fails, should we include updating it in this PR?

@devkabiir thanks for the review!
The practice exercises no longer have version numbers. Instead they will have a UUID that does not change and is specific to each test that is chosen to be included.
The UUID does not change, which the departure from the Virginian system we had in v2.

Thanks @devkabiir


React Basics: Hello World Challenge

rendered: https://github.com/neuefische/web-exercises/tree/react-basics-hello-world-challenge/sessions/react-basics/hello-world
To do
adapt file structure (and tasks) according to template updates
CSB

CSB

refers to neuefische/web-curriculum-new-format#190

ready for review :)


proxy protocol: remove dependency on ioctl and raw fds

Signed-off-by: Florin Coras<EMAIL_ADDRESS>Risk Level: Medium
Testing: unit tests
Docs Changes: n/a
Release Notes: n/a

cc @mattklein123 @antoniovicente
Moved the proxy protocol changes out of #12771 as per Antonio's request


ci(conflicts): create conflicts.yml workflow

What does this PR do?
Improve repo
For resources
Description
The conflicts tag is commonly used to mark those PR that have merge conflicts / dirty status with the base branch. But this was a manually process.
Well, as part of enhacements requested in #7024 this workflow/pipeline automates that process using a GitHub Action, eps1lon/actions-label-merge-conflict, with which we...

automanages the conflicts label
post a message when conflicts are arisen.

A summary report is composed on the fly with the mergeability results.

Workflow could be raised:

manually (all PRs are checked. Useful as start up / for stucks)
on push (all PR with linked base commit are checked)
on pull request synchronize (current PR is checked)

Tests:

https://github.com/davorpa/free-programming-books/pull/32
https://github.com/davorpa/free-programming-books/pull/33
workflow runs at: https://github.com/davorpa/free-programming-books/actions/workflows/detect-conflicting-prs.yml

Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Used an informative name for this pull request.
[ ] Review message wording/spelling

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

I'm nervous about adding this so soon before October, even though it would be particularly useful before then.

I'm nervous about adding this so soon before October, even though it would be particularly useful before then.

If it serve... is used by Jenkins (https://github.com/jenkinsci/jenkins/blob/master/.github/workflows/label-conflicting-pr.yml). I only add the GHA summary to report what happens in each run.
Of course, workflows can be disabled without revert code.

You decide.

Commenting looks good. Jenkins doesn't get the volume of PRs that we do during October.


bug: fluentd consumes all inodes

What kind of request is this (question/bug/enhancement/feature request):
Bug
Description
Fluentd will start creating hundreds of thousands of 0 byte buffer log files when the partition it is on runs out of space.  Eventually it will max out all of the inodes on the partition as well.  Please see the following upstream GitHub issue.
https://github.com/fluent/fluentd/issues/2593
The reason for creating this Rancher GitHub issue is to have the upstream fix merged as soon as possible.

It's fixed in upstream fluentd, but they haven't made a release as of today. Need to see if a new release will be made before we release.

pr merged and made this tag: https://github.com/rancher/fluentd/releases/tag/v0.1.17
something else needs updated to use it

rancher/rancher:master-head 006998b45

Create cluster
Enable logging
Logging is deployed with rancher/fluentd:v0.1.17 images
Logging statements are transported correctly


About Tokoy dataset

HI,
When doing experiments on the Tokoy dataset, TimeMachine is used for the training set, Tokoy24/7 is used for the test set, is that right?

Hi @DonMuv, we resize all our images to a uniform size of 640x480 (width by height), including Tokyo247 query images. This resizing happens as part of the Pytorch transforms part of the dataloader.


Generate APK & deploy to Play Store

When deploying to mobile, everything works fine (except for the audio issue), but there's no option (or guide on how to) create APK files from the app we loaded.
Is this possible right now, and if so, how?

On a relevant note, I've now got a working ARC port of the Chrome App Dev Tool for Android  here. Yes, the port-binding issue is also fixed (screenshot attached), so now we've only got two steps left:

Implement some sort of ADB hook into ARC to allow ARC (and by extension the Android Dev Tool) to act as an ADB server
Use the Android Dev Tool's implementation to package and export APK's

Yup, seems like a pretty straightforward process.


Visualization import error🐛

Description
Hello, I have just installed MARO using pypl, followed the quick example, but when running the visualization command maro inspector dashboard --source_path ./dump_data/snapshot_dump_folder I get the following error:
ModuleNotFoundError: No module named 'maro.cli.maro_real_time_vis.back_end'

Screenshots

To Reproduce
Steps to reproduce the behavior:

Install MARO using pypl
Run the quick example
Run the visualization command maro inspector dashboard --source_path ./dump_data/snapshot_dump_folder

Expected Behavior

Environment

MARO version (e.g., v0.1.1a1): 0.2.1a1
MARO scenario (CIM, Citi Bike): CIM
MARO component (Simulation, RL, Distributed Training):
Orchestration platform (GraSS on Azure, AKS on Azure):
How you installed MARO (pip, source): pip
OS (Linux, Windows, macOS): Linux
Python version (3.6, 3.7): 3.7
Docker image (e.g., arthursjiang/maro:cpu[5f36ed]):
CPU/GPU:
Any other relevant information:

Additional Context

Hi @cpn , sorry for the late reply.
Currently the visualization part is not included in pymaro package, so you should install from source to use the viusalization.

Hi @cpn , could you please let us know if this solves your problem?

I have installed from source and have the same problem, seems like compiled dist for frontend was not committed.

@ssviridov Yeah, I have the same thing

Hi @Jinyu-W , I have the same problem, too. 😢

@Meroy9819  Could you help to check this problem?

@ssviridov  @ershandreich  @Ivens-Zhang I want to confirm that are you install MARO as: https://github.com/microsoft/maro#install-maro-from-source-editable-mode

Thanks for your prompt reply @Jinyu-W , I confirm that I was installed MARO as your link.

Thanks for your prompt reply @Jinyu-W , I confirm that I was installed MARO as your link.

@Ivens-Zhang
Hi, I checked the startup process of Env-dashboard under Linux System, it works for me.  Actually, I am curious that the package maro_real_time_vis.back_end is imported within Env-dashboard startup process, if it is possible, could you please list the command and dump_data folder path in detail?

Hello, sorry about the late reply I was on holiday last week. I have tried installing it from source and now I get this error: CliError: Manifest file missed.
It seems that this modification of the example script produces no file (the snapshot directory is empty):
from maro.simulator import Env
from maro.simulator.scenarios.cim.common import Action

env = Env(scenario="cim",
          topology="toy.5p_ssddd_l0.0",
          start_tick=0,
          durations=100,
          options={"enable-dump-snapshot": "./dump_data"})

metrics, decision_event, is_done = env.step(None)
action = Action(0, 0, 0, 0)

while not is_done:
    metrics, decision_event, is_done = env.step(action)

print(f"environment metrics: {env.metrics}")

The command I'm using is:

The folder path is:
/home/ciprian/PycharmProjects/inventory_management/dump_data/snapshot_dump_2021_04_12_15_42_21_159

@Jinyu-W yes, I confirm that I installed from source.

It seems that using the quick start example here with the addition of the options parameter from above and the missing action_type parameter, the directory is filled now and I could use the visualization command. Thanks for the help!

To fix the code mentioned by @cpn one can also do the following:
from maro.simulator import Env
from maro.simulator.scenarios.cim.common import Action

env = Env(scenario="cim",
          topology="toy.5p_ssddd_l0.0",
          start_tick=0,
          durations=100,
          options={"enable-dump-snapshot": "./dump_data"})
env.reset()

metrics, decision_event, is_done = env.step(None)
action = Action(0, 0, 0, 0)

while not is_done:
    metrics, decision_event, is_done = env.step(action)

print(f"environment metrics: {env.metrics}")

Indeed, env.reset() will call the code necessary to start the visualization process. Of course, when you will launch maro inspector an error will show for the intra-epoch visualization (since it is a single epoch). However, inter-epoch visualization works correctly.

To fix the code mentioned here one might do the following:
from maro.simulator import Env
from maro.simulator.scenarios.cim.common import Action

env = Env(scenario="cim",
          topology="toy.5p_ssddd_l0.0",
          start_tick=0,
          durations=100,
          options={"enable-dump-snapshot": "./dump_data"})
env.reset()

metrics, decision_event, is_done = env.step(None)
action = Action(0, 0, 0, 0)

while not is_done:
    metrics, decision_event, is_done = env.step(action)

print(f"environment metrics: {env.metrics}")

Indeed, env.reset() will call the code necessary to start the visualization process. Of course, when you will launch maro inspector an error will show for the intra-epoch visualization (since it is a single epoch). However, inter-epoch visualization works correctly.

Thanks for your support! Your advice has been updated to the project.


Milestone 1 - Deadline 28 Oct

Getting 3 people to involve

[ ] Getting a delivery manager onboard
[ ] Getting students to support MozFest (and continue the project at UAL)
[ ] Getting a social worker to help in MozFest

we have 5 people! More than what we set in the target :)


Option(prompt=True, multiple=True)

Click's support for 'prompt' is great! And many thanks for the excellent library :)
However, prompt=True does not play well with multiple=True.
Playing with this example:
import click

@click.command()
@click.option('-v', '--value',
              prompt=True, multiple=True)
def cli(value):
    print value  # just print the value

if __name__ == '__main__':
    # supporing env vars
    cli.main(auto_envvar_prefix='TEST')

Let's first pass multiple options (it works):
$ python cli.py -v1 -v2 -v3
(u'1', u'2', u'3')

Great, now let's test the prompt:
$ python cli.py
Value [()]: 1 2 3
(u'1', u' ', u'2', u' ', u'3')

Hmm, the input is not split using spaces!
Okay, maybe environment variable does it better?
$ TEST_VALUE="1 2 3" python cli.py
(u'1', u'2', u'3')

Yes, it does!

I suggest to inherit the auto_envvar_prefix behavior by default, and also introduce a keyword that can preprocess a value only if it was taken from the prompt.
Or even better, support a callable prompt keyword which accepts the same keyword arguments as prompt=True would set: it will enable the user to pass click.prompt with any custom settings:
@click.option(prompt=lambda **kwargs: click.prompt(**kwargs))
def cli(value):
    #...

Or at least prevent it from splitting the string as an iterable :)

has there been some improvement to this problem? I would like to explore the option of sentinel such as blank line to stop accepting more values.

The proper solution is to prompt in the function interactively instead of outside.  This is just too complex to handle at that layer.


Fix broken travis

There's a test that only fails on Travis:
_observe___update__should_notify_about_updates

This is already done.


Add Contact Form as a seperate Page

Hi Petro, as discussed I've added the new contact form as a new page on the route /contact

I also added the link to the new page on the homepage as a separate card.

Note: Adding the new form to the /contact route, the business card page is moved to /card route now.
Let me know if you need any more changes.

I've added helper messages in case of form submit success and errors:
The form gets disabled after successful submission.

I've also added a loading state to the submit button for better UX.


Create requirements.txt file with locked in library versions

Decided to put the versions inside of setup.py instead. Added in https://github.com/pwnbus/scoring_engine/pull/252


[HOLD for payment 2023-04-03] Clean-up react-native-web workaround and fix it upstream

Coming from https://github.com/Expensify/App/issues/9183#issuecomment-1381676114
@kidroca Has raised that this workaround can be fixed in the react-native-web upstream and that is definitely what we prefer. Creating this issue to track a progress on this.
Slack discussion is here

@sophiepintoraetz sorry I think this does not need to be handled as bug, just to track this and have room for updates.

Thanks!

Making this Weekly as it might take a while to get the maintainer to approve the payment, this is mainly for tracking

This issue has not been updated in over 15 days. @kidroca eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

@kidroca Could you link the upstream PR here please?

Yeah, sorry I haven't published it yet
I think I need to post 2 PRs

for our fork (because that's what we're using in App)
and for the original repo

I see thanks for the context

I've opened a bug report on the upstream repo

https://github.com/necolas/react-native-web/issues/2492

Created a PR for the main repository

https://github.com/necolas/react-native-web/pull/2493

Our fork and App PR's are ready
Summary

upstream issue: https://github.com/necolas/react-native-web/issues/2492
upstream PR: https://github.com/necolas/react-native-web/pull/2493
fork PR: https://github.com/Expensify/react-native-web/pull/15
App PR: https://github.com/Expensify/App/pull/15663

@mountiny
Noone is assigned to review

https://github.com/Expensify/react-native-web/pull/15

I'm not sure how who/how gets assigned to review for Expensify other projects/forks

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.89-0 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/15663

If no regressions arise, payment will be issued on 2023-04-03. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

@mollfpr I think you have reviewed and tested the PR, can you comment here so I can assign you

@mountiny fyi you can manually assign C+ w/out them having to comment 👍

Waaaaat, they were not showing up in my list, maybe I could scroll and I did not. Thanks!

Weird!! Hope it works next time 😬

@mollfpr this still needs to be paid for your review and testing right?

Current assignee @dylanexpensify is eligible for the Bug assigner, not assigning anyone new.

@dylanexpensify could you please pay $1000 to @mollfpr for PR review and testing, thank you!

@dylanexpensify The job is private for me.

@dylanexpensify Applied, thank you!

Offer sent!

Payment done!


Documentation: update link in CONTRIBUTING.md

Hey there, first time contributing and I'm in the middle of reading the contribution best practice, so sorry for any mistakes in this pull request.
When clicking the Contributing section link under the Contributors guidelines title, this linked to the Godot page not found link.
I changed the link from https://docs.godotengine.org/en/latest/contributing/ways_to_contribute.html to https://docs.godotengine.org/en/latest/contributing/how_to_contribute.html.
Now, when a user clicks the link, it will redirect them to the start of the contribution documentation.

It looks like there is more than one spot where the invalid link is used, updating those other spots now.

You should rebase your commits to squash them into one: https://docs.godotengine.org/en/stable/contributing/workflow/pr_workflow.html#the-interactive-rebase

Ok should be rebased now :+1:

When clicking the Contributing section link under the Contributors guidelines title, this linked to the Godot page not found link.

That means the redirect isn't working correctly, even though it was added in https://github.com/godotengine/godot-docs/pull/9609.

See also:

https://github.com/godotengine/godot-docs/pull/9631

Thank you @AThousandShips for updating the CSV redirects, I didn't know that existed :sweat_smile: .
One question I have is, do we want the "old link" to be in the CONTRIBUTING.md doc still, or does it not matter because we redirect?

Should be updated here I'd say to help along