Add support for testing unpackaged WinUI applications

Results of my investigations on the WinUI issue https://github.com/microsoft/testfx/issues/1127#issuecomment-2075705760 are showing that we now work correctly for all cases but unpackaged applications. Although, this is not a work related to MSTest, I want to keep track of this missing feature.

Thanks @Evangelink, is there an issue tracking this in the WinAppSDK repo we can link to?
Also, copying your matrix here and formatting as a table:

WindowsAppSDKSelfContained
Not set
Not Set
Not Set
True
True
True
False
False
False

WindowsPackageType
Not set
None
MSIX
Not set
None
MSIX
Not set
None
MSIX

Result with VSTest
✅
❌
✅
✅
❌
✅
✅
❌
✅

And the resulting error for the None WindowsPackageType:
File name: 'C:\src\temp\MSTestWinUI\UnitTest\bin\x64\Debug\net6.0-windows10.0.19041.0\win10-x64\AppxManifest.xml'
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
   at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
   at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
   at System.Xml.XmlTextReaderImpl.FinishInitUriString()
   at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext)
   at System.Xml.Linq.XDocument.Load(String uri, LoadOptions options)
   at Microsoft.VisualStudio.UwpTestHostRuntimeProvider.AppxManifestFile.ReadTargetPlatformVersions()
   at Microsoft.VisualStudio.UwpTestHostRuntimeProvider.AppxManifestFile.get_TargetPlatformVersion()
   at Microsoft.VisualStudio.UwpTestHostRuntimeProvider.Deployer.Microsoft.VisualStudio.UwpTestHostRuntimeProvider.IDeployer.get_TargetPlatformVersion()
   at Microsoft.VisualStudio.UwpTestHostRuntimeProvider.UwpTestHostManager.<LaunchHostAsync>d__36.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.UwpTestHostRuntimeProvider.UwpTestHostManager.<Microsoft-VisualStudio-TestPlatform-ObjectModel-Host-ITestRuntimeProvider-LaunchTestHostAsync>d__28.MoveNext()<---

Thanks @Evangelink, is there an issue tracking this in the WinAppSDK repo we can link to?

Not yet. I am still discussing some details but I will post here the ticket or info once it's sorted.

Postponing to next iteration as there were many bug fixes to handle this sprint.

Postponing to wait for availability from WinUI team.

@Evangelink any idea when this will be fixed ?

Sadly it seems this isn't going to be coming soon as we don't have any priority related to WinUI at the moment. Please upvote the issue if you are interested so we could use traction to revisit some team priorities.


Review previous steps on the roadmap

Description
As a Project Manager, I want to review the previous steps on the project roadmap. This will ensure that all tasks have been completed as planned and that the project is progressing smoothly towards its goals.
Acceptance Criteria

Access the visual representation of the project roadmap.
Review each completed step on the roadmap, checking that the associated tasks have been fully and correctly implemented.
Verify that all deliverables for each step have been produced and meet the required standards.
Check that each step was completed within its planned timeframe and did not cause any delays in the project schedule.
Consult with the relevant team members to clarify any doubts or issues related to the completed steps.
Document the review results, noting any deviations from the plan and their reasons.
Discuss the review results with the team and decide on any necessary actions or adjustments to the project plan.
Update the project documentation with the final version of the review results and any changes to the project plan.
Review the roadmap, removing, adding, and updating the steps done until now and providing a development flow for sequential and parallel steps.

Feedback: still need to update the roadmap on roadmap.sh

I have updated the steps until now on the roadmap. Please take a look and give me feedback about the changes.
The blue lines indicate the steps until now, and the red lines show the following steps yet to be validated.

Description updated.


clean up jenv to follow the newer pattern

This translates the pattern set in go.plugin.bash to jenv.

Looks good to me - thanks!


Save default country and currency in settings

Please have a setting which will save the users default country and currency. This way when logging into another device and go to the market tab, it will display the trades from their country and their currency by default.

You can already change it, go to Account -> Settings -> Country

There is not currency setting and these settings do not get saved when I log into the websites on my desktop.

The currency is set along with the country, e.g. if you select Australia you get AUD.
We don't save the settings to the account to ensure maximum privacy.


.aac url not playing properly

Hello,
I see from the description that the player can play .aac files, which is fantastic, but for some reason http://ckpk.streamon.fm:8000/CKPK-192k.aac does not seem to work.  Is there anything that can be done to make it compatible?
Thank you.

I just tried proping that with ffprobe. Maybe the stream is malformed?
[http @<PHONE_NUMBER>063c80] Stream ends prematurely at 0, should be<PHONE_NUMBER>3709551615
http://ckpk.streamon.fm:8000/CKPK-192k.aac: I/O error```

That's a little beyond my expertise level to know, unfortunately.  I do know it plays just fine in Firefox and MusicBee.
The only other information I have that may be helpful is that anytime I start listening to it, it plays a short few second commercial before getting to the music.  I'm thinking maybe that is screwing it up, since it's doing something fancy there?  I tried using FF's inspector network monitor to see what I could see, and all I could tell is that it does give me a StreamOnPermID cookie thing, that maybe is allowing me to play it properly?
I don't know.    I'm a bit out of my league here.

Fixed as of 1.2.50.


completed the add event and delete event use case. and all the other required files in different layers.

📜 Description
This pull request introduces the components for the "Add Event" and "Delete Event" features. It includes controllers, presenters, input/output boundaries, and view models for each feature, as well as the corresponding logic in the use case layer.
🛠 Key Changes
Add Event Feature
Controller: AddEventController handles user interaction for adding events.
Presenter: AddEventPresenter formats and prepares data for the view.
State: AddEventState defines the state for adding an event.
ViewModel: AddEventViewModel manages the state of the add event view.
Use Case: Added input/output boundaries, input data, output data, and interactor for handling add event logic.
View: AddEventView displays the add event UI.
Delete Event Feature
Controller: DeleteEventController handles user interaction for deleting events.
Presenter: DeleteEventPresenter formats and prepares data for the view.
State: DeleteEventState defines the state for deleting an event.
ViewModel: DeleteEventViewModel manages the state of the delete event view.
Use Case: Added input/output boundaries, input data, output data, and interactor for handling delete event logic.
Miscellaneous Updates
Modified various files related to controllers, views, and interactor logic.

good job!

The Add Event and Delete are working perfectly. Thanks !


There are no "Start Streaming Logs" and "Stop Streaming Logs" actions for a function app with Flex Consumption (Preview) hosting plan

OS: All
Build Version: v1.14.2-alpha.0
Regression: Not a Regression
Repro Steps:

Create a function app with Flex Consumption (Preview) hosting plan and East Asia location.
Right click the above function app to open its context menu.
Check whether there are "Start Streaming Logs" and "Stop Streaming Logs" actions.

Expect:
There are "Start Streaming Logs" and "Stop Streaming Logs" actions.
Actual:
There are no "Start Streaming Logs" and "Stop Streaming Logs" actions.

More Info:
There are "Start Streaming Logs" and "Stop Streaming Logs" actions in function context menu after deploying a function project to a function app with Flex Consumption (Preview) hosting plan.

The function context menu takes the user to a different log streaming than the function app one.
The function live streaming looks like this:

It is specific to the function trigger itself.
Currently, I don't think that the log streaming for the function app is working correctly which is why it was removed from the context menu for flex apps.


Update 02-14complex-number.pl

I improved the example with more complex/imaginary operations.

Thanks a lot!


Dependabot updates

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 98.31%. Comparing base (2dfd6f4) to head (958a40e).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #85   +/-   ##
=======================================
  Coverage   98.31%   98.31%
=======================================
  Files          59       59
  Lines        2907     2907
  Branches      403      403
=======================================
  Hits         2858     2858
  Misses         30       30
  Partials       19       19

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Can't export data to another DB and skip column

I have two databases with two identical tables, except one of them has one additional column. Suppose the old version has 10 columns, the new one has 11 columns.
I want to copy all rows from new table to the old one, but I want to not create, to ignore such column. I marked "skip" in export dialog window.
However, export (from one database to another) fails with the following error message:
org.jkiss.dbeaver.model.exec.DBCException: Target attribute for [column_name] wasn't resolved
Actually, it doesn't work even if I don't skip this column - dbeaver tried to create it (I guess with ALTER TABLE query) and also fails. But I am not interested in that - I want to copy 10 columns and skip 1.

Duplicate of #731
Will be fixed in the next version.

OK.
Well, also I found out the reason why it can't create new column in another table. The reason is that it tried to use the following command ALTER TABLE <table> ADD <column> smallint NOT NULL without default value. It would be nice to have ability to substitute default value here. It could be tricky to do in the next version, but it is nice thing to have.
I think should be fine for columns without NOT NULL constraint.


Documented but unimplemented routes should return 501 not 404

The routes documented by Swagger should return 501 instead of 404 because it is not a client error to invoke them.

This change is

Jenkins job mixer/presubmit passed

Jenkins job mixer/e2e-smoketest passed

Jenkins job mixer/e2e-smoketest passed

jenkins rebuild mixer/manager-regression

Jenkins job mixer/manager-regression passed

Jenkins job mixer/presubmit passed

Jenkins job mixer/e2e-smoketest passed

Jenkins job mixer/e2e-smoketest passed

Jenkins job mixer/manager-regression passed

Jenkins job mixer/manager-regression passed


Update the Kubernetes Hosting documentation

The Kubernetes hosting documentation needs a review. Things that need to be addressed for example

[x] Determine which is preferred: Dapr CLI or Helm: Across the all topics under hosting/kubernetes - There is conflicting advice between installing/upgrading production clusters with Helm or CLI. We should be clear on what is preferred for production
[x] https://docs.dapr.io/operations/hosting/kubernetes/kubernetes-production/#tracing-and-metrics-configuration section is very sparse and does not provide guidance
[x]  Also include this issue Updating K8s guidance to include app rollout step for when a cluster is completely restarted #1072
[x] The K8s overview topic and the control plane https://docs.dapr.io/operations/hosting/kubernetes/kubernetes-overview/ need improved wording on how they work and there are broken links in this topic
[ ] Ideally there should be a script for installing Dapr with production guidance, similar to this https://github.com/mchmarny/dapr-demos/tree/master/setup

kubernetes-deploy/#install-in-highly-available-mode - This sentence is wrong. Placement is now HA
"You can run Dapr with 3 replicas of each control plane pod with the exception of the Placement pod in the dapr-system namespace for production scenarios."

This is fixed with https://github.com/dapr/docs/pull/1220

kubernetes-production/ topic

Does not mention HA mode as being preferred for production.

This is mentioned here: https://v1-rc3.docs.dapr.io/operations/hosting/kubernetes/kubernetes-production/#cluster-capacity-requirements

Also include this issue Updating K8s guidance to include app rollout step for when a cluster is completely restarted #1072

This is mentioned as the last step here: https://v1-rc3.docs.dapr.io/operations/hosting/kubernetes/kubernetes-upgrade/

Also see https://github.com/dapr/docs/issues/1506

This issues is now complete.  It is too opinionated to have a one size fits all for the production guidance.


Bot API 6.3

Todo in #1370

This is looking good, thanks!! :smiley:
Update the changelog and readme (to API 6.3) and then we should be ok to release.

Always forgetting something ;D
I'm on it...

Done.

forum_topic_created
forum_topic_closed
forum_topic_reopened

added to Message::subEntities but not added to Message::getType


test-cli --version reports wrong version

Testing #205479

Installed is 0.0.5

I don't repro in 0.0.6


Add setup instructions and example config files for popular kubernetes container platforms

We should add documentation instructions for setting influx products up on popular cloud providers.

[ ] document how to configure and set up the tick stack locally in docker
[ ] document how to configure and set up the tick stack on kubernetes (include configs)

[ ] telegraf as a sidecar and a daemonset
[ ] influxdb, chronograf, kapacitor with persistent volumes

[ ] document how to configure and set up the tick stack on Amazon EKS https://aws.amazon.com/eks/ (include configs) (should be very similar to others)
[ ] document how to configure and set up the tick stack on OpenShift (include configs) (should be very similar to others)

linking #1565

Closing in favor of https://github.com/influxdata/docs.influxdata.com/issues/2063.


dashboard: update to 0422

Signed-off-by: Zheng Xiangsheng<EMAIL_ADDRESS>
What problem does this PR solve?
Update Dashboard to v0422
What is changed and how it works?
Update Dashboard to v0422
Release note
Check List

Manual test (add detailed scripts or steps below)

/run-all-tests

/run-all-tests

/rebuild

/rebuild

/rebuid

/rebuild

/rebuild

/rebuild

/test

/merge

/run-all-tests

/merge

/rebuild


Jade websockets re-compile ?

Hi guys,
Loving the jade syntax..  but what I'd like to do is create a websockets connection to my express server using sockets.io, and to 're-render' the page when server side events happen
Consider this example below..  The idea is that the server can send an updated list of items ('data') at any time via websockets..  it would be awesome if I could call the mixin in this way :-)  Let me know if possible/impossible or if I should be taking a different approach
I understand I'm 'confusing' server/client side stuff here...  but a client-side ability to call a mixin would be 1337
Thanks!
			html
				head
				body
					ul
						mixin item(data)
							li= data.title

					script(src='/socket.io/socket.io.js')
					script.
						var socket = io.connect('http://localhost:3000')
						socket.on('items', function (data) {
							item(data);
						})

Got around this by rendering the template server side and returning the RESULT of that to the browser;
			function renderBlocks() {
				myStuff = [{...}]
				var templatePath = require.resolve('./views/template.jade');
				var templateFn = require('jade').compileFile(templatePath);
				return templateFn({things: myStuff});
			}

You should really do:
                var templatePath = require.resolve('./views/template.jade');
                var templateFn = require('jade').compileFile(templatePath);

at the top level of your file, and just keep the templateFn({things: myStuff}) bit inside the function.  This will result in far better performance.

Hi.
I am also trying to achieve this. Could you provide a little more insight into which files are required and example code?
I also have socket.io connection and express, but I'm not beeing able to pass "data" objects from server to jade.
Thanks

@staminna You will need to render your templates on the client.  Your question seems to reach way beyond the scope of just this library, so you may have better luck asking your question ons stack overflow.  You will likely have to ask specific questions for each step you get stuck with though, rather than broad, vague "build my app for me" style questions.

Thanks for input. I managed to get it working today using the DOM.


[PR commands] rebase

Rebase the patch on top of main. This would also trigger all the tests upon successful rebase. I think github already has this feature but i'm not sure why it doesn't show up already. see: https://github.blog/changelog/2022-02-03-more-ways-to-keep-your-pull-request-branch-up-to-date/

just set up the feature.

you can see the button in a PR now. you can check with this PR https://github.com/solana-labs/move/pull/356


MKL dependencies not properly linked?

I'm building ND4J using one of our internal docker images as a build environment; this has MKL on the path. Build itself is fine.
When building an uber-jar for Spark submit, I find that all of my executor containers are failing with the following:
"Intel MKL FATAL ERROR: Cannot load libmkl_mc3.so or libmkl_def.so."
Extracting the jar file out, it seems that the following dependencies are bundled:

Notably those two dependencies (that are failing) aren't included.
Edit: This is an AWS EMR spark cluster of c3.2xlarge instances.

That looks like the machine it is going to run on doesn't have AVX, and the fallback lib (libmkl_def) isn't around. I wonder what mc3 stands for...

@AlexDBlack I've made the modifications necessary to have it bundle those two files as well!
@treo It's apparently for CPUs that support only SSE: https://software.intel.com/en-us/node/528488


v11: Color overview v3

Updates to the color/overview tab based on feedback.

New layering model images
Expanded color token section
Added more h2 for easier navigation.

Side note: I branched this PR off my implementation PR so that's why there's a bunch of other stuff in it. Not sure if that will cause any issues when merging.

Going to close this and make a new clean PR.. Too many conflicts to resolve.


False positives in RepeatedExamples

When a shared examples are used to setup some context, it's possible to have the same examples in different context. For example, this is how we test Pundit permissions:
it_behaves_like 'admin' do
  it { expect(subject).to permit(user, record) }
end

it_behaves_like 'poweruser' do
  it { expect(subject).to permit(user, record) }
end

Is this way of setting tests wrong, or should RepeatedExamples ignore examples in different it_behaves_like blocks?

That should be totally fine. We should probably also check for (block (send ....) ...) that matches the Includes language. Adding that to the ExampleGroup would probably help fix this bug.
Thanks for reporting!

got false positive with rspec-its:
        its([:ssn]) { is_expected.to be_nil }
        its([:current_address]) { is_expected.to be_nil }

@kukunin I believe we have a fix in master for that if you want to try it out to confirm

Confirmed. latest release fixed my problem. I don't know about problem of topicstarter.
Thanks for quick fix

@Kukunin you can also use
its([:ssn], [:current_address]) { is_expected.to be_nil }

A more thorough audit of policies may be necessary. A very scrubbed policy test we have:
require "rails_helper"

RSpec.describe RequestPolicy do
  subject(:policy) { described_class }

  permissions :update? do
    it "denies access to update completed requests" do
      request = create(:request, :approved)

      expect(policy).not_to permit(request.user, request)
    end

    it "denies access to update another user's pending requests" do
      request = create(:request, :pending)

      expect(policy).not_to permit(User.new, request)
    end

    it "grants access to update pending requests" do
      request = create(:request, :pending)

      expect(policy).to permit(request.user, request)
    end
  end
end

All three of them give me the Don't repeat examples within an example group. but they are all different contexts and so should be "repeated."

@lauramosher in that case the issue is that rubocop-rspec doesn't know that permissions defines a new example group. I need to introduce some sort of configuration that works across rubocop-rspec cops that lets users specify custom example group class methods

That makes sense. Let me know if I can help at all. I'm not wholly familiar with everything that goes into cops, but happy to help if I can.

Thanks @lauramosher! I think a proper solution requires some more complex changes that I would need to figure out. If you are interested in contributing though checkout issues with the cop label. They are surprisingly easy and fun to work on!

Since the original issue here is fixed thanks to @redross I'm going to close this issue and open up a separate issue for the problem that @lauramosher described


Haskell/SnapFramework

Implementing the Conduit API using Haskell's snap framework
Link to repo
Current Status
Todo:

[x]  🏁 Fork the starter repo & post the link in this issue

[ ] 🔨 Implement all of Conduit's functionality per the spec & API

[ ]  👀 Move repo to main org & Peer review final codebase by admins/community (RFC)

Hello we are currently moving all work in progress to Github Discussions.
I'll close this issue by now, you can find instruction to open a discussion there : https://github.com/gothinkster/realworld/discussions/633
Thanks for your contribution !


(FACT-2402) Exclude fuseblk from filesystems

In Facter 3.x code, fuseblk is excluded from filesystems fact on Linux. In order to provide output compatibility with Facter 3.x, this needs to be excluded from Facter 4.x filesystems fact as well.

CLA signed by all contributors.


API doc for customStyle should mention that values must be strings

Description
this.customStyle['--baz'] = 2;

Throws an error, "TypeError: property.indexOf is not a function".
this.customStyle['--baz'] = '2';

Does not. We should warn people about that. Or just convert to string, one or the other.
Live Demo
https://jsbin.com/rihavekara/edit?html,console,output
Click da button, see da error.
Steps to Reproduce
See above.
Versions

Polymer: v1.5.0
webcomponents: v0.7.22

The error no longer throws, but it now requires the following: https://jsbin.com/voxuzeqesu/edit?html,console,output

Actually, it is now documented: https://www.polymer-project.org/2.0/docs/api/elements/Polymer.Element#method-updateStyles

The optional parameter overrides inline custom property styles with an object of properties where the keys are CSS properties, and the values are strings.


Consider adding a dependency graph

If the dependencies among the defined functions are maintained, one could conceivable offer a "delete function" mechanism.

As of mid Thermidor 2024, only the connected component of the function named in .pragma main is checked for having been correctly defined. It runs a depth-first search on the how-def arcs. An old local text file wished for "handle functions that depend on as-yet-undefined functions" which is possible now as long as the main call will not need them. I am likely to consider the current solutions sufficient and to close this issue soon.

Stable for 1.0 and 1.1 but I believe I can get that working more smoothly if the pycode dict is filled up along the returning recursions of check_names instead of upon reading the function. But, then, I have to pay extra care to the case of list() with w_code = 2.


Add a GitHub Actions to optimize images automatically

Add a GitHub Actions to optimize images automatically, probably using the ShortPixel PHP SDK.

I created it a while ago, but need to fix it as it's not doing signed commits.
Disabling it until it's fixed.

Done


receiving CORS error [BUG]

I used your described method of using docker image here https://github.com/FujiwaraChoki/MoneyPrinter/issues/140. and I can see containers are running without any issue.

here's the backend log

Environment:
Docker version 24.0.4, build 3713ee1
Running on linux host:
Linux XXXXX 4.18.0-477.15.1.el8_8.x86_64 #1 SMP Fri Jun 2 08:27:19 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux
This is a node on same network I'm accessing it from a laptop with <IP_ADDRESS> IP . the Linux has IP <IP_ADDRESS> . do you think it needs to be accessed from same host i.e., <IP_ADDRESS> GUI ?
Any kind of help is highly appreciated.
Thanks

Please visit localhost:3000 not {IP}:3000

Try to start your browser with CORS disabled. For me was "C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir=~\chromeTemp" . I think there was an extension for firefox that does the same.

What fixed this for me is that the frontend is fixed on localhost:8080 -> has to be changed to your backend server IP address/hostname.
sed -i 's/localhost/<ipaddress>/' index.html

Is there any reason why the frontend is separate? Couldn't it be served from the same server using Flask's built-in render_template method?

did u ran backend/main.py?
cd backend
python main.py

What fixed this for me is that the frontend is fixed on localhost:8080 -> has to be changed to your backend server IP address/hostname. sed -i 's/localhost/<ipaddress>/' index.html

This solution worked for me. it starts generating the video but I'm getting a different error message.  I think it's related to some font not properly configured in imagemagick configure file. I'm trying to figure that out now.
Thanks

Is there any reason why the frontend is separate? Couldn't it be served from the same server using Flask's built-in render_template method?

I've docker running on a separate instance with some beefy specs cpu. I'd like to run it on that. It's a headless without gui so wondering if that's possible.

Well. I found the solution for my problem. Sharing it for other people who may be experiencing similar issue. I had to reinstall
I needed to compile imagemagick with PNG support. There is a project on github that handels all the steps for us, it's ubuntu/debian only atm.
https://github.com/SoftCreatR/imei/
after installing it took around 20-25 mins to complete the imagemagick install and fixed everything for me. so far so good.
Thanks


Problem: Docs do not mention supported OSes.

Solution: Add some notes about the OS support.

Codecov Report

Merging #458 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #458   +/-   ##
=======================================
  Coverage   99.57%   99.57%
=======================================
  Files           5        5
  Lines         233      233
=======================================
  Hits          232      232
  Misses          1        1


Add flag to preserve original PyPI URIs

Melange Pull Request Template
Relates to: https://github.com/chainguard-dev/melange/pull/761

Functional Changes

[ ] This change can build all of Wolfi without errors (describe results in notes)

Notes:
SCA Changes

[ ] Examining several representative APKs show no regression / the desired effect (details in notes)

Notes:
Linter

[ ] The new check is clean across Wolfi
[ ] The new check is opt-in or a warning

Notes:
I was using the convert functionality today and saw several 404s for PyPI packages/versions that should exist, e.g.,
❯ go run . convert python typing-extensions --python-version 3.11
2024/06/13 17:23:53 INFO generating convert config files for python package typing-extensions version: 3.11 on python version:
2024/06/13 17:23:53 INFO [typing-extensions] Generating manifests
2024/06/13 17:23:53 INFO [typing-extensions] Retrieving Package information from https://pypi.org
2024/06/13 17:23:53 INFO [typing-extensions] Check Dependency list: [typing-extensions]
2024/06/13 17:23:53 INFO [typing-extensions] Fetch Package Data
2024/06/13 17:23:54 INFO [typing-extensions] typing-extensions Add to generate list
2024/06/13 17:23:54 INFO [typing-extensions] Check for dependencies
2024/06/13 17:23:54 INFO [typing-extensions] Searching source for dependencies
2024/06/13 17:23:54 INFO [typing-extensions] 0 Number of deps
2024/06/13 17:23:54 INFO [typing-extensions] Generating 1 files
2024/06/13 17:23:54 INFO [typing-extensions] Index typing-extensions Package typing-extensions
2024/06/13 17:23:54 INFO [typing-extensions] Create manifest
2024/06/13 17:23:54 INFO Trying to get commit data for typing-extensions
2024/06/13 17:23:54 INFO [typing-extensions] Generate Package
2024/06/13 17:23:54 INFO [typing-extensions] Run time Deps []
2024/06/13 17:23:54 INFO [typing-extensions] Generate Environment
2024/06/13 17:23:54 INFO [typing-extensions] Generate Pipeline for version 4.12.2
2024/06/13 17:23:54 INFO Getting artifact https://files.pythonhosted.org/packages/source/t/typing-extensions/typing-extensions-4.12.2.tar.gz
2024/06/13 17:23:54 INFO client.Do("https://files.pythonhosted.org/packages/source/t/typing-extensions/typing-extensions-4.12.2.tar.gz")
2024/06/13 17:23:54 INFO [typing-extensions] SHA256 Generation FAILED. 404 when getting https://files.pythonhosted.org/packages/source/t/typing-extensions/typing-extensions-4.12.2.tar.gz
2024/06/13 17:23:54 INFO [typing-extensions]  Or try 'curl ' to check out the API
2024/06/13 17:23:54 INFO [typing-extensions] FAILED TO CREATE MANIFEST artifact 256SHA FAILED GENERATION. Investigate by going to https://pypi.org/project/typing-extensions/ did not match Package data SHA256 1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8
2024/06/13 17:23:54 INFO error during command execution: artifact 256SHA FAILED GENERATION. Investigate by going to https://pypi.org/project/typing-extensions/ did not match Package data SHA256 1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8
exit status 1

That is, https://files.pythonhosted.org/packages/source/t/typing-extensions/typing-extensions-4.12.2.tar.gz does not exist:
❯ curl -w "%{http_code}" https://files.pythonhosted.org/packages/source/t/typing-extensions/typing-extensions-4.12.2.tar.gz
404

Removing this: https://github.com/chainguard-dev/melange/blob/270e7a70f449483b8fc30648cfd239a3828cb5be/pkg/convert/python/python.go#L403-L408
allowed the conversion to work:
❯ go run . convert python typing-extensions --python-version 3.11
2024/06/13 17:26:37 INFO generating convert config files for python package typing-extensions version: 3.11 on python version:
2024/06/13 17:26:37 INFO [typing-extensions] Generating manifests
2024/06/13 17:26:37 INFO [typing-extensions] Retrieving Package information from https://pypi.org
2024/06/13 17:26:37 INFO [typing-extensions] Check Dependency list: [typing-extensions]
2024/06/13 17:26:37 INFO [typing-extensions] Fetch Package Data
2024/06/13 17:26:38 INFO [typing-extensions] typing-extensions Add to generate list
2024/06/13 17:26:38 INFO [typing-extensions] Check for dependencies
2024/06/13 17:26:38 INFO [typing-extensions] Searching source for dependencies
2024/06/13 17:26:38 INFO [typing-extensions] 0 Number of deps
2024/06/13 17:26:38 INFO [typing-extensions] Generating 1 files
2024/06/13 17:26:38 INFO [typing-extensions] Index typing-extensions Package typing-extensions
2024/06/13 17:26:38 INFO [typing-extensions] Create manifest
2024/06/13 17:26:38 INFO Trying to get commit data for typing-extensions
2024/06/13 17:26:38 INFO [typing-extensions] Generate Package
2024/06/13 17:26:38 INFO [typing-extensions] Run time Deps []
2024/06/13 17:26:38 INFO [typing-extensions] Generate Environment
2024/06/13 17:26:38 INFO [typing-extensions] Generate Pipeline for version 4.12.2
2024/06/13 17:26:38 INFO Getting artifact https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz
2024/06/13 17:26:38 INFO client.Do("https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz")
2024/06/13 17:26:38 INFO Generated melange config: py3.11-typing-extensions.yaml

This PR adds a flag to ignore the URI conversion for problematic packages:
❯ go run . convert python typing-extensions --python-version 3.11 --preserve-base-uri
2024/06/13 17:39:56 INFO generating convert config files for python package typing-extensions version: 3.11 on python version:
2024/06/13 17:39:56 INFO [typing-extensions] Generating manifests
2024/06/13 17:39:56 INFO [typing-extensions] Retrieving Package information from https://pypi.org
2024/06/13 17:39:56 INFO [typing-extensions] Check Dependency list: [typing-extensions]
2024/06/13 17:39:56 INFO [typing-extensions] Fetch Package Data
2024/06/13 17:39:57 INFO [typing-extensions] typing-extensions Add to generate list
2024/06/13 17:39:57 INFO [typing-extensions] Check for dependencies
2024/06/13 17:39:57 INFO [typing-extensions] Searching source for dependencies
2024/06/13 17:39:57 INFO [typing-extensions] 0 Number of deps
2024/06/13 17:39:57 INFO [typing-extensions] Generating 1 files
2024/06/13 17:39:57 INFO [typing-extensions] Index typing-extensions Package typing-extensions
2024/06/13 17:39:57 INFO [typing-extensions] Create manifest
2024/06/13 17:39:57 INFO Trying to get commit data for typing-extensions
2024/06/13 17:39:57 INFO [typing-extensions] Generate Package
2024/06/13 17:39:57 INFO [typing-extensions] Run time Deps []
2024/06/13 17:39:57 INFO [typing-extensions] Generate Environment
2024/06/13 17:39:57 INFO [typing-extensions] Generate Pipeline for version 4.12.2
2024/06/13 17:39:57 INFO Getting artifact https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz
2024/06/13 17:39:57 INFO client.Do("https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz")
2024/06/13 17:39:58 INFO Generated melange config: py3.11-typing-extensions.yaml

versus:
❯ go run . convert python typing-extensions --python-version 3.11
2024/06/13 17:40:03 INFO generating convert config files for python package typing-extensions version: 3.11 on python version:
2024/06/13 17:40:03 INFO [typing-extensions] Generating manifests
2024/06/13 17:40:03 INFO [typing-extensions] Retrieving Package information from https://pypi.org
2024/06/13 17:40:03 INFO [typing-extensions] Check Dependency list: [typing-extensions]
2024/06/13 17:40:03 INFO [typing-extensions] Fetch Package Data
2024/06/13 17:40:04 INFO [typing-extensions] typing-extensions Add to generate list
2024/06/13 17:40:04 INFO [typing-extensions] Check for dependencies
2024/06/13 17:40:04 INFO [typing-extensions] Searching source for dependencies
2024/06/13 17:40:04 INFO [typing-extensions] 0 Number of deps
2024/06/13 17:40:04 INFO [typing-extensions] Generating 1 files
2024/06/13 17:40:04 INFO [typing-extensions] Index typing-extensions Package typing-extensions
2024/06/13 17:40:04 INFO [typing-extensions] Create manifest
2024/06/13 17:40:04 INFO Trying to get commit data for typing-extensions
2024/06/13 17:40:04 INFO [typing-extensions] Generate Package
2024/06/13 17:40:04 INFO [typing-extensions] Run time Deps []
2024/06/13 17:40:04 INFO [typing-extensions] Generate Environment
2024/06/13 17:40:04 INFO [typing-extensions] Generate Pipeline for version 4.12.2
2024/06/13 17:40:04 INFO Getting artifact https://files.pythonhosted.org/packages/source/t/typing-extensions/typing-extensions-4.12.2.tar.gz
2024/06/13 17:40:04 INFO client.Do("https://files.pythonhosted.org/packages/source/t/typing-extensions/typing-extensions-4.12.2.tar.gz")
2024/06/13 17:40:04 INFO [typing-extensions] SHA256 Generation FAILED. 404 when getting https://files.pythonhosted.org/packages/source/t/typing-extensions/typing-extensions-4.12.2.tar.gz
2024/06/13 17:40:04 INFO [typing-extensions]  Or try 'curl ' to check out the API
2024/06/13 17:40:04 INFO [typing-extensions] FAILED TO CREATE MANIFEST artifact 256SHA FAILED GENERATION. Investigate by going to https://pypi.org/project/typing-extensions/ did not match Package data SHA256 1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8
2024/06/13 17:40:04 INFO error during command execution: artifact 256SHA FAILED GENERATION. Investigate by going to https://pypi.org/project/typing-extensions/ did not match Package data SHA256 1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8
exit status 1

Since this flag is opt-in, the Python tests will still pass without any modifications (ignoring the FIPS failures which aren't related):
❯ go test -tags e2e ./... -race
?   	chainguard.dev/melange	[no test files]
?   	chainguard.dev/melange/docs	[no test files]
?   	chainguard.dev/melange/internal/contextreader	[no test files]
?   	chainguard.dev/melange/internal/gen-jsonschema	[no test files]
?   	chainguard.dev/melange/internal/logwriter	[no test files]
?   	chainguard.dev/melange/pkg/cli	[no test files]
?   	chainguard.dev/melange/pkg/container	[no test files]
?   	chainguard.dev/melange/pkg/container/dagger	[no test files]
?   	chainguard.dev/melange/pkg/container/docker	[no test files]
?   	chainguard.dev/melange/pkg/convert/github	[no test files]
?   	chainguard.dev/melange/pkg/convert/relmon	[no test files]
?   	chainguard.dev/melange/pkg/http	[no test files]
?   	chainguard.dev/melange/pkg/linter/defaults	[no test files]
?   	chainguard.dev/melange/pkg/manifest	[no test files]
?   	chainguard.dev/melange/pkg/renovate	[no test files]
?   	chainguard.dev/melange/pkg/renovate/cache	[no test files]
ok  	chainguard.dev/melange/pkg/build	1.560s
ok  	chainguard.dev/melange/pkg/cond	(cached)
ok  	chainguard.dev/melange/pkg/config	1.172s
ok  	chainguard.dev/melange/pkg/convert/apkbuild	1.755s
ok  	chainguard.dev/melange/pkg/convert/gem	1.589s
ok  	chainguard.dev/melange/pkg/convert/python	7.759s
ok  	chainguard.dev/melange/pkg/convert/wolfios	(cached)
ok  	chainguard.dev/melange/pkg/index	(cached)
ok  	chainguard.dev/melange/pkg/linter	1.614s
ok  	chainguard.dev/melange/pkg/renovate/bump	1.315s
ok  	chainguard.dev/melange/pkg/sbom	1.390s
--- FAIL: TestGoFipsBinDeps (0.00s)
    e2e_test.go:47: open testdata/go-fips-bin/packages/aarch64/go-fips-bin-v0.0.1-r0.apk: no such file or directory
FAIL
FAIL	chainguard.dev/melange/pkg/sca	0.515s
ok  	chainguard.dev/melange/pkg/sign	1.356s
ok  	chainguard.dev/melange/pkg/util	(cached)
FAIL

cc: @imjasonh

@egibs CI kicked off. Let's talk on Monday. I can give it a full review then!


Add 10-bit video support

10-bit video content is becoming more and more common with a lot of modern TVs, displays, and cameras (mobile phones or dedicated) being capable of recording or playing 10 bit video files.
Popular standards like HDR10 have 10 bit video as a requirement.
Currently, RIFE doesn't support source frames with more than 8 bit pixel depth per component.
It would be very useful if RIFE could read and write 10-bit frames without losing color information during the interpolation.
Having 12/14/16-bit support for the future may also be useful, but supporting at least 10-bit content would be a big improvement, since such content is very common already.
rgb48le is one of the suitable pixel formats for the internal processing to support up to 16 bits (x3 components).
But when Practical-RIFE receives such rgb48le frames instead of rgb24 frames from the ffmpeg-based reader, the pixel data gets truncated and corrupted back to the 8-bit format while going through the inference logic.
Would it be possible to make the inference logic compatible with 10+ bit content?
Thank you for your work on RIFE!

Hi Artem, RIFE works in 32fp RGB, hope that helps.

On 27 Oct 2022, at 06:44, Artem Frolov @.***> wrote:
10-bit video content is becoming more and more common with a lot of modern TVs, displays, and cameras (mobile phones or dedicated) being capable of recording or playing 10 bit video files.
Populate standards like HDR10 have 10 bit video as a requirement.
Currently, RIFE doesn't support source frames with more than 8 bit pixel depth per component.
It would be very useful if RIFE could read and write 10-bit frames without losing color information during the interpolation.
Having 12/14/16-bit support for the future may also be useful, but supporting at least 10-bit content would be a big improvement, since such content is very common already.
rgb48le is one of the suitable pixel formats for the internal processing to support up to 16 bits (x3 components).
But when Practical-RIFE receives such rgb48le frames instead of rgb24 frames from the ffmpeg-based reader, the pixel data gets truncated and corrupted back to the 8-bit format while going through the inference logic.
Would it be possible to make the inference logic compatible with 10+ bit content?
Thank you for your work on RIFE!
—
Reply to this email directly, view it on GitHub https://github.com/hzwer/Practical-RIFE/issues/21, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMBGYKFUBJGY4C3OL4P5JR3WFIJEHANCNFSM6AAAAAARPVQ5BU.
You are receiving this because you are subscribed to this thread.


The Network Visualization tool needs a major overhaul

Required features for it:

Sensors, Actions and Neuron nodes should all have different colors.
The graph should read left to right so sensors should be on the left, internals in the middle and actions on the right
Remove the massive margins left by the plot.

Addressed the legibility of the graph with commit dcbf8ffda227d15bac8bec97b0fb4b89bf082e9e

Added colors to the graph

d4b4280d4c62ab8e864310db16e0171ba39c5a0f finished fixing this


Merge PR #15 Failed

Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in /Form/Type/KeyValueType.php on line 74:
$resolver->setAllowedTypes('allowed_keys' => array('null', 'array'));
should be :
$resolver->setAllowedTypes(array('allowed_keys' => array('null', 'array')));

This is causing serious error for us as well

PR https://github.com/Burgov/KeyValueFormBundle/pull/17 here

fixed in 1.3.1


Visually define which sounds are actively playing and which are not

Use HTML/CSS to allow active songs to have a 'soft glow' around them
Ensure hovering over sounds appropriately brings up the play/pause button

Wireframe: 2. Main Page w/play/pause functionality


Addition of a build system generator

I suggest to reuse a higher level build system than your current small make file so that powerful checks for software features will become easier.

CMake
Autotools

Sorry, no.

Does a tool like "autoscan" show any software dependencies that you find worth for further considerations?
How do you think about to support more development environments by the reuse of build system generators?


A hybrid, not a true language?

I like the idea of a language that comprises the rules described in Elegant Objects.
However, can't it be a true language of its own, with its own vm or compiler directly into bytecontent?
If you simply translate it into java or c# you only add a rather useless layer.
First concern that comes to mind: why should I even struggle to learn a new syntax?
Why shouldn't I simply apply the principles in my java code directly?
I think that better then doing such a hybrid, you should develop a framework that encloses everything... one that provides objects such as If, For and While, for instance.
Second concern The world has already seen what a disaster such an idea is: GWT is the best example. Java that turns into Javascript at compile time. Everyone lost it when it came out, started writing software with it and now we're stuck with maintanance work and truly hidden and dubious bugs because, well, Java can't possibly work like JS unless you do some dirty tricks behind...
So forgive me, but I think if you go down this path, you will be making GWT 2 or worse.

Are Scala and Clojure disasters too?

@alexpanov I haven't looked into them, to be honest. But think about the principle, how easy it is to make a wrong step - implement something on your side that translates poorly on the other one. Not to mention more languages are in discussion here, not just Java.
I think Scala and Clojure's designers have to pay a huge amount of attention to details in order not to make such a mistake...

@alexpanov and all in all, I think it would be easier to make it from scratch, with its own vm, than to struggle and accomodate other languages and ecosystems. If it's something cool, it's gonna fly fast and a proper ecosystem will be built around it.

@amihaiemil ultimately, it is a trade-off between catering to intricacies of the existing platform and doing your own vm from scratch.
For what it's worth, my opinion happens to be that it makes sense to take advantage of already existing platforms and build on the work that other people have done.
Plenty of people know Java and there is at least a slim possibility of them contributing. With an all new platform, they are essentially left out.
Basically, it's a no true Scotsman fallacy. I disagree with the premise and, thus, with the conclusion.

@alexpanov but don't you agree that it might be easier to write it from scratch than catter for other platforms? Implementation and bug-promptness wise speaking.
And what about by first idea? Why should I struggle to learn the new syntax in the first place? If I want to learn it I have to completely understand all the principles it stands for, and if I understood them, why not simply apply them in writing Java?

@amihaiemil no, I do not agree with that either. I don't know. I have never written a compiler and I do not know whether it's easy to write it from scratch or have it compile into some other form of language or byte code.
I can only learn from other people and it seems like many more nice and progressive languages get created based on an existing platform. Examples are TypeScript, ES6, Kotlin aside from the ones that I have mentioned before.
The only language that I am aware of that was created from scratch is Go. It was backed by Google though.

Why should I struggle to learn the new syntax in the first place
You make that decision for yourself. I can't make it and neither can anyone else for that matter. One possible reason however may be that you are unhappy with your current platform and want to do better OO. Or you want to explore different paradigms and evaluate them.

since it's going to be Java anyway
Why do you use Java if it's going to be Assembly anyway? Why use computers if in the end it's just a bunch of 1s and 0s?
One possible answer is productivity. Or maybe discipline. Again, you are the one to decide.

There is a good list of core values and premises that the language is going to based upon. That is the most important part. What it compiles into is unimportant to me. Interoperability and existing libraries are.

@alexpanov I see... well, we are aimply not on the same page then. Not a tragedy.
About compiling... there's a common algorithm,, steps that you have to do. First you calculate the symbols table, get rid of redundancies auch as spaces and a bunch of other steps.. basically working with regexes, and/or finite automata and such things.
I'm not an expert, I only had a course in college.
And yes, for sure it would be easier. For one thing, you dont have to know java amd c#. Imagine that instead of working with simple basic operations, you have to figure out Java's classes, what and when to use; what claswes will your compiled code use at runtime, for instance? Maybe it's just me, but it seems all so complicated. And we havent mentioned speed anywhere so far :D

@amihaiemil It's not only that. You should look at existing projects, there is so much work and details you have to implement yourself. what about garage collection? what about type checking? operators? basically working with regexes, and/or finite automata says that you need to go beyond a simple expression language to a general purpose language. Java may not be the best language, but its JVM is great; that's why languages like Clojure, JRuby, Jython, Kotlin, etc. are using it.

About compiling... there's a common algorithm,, steps that you have to do. First you calculate the symbols table, get rid of redundancies auch as spaces and a bunch of other steps.. basically working with regexes, and/or finite automata and such things.

IMHO, it's easier to map concepts from EO to Java than implementing the JVM from scratch. That also allows the language maintainers to focus in the language concepts instead of implementation details.

@jachinte
cc @alexpanov
I get your points, they make sense; I also understood Alex's points. Of course it's not an easy job to write something from scratch.
But, as I said above (maybe not so clearly), the simple fact that I have a black "curtain" between what I write and what ends up actually being executed, I find terrible, especially since here we are translating from simpler to more complicated (eo is supposed to be lighter than java).
Here is a metaphor: eo skins Java alive, meaning that it takes almost everything away from it - and then wants to be translated into and work exactly like it.
Again, I like eo and the principles behind it - it's just that I don't see how you would make those work in Java well and without the risk of introducing serious bugs.
An example - some time ago I had a task in which I had to remove a null check from the code (you can see this PR if you have the patience). My problem was, essentially, that I didn't know how to represent a missing password other than null - how do you do it? I tried empty string then Yegor said that there might be servers that accept empty string passwords. Other then that, any combination of chars can be a password.
My question is: how do you represent such a case in eo and then translate it into Java? Whatever you do, on the Java side it's going to have to be a null somewhere, and you have no null on eo's side.
It's scenarios like these that make me run from hybrid languages :)

@amihaiemil EO is not a hybrid language. The final user (developers) should not have to deal with Java at all, but EO only. That is the way most Domain Specific Languages work. How many times have you looked at the bytecode generated by the JVM? yet you write Java and not bytecode; the concepts in both sides are different, with different limitations and capabilities. I am pretty sure the generated code by EO will follow all the good practices Yegor promotes in his blog, but that is work of the compiler, not the EO developer.

@jachinte

EO is not a hybrid language. The final user (developers) should not have to deal with Java at all, but EO only.

Yes, maybe "hybrid" is not the best word for what I meant. By "hybrid" I meant that it relies on another third-party platform, not that the developer would have to know both sides of the matter :)

I didn't know how to represent a missing password other than null - how do you do it?
The way to do that is to create a Password interface and two implementations: MissingPassword and PresentPassword (or with a better name). Without going too deep into the code of the library you were trying to improve, implementing equals and hashCode would probably do. Then you simply compare the two Passwords. MissingPassword always returns false. Granted, it does require more changes to the code base.

By "hybrid" I meant that it relies on another third-party platform
Java relies on JVM and compiles to bytecode, JVM runs on an operating system. Do you see that as a problem too?

@alexpanov come on, don't act like you don't get my concern... all I said was that it seems very complicated and bug-prompt and that I don't see why I would learn a new syntax rather than applying the principles directly, by writing java (since it's going to be that anyway)
And you didn't answer any of my questions properly, you just flipped it and pointed out other side of the matter...

@amihaiemil, EO is a different language. When someone tells me about a language and all the good features it has, the last thing I do is ask about the compiled code. And the reason is simple, I should not have to touch that code, not even read it. Instead, I ask about its good features; for instance, how would I manage concurrency and shared state? which feels unnatural and is error-prone in Java, is there a Java-like generics equivalent? can I access types data at runtime?, does it have a module concept or I have to use tools instead?, etc. I am not trying to say those are features to look up in a language, I am saying that my concerns are about what I can do in the language, and how. Then I compare with the languages I already know/use.
I would ask about the compiled code if I am concerned about speed. Is it a compiled or interpreted language?. However, modern machines allow us to sacrifice speed, and in exchange gain better abstraction in our programs. Yegor has a better phrase I think: computers are cheap and programmers are expensive.

I don't see why I would learn a new syntax rather than applying the principles directly, by writing java

don't act like you don't get my concern

I don't act like it. I really do not share them. I am aware of points you are making in general and I believe them to be a form of a logical fallacy. I am truly not concerned with performance during the prototyping stage. I mean, even the basic syntax is not yet finalized.

And you didn't answer any of my questions properly

Some of the questions you are asking, I am not able to answer and sincerely admit to.
However, I only see three questions really.

Why should I learn a new language? I answered that, I believe. I can't make a decision for you but one possible reason might be to learn new concepts.
Why compile to Java or byte code instead of making a compiler from scratch? Aside from the answers, plural, given it also makes cross-platform compatibility a concern. I believe that to be thoroughly examined at this point.
How do I avoid nulls in the referenced PR? This one's answered too, I believe.

If there are any questions you still have that you believe to not have been addressed, maybe it would help to lay them out in a more formal way. Just a suggestion though.
I still want to know if you perceive Java being compiled into byte code and byte code into something else to be a problem. Do you?

@alexpanov Again - I don't have a problem with compiling something into something else in general. Every language works like that eventually. I have a concern specifically about eo <-> java, mainly because eo is so different in so many ways than Java.
I said above: it takes away so much stuff from Java and then wants to be compiled into and work just like it
So it's so different in concepts that the safest (safest, not easiest) way would be to have it's own world, I believe. And I also believe it's a cool enough idea to fly on it's own, not on the back of others.
My first example was GWT - I tell you, everytime I am forced to work with it (we have some apps in house), I compile the Java module and get a single minified JS file..  And then comes the nightmare - the build done on my laptop works because it's done with oraclejdk, the one from the CI sometimes fails because it's done with openjdk etc etc. I think you get the picture.
And again, I understand your arguments, but still they don't make my fear go away.
Lastly, I thought about this ticket for quite a long time before opening it. At first I didn't want to open it, I sort of knew the answers already, but you know how it is: when you have something on your mind you'll eventually going to let it out :D

@amihaiemil
I understand what you mean.
I think if you look into Clojure a bit, some of your concerns may go away. It's a completely different language that runs on the JVM. Granted, it compiles to byte code, not Java code. Still, it shows that it's at least possible.

I think compiling through Java is a good way during prototyping of the language to see what it looks like in the "classic" world.
If we come to a stage where some of the Java code starts looking weird, e.g. an EO constructor call becomes a series of unwrapped Java helper methods and encapsulations, in a way that direct link is broken and your argument comes into play. Probably this will be more an issue for the object definitions than for the type declarations, which in Java world I guess have to live as static fields or in a massive call stack.
But that would would then be the moment to try to compile directly to JVM bytecode instead, as done by Scala, Groovy and Clojure. It is not new ground, even Android Dalvik converts from JVM bytecode to native calls, so that's a hardware (and library) compatibility ecosystem I don't think we want to dismiss.
I think once we are at that stage could it make sense for brave souls to look at compiling directly to machine code - or even still an other intermediary like Go. EO as it stands could be a good candidate for that; a pure and thread-safe functional object oriented programming language can be executed in many different ways.
If we go straight to compiling directly to a particular CPU architecture I think that deviates us strongly from our goal of making an Object oriented programming language. I would argue that living in isolated compatibility islands is what has long hampered classical non-C-compatible languages.  Languages like Python and Ruby "cheated" by making it easy to wrap C functions - but at the cost of bad stuff like a Global Interpreter Lock and difficulties in portability and library installation.

@amihaiemil ultimately, we will have multiple compilers. One will compile to JVM bytecode, another one to PHP, another one to Ruby and then another one to x86 binary code. EO is language of a high-level, that's why we don't really care about technical details of the code it compiles to. We need to build a clear and solid OO-concept, which will prove that a true object-oriented programming may actually work.

@yegor256 Glad you took the time to have a look here :D

@amihaiemil I added this: https://github.com/yegor256/eo/commit/ca09a124d402ced662e13c9322e4b504f3dc09af Thanks for raising this concern, it was really valid.


Support ON UPDATE ddl statements

Bug Report

What did you do?

Looking at the ddl tests in the testDDLSuite, I was under the impression from TestDDLOnUpdateRestore that parsing sql statements with "ON UPDATE" were supported, however, in attempting to parse the following statement I encountered an error.
Code snippet:
 p := parser.New()
 testSQL := "create table test(id int key, FOREIGN KEY (id) REFERENCES test2(id) ON UPDATE CASCADE);"
 if _, _, err := p.Parse(testSQL, "", ""); err != nil {
     logger.Error("failed to parse", zap.Error(err))
 }

What did you expect to see?

I expected this statement to be able to be parsed without an issue.

What did you see instead?

I encountered the error "error":"line 1 column 77 near \"UPDATE CASCADE);\"
Looking closer at the current tests in TestDDLOnUpdateRestore
func (ts *testDDLSuite) TestDDLOnUpdateRestore(c *C) {
    testCases := []NodeRestoreTestCase{
        {"ON UPDATE RESTRICT", "ON UPDATE RESTRICT"},
        {"on update CASCADE", "ON UPDATE CASCADE"},
        {"on update SET NULL", "ON UPDATE SET NULL"},
        {"on update no action", "ON UPDATE NO ACTION"},
    }
    extractNodeFunc := func(node Node) Node {
        return node.(*CreateTableStmt).Constraints[1].Refer.OnUpdate
    }
    RunNodeRestoreTest(c, testCases, "CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id)  ON DELETE CASCADE %s )", extractNodeFunc)
}

All ON UPDATE test cases are inserted after an ON DELETE CASCADE clause. When I removed, the ON DELETE and instead used
RunNodeRestoreTest(c, testCases, "CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) %s )", extractNodeFunc)
The tests for TestDDLOnUpdateRestore start to fail
----------------------------------------------------------------------
FAIL: ddl_test.go:91: testDDLSuite.TestDDLOnUpdateRestore

ddl_test.go:101:
    RunNodeRestoreTest(c, testCases, "CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) %s )", extractNodeFunc)
util_test.go:113:
    c.Assert(err, IsNil, comment)
... value *errors.withStack = line 1 column 126 near "UPDATE RESTRICT )"  ("line 1 column 126 near \"UPDATE RESTRICT )\" ")
... source ast_test.NodeRestoreTestCase{sourceSQL:"ON UPDATE RESTRICT", expectSQL:"ON UPDATE RESTRICT"}

Are DDL statements like  create table test(id int key, FOREIGN KEY (id) REFERENCES test2(id) ON UPDATE CASCADE); not supported?

What version of TiDB SQL Parser are you using?

My go.mod file looks like this:
 github.com/pingcap/parser v0.0.0-20190312024907-3f6280b08c8b
 github.com/pingcap/tidb v0.0.0-20181120082053-821af9e9f65b9901bcac1661f28c41985697b511

Looking at parser.y https://github.com/pingcap/parser/blob/master/parser.y#L1771-L1806
ReferDef:
	"REFERENCES" TableName '(' IndexColNameList ')' OnDeleteOpt OnUpdateOpt

I believe this bug may stem from the fact we seem to rely on a DELETE option always being present before an UPDATE option is seen, which is not always the case in SQL.

I seemingly quick but probably naive way to fix this would be:
diff --git a/parser.y b/parser.y
index 793a1ec..602b293 100644
--- a/parser.y
+++ b/parser.y
@@ -1786,6 +1786,23 @@ ReferDef:
                        OnUpdate: onUpdateOpt,
                }
        }
+|      "REFERENCES" TableName '(' IndexColNameList ')' OnUpdateOpt OnDeleteOpt
+       {
+               var onDeleteOpt *ast.OnDeleteOpt
+               if $7 != nil {
+                       onDeleteOpt = $7.(*ast.OnDeleteOpt)
+               }
+               var onUpdateOpt *ast.OnUpdateOpt
+               if $6 != nil {
+                       onUpdateOpt = $6.(*ast.OnUpdateOpt)
+               }
+               $$ = &ast.ReferenceDef{
+                       Table: $2.(*ast.TableName),
+                       IndexColNames: $4.([]*ast.IndexColName),
+                       OnDelete: onDeleteOpt,
+                       OnUpdate: onUpdateOpt,
+               }
+       }

 OnDeleteOpt:
        {

Thank you for reporting this issue!
For some added context, FOREIGN KEYS are currently only partially supported by TiDB. Full support is also not on the immediate roadmap.
Having said that, I think supporting ON UPDATE ddl statements in the parser is independently useful:

For those using the parser independent of TiDB.
For TiDB being able to accept more DDL statements.

Are you interested in contributing this as a pull request?

Sure. I can put up a PR.

@EmmaLouise2018 Thank you. If you encounter any problem when you resolving this, let us know in here.

This is actually my first time working with Yacc. Following my train of thought from above, I included the additional rule in the diff. Running make test, generates a parser.go file, which when the tests are run they all pass. However, it also introduces, perhaps unsurprisingly reduce/reduce conflicts that I am not sure how to resolve.

here is another PR, that does not have grammar conflicts
https://github.com/pingcap/parser/pull/331

PR #331 has been merged.
issue can be closed


Prvd 'M Wrong 0.2

theres literally nothing on it LMFAO
goals:

change from lightweight to batteries included framework
drop networking (maybe? if there is a design i can agree on i might try but for now prolly worth giving the freedom to provide your own)
module builder system
oninit likely needs a rework for this
first class onshutdown
improved, rewritten documentation website
new type solver
repo refactors
components and net packages
lifecycle revamp so that non objects can hook on it
do not be a flamework copy
use new luau type solver

will implement #30 and will implement #34

Probably worth reworking the moonwave extractor stuff because it is WEIRD rn


Update qulice version to >= 0.18.8

There were few changes between 0.18.2 and 0.18.8 that should help especially with JUnit 5 integration, so after the upgrade remove all excludes of:

PMD ExcessiveImports
PMD DefaultPackage
checkstyle JavadocMethodCheck/JavadocMethod

And also make sure all JUnit 5 tests use default package scope for both classes and methods.

@paulodamaso/z please, pay attention to this issue


PSVR headset not detected

Hi there i,ve intalled PSVRTracker. When I switch to "PS3-Eye Video Interface" drivers it does`s not show up. i tried to change:

{
"version":              1,
"usb_api":              ",linusb_api:,
"enable_usb_transfers": true
}

"version":              1,
"usb_api":              ",winusb_api:,
"enable_usb_transfers": true

It does not work. Then I saw this
#3

I heard that you @HipsterSloth said that you need to replace hidUsb drivers with Winusb.
the problem is that it still not working. I Downloaded the Alpha version but it seems to be the same I could no longer run Trinus with my headset, someone help!

I'm sorry. This is a research project. We're trying to be the first to do serious things with camera based tracking on PC. It's goal is similar to the defunct PSVRToolbox, which you can use for some minor things out of the box like controlling the home-theater mode, but is still for PSVR (on PC) developers primarily. If we succeed the result will probably end up in PSMoveService or https://github.com/HipsterSloth/PSMoveSteamVRBridge.
To do development you want the latest source code here. It may or may not conflict with Trinus PSVR. I can't recall if it did or not when I tried out Trinus a little while back.

It was ictually my fault I didnt saw that it was in a unusable state.


Not saving

i havent changed any settings in my config file but now i can no longer save images. ive redownloaded the exe and reentered all info but still nothing. when i type history in the DM it shows the other account typing but it doesnt give me the option to enter the channel id.

getting the same thing, hopefully this gets fixed

@MurkoSavage @prostranskii
try with the newest client
Unofficial image downloader support server
https://discord.gg/d8MYEC6

Hi,
This issue is linked to this one #208 . The PR #207 (not mine) fixes this issue.


Re-organise and "pointerise" README

The readme contains sections for:

KeptnEvaluationDefinition
KeptnMetricsProvider
KeptnMetric

These are "logically" the wrong way around
There are website pages that can be used instead

Solution
A reader needs to understand that:

A KeptnMetricsProvider is first defined
A KeptnMetric is then defined
Finally a KeptnEvaluationDefinition is used

In that order.
So:

Re-order these sections so that they match the logical flow above
Leave each heading and remove most of the text from these section. Instead, just hyperlink out to the website pages (below):

KeptnMetricsProvider
KeptnEvaluationDefinition
KeptnMetric

hey! can i work on this?

Sure thing @ab7022 . I've assigned to you. Please raise a PR and reference this issue.
Thanks!

As discussed on the PR, this is no longer relevant. Thank you to everyone for their time and sorry this couldn't be merged.


Update for 2020-3-26 has data only for the last day

Basically all regions have:
  "???": {
    "dates": {
      "2020-3-26": {
        "cases": 9,
        "deaths": 0
      }
    },

fixed


cmd/internal/goobj: TestParseGoobj and TestParseArchive failing on plan9/arm

CL 60130 added TestParseGoobj and TestParseArchive which are failing on plan9/arm.
--- FAIL: TestParseGoobj (0.06s)
	goobj_test.go:93: corrupt object file
--- FAIL: TestParseArchive (0.03s)
	goobj_test.go:121: parsing archive member "go1.o": corrupt object file
FAIL
FAIL	cmd/internal/goobj	3.666s

See https://build.golang.org/log/22a2cb1bb8d6fe14f7fe9901f10e92bbd741870f

CC @hirochachacha

According to https://build.golang.org/
darwin/arm looks no problem. will skip other arm platforms.

I can confirm that I get the same behavior as described in issue #19811.
readInt is failing because the 0xebfffffe value can't fit into a 32-bit int.
cpu% go tool dist test -v -run '^go_test:cmd/internal/goobj$'

##### Testing packages.
# go tool dist test -run=^go_test:cmd/internal/goobj$
readInt 0xffffffffebfffffe != 0xebfffffe
--- FAIL: TestParseGoobj (0.02s)
	goobj_test.go:93: corrupt object file
readInt 0xffffffffebfffffe != 0xebfffffe
--- FAIL: TestParseArchive (0.01s)
	goobj_test.go:121: parsing archive member "go1.o": corrupt object file
FAIL
FAIL	cmd/internal/goobj	1.349s

I half-fixed #19811 in CL 69010, and unskipped the tests. Should be passing now, right?


SAP 740 install

Just installed the software on to SAP 740 system and am finding syntax errors does the system need to be 750?
Syntax error in ZCL_EXCEL_WORKSHEET method CONVERT_TO_TABLE field TYPEKIND_INT8 is unknown. A search on Google says that this type is defined in SAP 750.
Many thanks

Hi @BobTomkins
Thanks for reporting - we will fix this.


Link to Undelete Blob REST API documentation points to Delete Blob

Link to Undelete Blob REST API documentation points to Delete Blob

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

ID: 78964956-a479-5fbe-710d-19e361542a36
Version Independent ID: 15e70532-6d39-47ed-6932-ef3eb88e33f0
Content: Soft delete for blobs - Azure Storage
Content Source: articles/storage/blobs/soft-delete-blob-overview.md
Service: storage
Sub-service: blobs
GitHub Login: @tamram
Microsoft Alias: tamram

@zsy056  Thanks for your contribution, we had addressed this issue in PR: https://github.com/MicrosoftDocs/azure-docs-pr/pull/159187
The changes should be live EOD or tomorrow. In future, if you see any minor bug fixes in the doc, feel free to click on the edit button and submit a PR to update. we love to take community contributions.


When using -d to pass in the config

Summary of the new feature / enhancement
-i is intended for JSON content while -p is the path to a JSON file.  Users may mix this up, so when using -i, if it's not valid JSON, we should check if it's a valid filepath and if so, inform in the error message it looks like a filepath and they should use -p instead.  Similarly, if -p doesn't find the file, see if the input is JSON and give better error message.
Proposed technical implementation details (optional)
No response

Parameter was changed to -d but the scenario still exists


What is the best practice for writing CPU-intensive handlers?

In https://github.com/systemed/tilemaker/discussions/621, I was encouraged to use libosmium. I ultimately decided to go a different route, but am trying to understand how libosmium could have been used.
My understanding is that a common way to use libosmium to read a PBF is to write a Handler. At runtime, this looks like:

1 thread reading the Blobs of the PBF, distributing to
N threads decompressing and parsing the blobs, distributing to
1 thread running the handler to consume the objects

If the handler needs to do an expensive operation, e.g. simplifying a complex geometry, what is the recommended approach?
If I naively do the operation inside the handler, I think I must choose between two results:

the parsing threads fill their output queues up to a maximum limit, and stall until the handler consumes them - resulting in reduced CPU utilization
the parsing threads fill their output queues without bound - resulting in unbounded memory usage

Am I missing another option, where the handler can run directly on the parser threads as they parse the PBF?

Libosmium I/O was designed around the idea that it will hide details of the file format from you. PBF files are block-based, but other OSM file formats are not, so libosmium will hide the blocks from the input file. The idea is that it will give you a stream of OSM objects.  But those blocks are not necessarily tied to any blocks in the PBF file. And the blocks are really only a way of handling memory management without having to manage memory for each and every OSM object. (An earlier version of Osmium did that and memory management overhead turned out to be too expensive.)
Libosmium I/O is also designed with the idea that writing concurrent code in C++ is hard and that most people don't want to do that. So it gives you that stream of data without you having to think about any concurrency. It will use concurrency behind the scenes for some types of file formats when doing the actual I/O and en/decoding of the data, but hides it from the library user. The library user can write their code without every having to think about concurrency. They can still use concurrency in their code if they want to, but that would be completely separate.
This design has its limitations of course, and you found some of them. I'd love to have a better iterface for all of this that would allow this to be more flexible, but I struggle to come up with a design that would work with all the different file formats and still work better if you want to do some heavy processing in multiple threads. If we wanted to go that route, we'd probably have to use some existing framwork for concurrency, because the C++ standard library is just too limited in that regard. But that adds another dependency and every user would have to fit their code into that framework. Maybe all this could be done with the newer concurrency stuff in the C++ standard library, this is certainly something we could look into. But requiring the newest C++ standard library is also something that would need to be considered carefully.
I hope this has made the background a bit clearer. Your analysis is correct, there is no other way. (Well, you don't need to use handlers, sometimes it is easier to just iterate over all objects in a buffer, or iterate over all objects in a file without a handler, but that is besides the point here.)

Great, thanks for your patience in explaining these things. I now understand that a design decision was to give users of the library a serialized, in-order view of objects, which trades performance for ease-of-use. That makes a lot of sense!

I'd love to have a better iterface for all of this that would allow this to be more flexible

I haven't thought too deeply about this, so please poke holes in it. I wonder if, in addition to the current API surface, it would make sense to offer an interface like:
Reader(const osmium::io::File& file, Handler& handler)

In this mode, Reader would understand that the user wants their handler to be dispatched to immediately upon the availability of OSM objects. Objects would not be queued, and could potentially come out of order. When using this mode, users are responsible for writing thread-safe code.
I'd also propose adding two methods to Handler:
class Handler {
public:
  void start_batch() const noexcept {}
  void end_batch() const noexcept {}
}

These would be called on the start and end of dispatching. In the current world, I'm imagining these would be called:

for non-PBF formats: once on parser thread start, once on parser thread end
for PBF formats: once per PrimitiveBlock processed

(In a future world where the coordinator could distribute work as described in https://github.com/osmcode/libosmium/issues/151#issuecomment-1868051334, they'd be called once per batch of sequential PrimitiveBlocks handled by a given thread).
Then, the programmer who is willing to be concurrency aware in exchange for performance could write a handler like:
thread_local uint64_t tlsNodes = 0;

struct MyHandler : public Handler {
  std::atomic<uint64_t> nodes = 0;

  void node() {
    tlsNodes++;
  }

  void start_batch() {
    tlsNodes = 0;
  }

  void end_batch() {
    nodes += tlsNodes;
  }
};

And in their main code:
MyHandler handler;
Reader reader{"somefile.pbf", handler};
std::cout << "there are " << handler.nodes.load() << " nodes" << std::endl;

I use the count example for simplicity of illustration, but the benefit should be the same whether the workload is small or high -- the tool is always doing useful work, and objects don't need to be buffered.
I believe this interface still hides the details of the underlying file format, and so can apply to PBF, XML, etc. It uses thread_local, but that's from C++11, which libosmium already requires.
There are other approaches - in the example above, I passed a single instance of a handler, and used a thread local to manage local state. Reader could instead take an object that is able to construct instances of handlers. The overall idea is the same - C++ is not my area of expertise, so I'm not sure how best to structure it to give good ergonomics to the user.

The problem with your proposed interface is that it would depend on the actual file format used whether you get any kind of parallel processing out of it. For PBF files this would (sort of) work, but for other file formats it doesn't, because they are not block-based. You would end up with a single thread running the handler because there is only a single thread doing the parsing (plus possibly another thread for gzip decompression). And for the PBF it depends on whether it makes sense to have the "unit of processing" to be the same as the PrimitiveBlocks. That might or might not be the case for different types of workloads.

Reader could instead take an object that is able to construct instances of handlers.

It sounds reasonably easy to do, but doing something like this is quite difficult in C++. The Reader has to push this handler factory down into the PBF implementation and into another thread, which mixes up a lot of code that should be independent of each other. We are getting awfully close to rewriting a thread handling library like TBB. And I certainly don't want to do that.
I think if we can solve the problem that moving the Buffers from one thread to another through that single queue seems to be blocking too much, we can decouple all of this. We'd still move everything through a single thread, but that thread doesn't have to do more than push the buffers on to other threads as it sees fit, if the developer wants this. There would still be some overhead compared to your solution, but it would be much more generic.

Makes sense, thanks for taking the time to respond! I'll close this to avoid cluttering up the repo


Which files need to be hosted?

#Hello @nmihajlovski ,
I am the member of cdnjs project.
We want to host this library.
But there is a question want to ask.
I want to confirm with you about the main file need to be grab on github.
Are the main files all under assets/rapidoid/ this folder?(rapidoid-extras.css and rapidoid-extras.js)
And are there any other dependency files needed to be grab?
Please help me confirm this.
Thanks for your help!
https://github.com/cdnjs/cdnjs/issues/8398

Hi @kennynaoh ,
Thank you, it would be great to have Rapidoid hosted on cdnjs!
There are 2 files that need to be hosted: rapidoid.min.js and rapidoid.min.css.
They are in the rapidoid-html/src/main/resources/default/static folder.
Best regards!

@nmihajlovski Thanks!

Hello @nmihajlovski ,
I found that the rapidoid.min.js and rapidoid.min.css don't exist in some of old versions under rapidoid-html/src/main/resources/default/static this folder. (4.1.0~5.1.0 and rapidoid-0.9.0~rapidoid-4.0.3)
Please help me confirm that.
Thanks for your help!

Yes, that is correct.
In the previous versions they existed in the rapidoid-html/src/main/resources/rapidoid/static folder.
Thank you again!

Thanks!
How about rapidoid-1.0.1 and rapidoid-1.0.0? I can't find it under rapidoid-html.
And it doesn't exist rapidoid-html this folder in rapidoid-0.9.0.
Please help me confirm that.
Thanks for your help!

That's correct, it doesn't exist in the early versions.

So what files I need to grab in those versions
(rapidoid-0.9.0, rapidoid-1.0.0, rapidoid-1.0.1)
Thanks!

No JavaScript /CSS files were produced in these early versions.
(In the early period Rapidoid had only a back-end development framework.)
So, please ignore those versions that are missing rapidoid-html.
Thank you again!

Thanks!


Copy the gRPC metadata before modifying it.

Fixes #12

I did not face this problem yet but any reason it can be only from client code? Server modifies the metadata as well.

This happens when a gRPC instrumented server triggers two gRPC calls as the result of a single incoming RPC.  So I don't think it will happen in the server.

I signed it!

I guess the two gRPC calls should be goroutines that share the same context?

They are - see here: https://github.com/weaveworks/cortex/blob/master/distributor/distributor.go#L321

@tomwilkie thank you for the fix. LGTM.


Inprocess application start problem

Hello!
I'm trying to host web app using inprocess hosting model. And...
Application can't start.
IIS responses with 500.30.
ANCM logs contains this.
If i switch hostingModel to OutOfProcess — everything is ok.
My web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\Dodo.ClientSite.exe" arguments="" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" hostingModel="InProcess">

	     <handlerSettings>
                  <handlerSetting name="debugFile" value=".\aspnetcore-debug.log" />
                  <handlerSetting name="debugLevel" value="FILE,TRACE" />
              </handlerSettings>
      </aspNetCore>
   </system.webServer>
</configuration>

Logs
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalConfigurationChange 'MACHINE/WEBROOT/APPHOST/RU-DEV-GS-GSITE.EXT.DEV.DODOIS.COM'
[aspnetcorev2.dll] Stopping application '/LM/W3SVC/340/ROOT'
[aspnetcorev2_inprocess.dll] Stopping file watcher thread
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalStopListening
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::Terminate
[aspnetcorev2.dll] Initializing logs for 'C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll'. Process Id: 9476.. File Version: 12.2.18316.0. Description: IIS ASP.NET Core Module V2. Commit: ce8cf65589734f82b0536c543aba5bd60d0a5a98.
[aspnetcorev2.dll] Resolving hostfxr parameters for application: '.\Dodo.ClientSite.exe' arguments: '' path: 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2.dll] Known dotnet.exe location: ''
[aspnetcorev2.dll] Process path '.\Dodo.ClientSite.exe' is not dotnet, treating application as standalone or portable with bootstrapper
[aspnetcorev2.dll] Checking application.dll at 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\Dodo.ClientSite.dll'
[aspnetcorev2.dll] Checking hostfxr.dll at 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\hostfxr.dll'
[aspnetcorev2.dll] hostfxr.dll found app local at 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\hostfxr.dll', treating application as portable with launcher
[aspnetcorev2.dll] Resolving absolute path to dotnet.exe from 'dotnet'
[aspnetcorev2.dll] Invoking where.exe to find dotnet.exe
[aspnetcorev2.dll] where.exe invocation returned: 'C:\Program Files\dotnet\dotnet.exe
C:\Program Files (x86)\dotnet\dotnet.exe
'
[aspnetcorev2.dll] Current process bitness type detected as isX64=1
[aspnetcorev2.dll] Processing entry 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2.dll] Binary type 6
[aspnetcorev2.dll] Found dotnet.exe via where.exe invocation at 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2.dll] Resolving absolute path to hostfxr.dll from 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2.dll] hostfxr.dll located at 'C:\Program Files\dotnet\host\fxr\2.2.0\hostfxr.dll'
[aspnetcorev2.dll] Parsed hostfxr options: dotnet location: 'C:\Program Files\dotnet\dotnet.exe' hostfxr path: 'C:\Program Files\dotnet\host\fxr\2.2.0\hostfxr.dll' arguments:
[aspnetcorev2.dll] Argument[0] = 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2.dll] Argument[1] = 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\Dodo.ClientSite.dll'
[aspnetcorev2.dll] c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\commonlib\fileoutputmanager.cpp:142 Operation failed with LastError: 32 HR: 0x80070020
[aspnetcorev2.dll] Loading request handler:  'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\aspnetcorev2_inprocess.dll'
[aspnetcorev2.dll] Creating handler application
[aspnetcorev2_inprocess.dll] Initializing logs for 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\aspnetcorev2_inprocess.dll'. Process Id: 9476.. File Version: 12.2.18316.0. Description: IIS ASP.NET Core Module V2 Request Handler. Commit: ce8cf65589734f82b0536c543aba5bd60d0a5a98.
[aspnetcorev2_inprocess.dll] Waiting for initialization
[aspnetcorev2_inprocess.dll] Starting in-process worker thread
[aspnetcorev2_inprocess.dll] Resolving hostfxr parameters for application: '.\Dodo.ClientSite.exe' arguments: '' path: 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2_inprocess.dll] Known dotnet.exe location: 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2_inprocess.dll] Process path '.\Dodo.ClientSite.exe' is not dotnet, treating application as standalone or portable with bootstrapper
[aspnetcorev2_inprocess.dll] Checking application.dll at 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\Dodo.ClientSite.dll'
[aspnetcorev2_inprocess.dll] Checking hostfxr.dll at 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\hostfxr.dll'
[aspnetcorev2_inprocess.dll] hostfxr.dll found app local at 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\hostfxr.dll', treating application as portable with launcher
[aspnetcorev2_inprocess.dll] Resolving absolute path to hostfxr.dll from 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2_inprocess.dll] hostfxr.dll located at 'C:\Program Files\dotnet\host\fxr\2.2.0\hostfxr.dll'
[aspnetcorev2_inprocess.dll] Parsed hostfxr options: dotnet location: 'C:\Program Files\dotnet\dotnet.exe' hostfxr path: 'C:\Program Files\dotnet\host\fxr\2.2.0\hostfxr.dll' arguments:
[aspnetcorev2_inprocess.dll] Argument[0] = 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2_inprocess.dll] Argument[1] = 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\Dodo.ClientSite.dll'
[aspnetcorev2_inprocess.dll] Managed threw an exception -1073741819
[aspnetcorev2_inprocess.dll] Starting shutdown sequence 1
[aspnetcorev2_inprocess.dll] Clr thread wait ended: clrThreadExited: 1
[aspnetcorev2_inprocess.dll] c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\commonlib\fileoutputmanager.cpp:142 Operation failed with LastError: 32 HR: 0x80070020
[aspnetcorev2_inprocess.dll] Event Log: 'Application '/LM/W3SVC/340/ROOT' with physical root 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\' hit unexpected managed exception, exception code = '0xc0000005'. Please check the stderr logs for more information.'
End Event Log Message.
[aspnetcorev2_inprocess.dll] Stopping in-process worker thread
[aspnetcorev2_inprocess.dll] Stopping CLR
[aspnetcorev2_inprocess.dll] Event Log: 'Application '/LM/W3SVC/340/ROOT' with physical root 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\' failed to load clr and managed application. CLR worker thread exited prematurely'
End Event Log Message.
[aspnetcorev2_inprocess.dll] Exception 'InvalidOperationException' caught at c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\inprocessrequesthandler\inprocessapplication.cpp:350
[aspnetcorev2_inprocess.dll] Failed HRESULT returned: 0x8007023e at c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\inprocessrequesthandler\dllmain.cpp:120
[aspnetcorev2_inprocess.dll] Starting app_offline monitoring in application 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2_inprocess.dll] Starting file watcher thread
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalConfigurationChange 'MACHINE/WEBROOT/APPHOST/RU-DEV-GS-GSITE.EXT.DEV.DODOIS.COM'
[aspnetcorev2.dll] Stopping application '/LM/W3SVC/340/ROOT'
[aspnetcorev2_inprocess.dll] Stopping file watcher thread
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalStopListening
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::Terminate

It's probably due to the CurrentDirectory issue: #4206. Here is our recommended workaround for now: https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/aspnet-core-module/samples_snapshot/2.x/CurrentDirectoryHelpers.cs. This will be fixed in a patch.

@pakrym, hello!
I have tried workaround and it's working!
But... there is another problem.
App is started, but iis returns 500.30 after startup timeout.
Do you know the problem? :)
STDOUT (~ after 10 sec after start)
Hosting environment: dev-gs
Content root path: E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com
Now listening on: http://<IP_ADDRESS>:5050
Application started. Press Ctrl+C to shut down.
Hosting environment: dev-gs
Content root path: E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com
Now listening on: http://<IP_ADDRESS>:56016
Application started. Press Ctrl+C to shut down.
ANCM LOGS
[aspnetcorev2_inprocess.dll] Initializing logs for 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\aspnetcorev2_inprocess.dll'. Process Id: 16144.. File Version: 12.2.18316.0. Description: IIS ASP.NET Core Module V2 Request Handler. Commit: ce8cf65589734f82b0536c543aba5bd60d0a5a98.
[aspnetcorev2_inprocess.dll] Waiting for initialization
[aspnetcorev2_inprocess.dll] Starting in-process worker thread
[aspnetcorev2_inprocess.dll] Resolving hostfxr parameters for application: '.\Dodo.ClientSite.exe' arguments: '' path: 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2_inprocess.dll] Known dotnet.exe location: 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2_inprocess.dll] Process path '.\Dodo.ClientSite.exe' is not dotnet, treating application as standalone or portable with bootstrapper
[aspnetcorev2_inprocess.dll] Checking application.dll at 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\Dodo.ClientSite.dll'
[aspnetcorev2_inprocess.dll] Checking hostfxr.dll at 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\hostfxr.dll'
[aspnetcorev2_inprocess.dll] hostfxr.dll found app local at 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\hostfxr.dll', treating application as portable with launcher
[aspnetcorev2_inprocess.dll] Resolving absolute path to hostfxr.dll from 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2_inprocess.dll] hostfxr.dll located at 'C:\Program Files\dotnet\host\fxr\2.2.0\hostfxr.dll'
[aspnetcorev2_inprocess.dll] Parsed hostfxr options: dotnet location: 'C:\Program Files\dotnet\dotnet.exe' hostfxr path: 'C:\Program Files\dotnet\host\fxr\2.2.0\hostfxr.dll' arguments:
[aspnetcorev2_inprocess.dll] Argument[0] = 'C:\Program Files\dotnet\dotnet.exe'
[aspnetcorev2_inprocess.dll] Argument[1] = 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\.\Dodo.ClientSite.dll'
[aspnetcorev2_inprocess.dll] Stopping CLR
[aspnetcorev2_inprocess.dll] Starting shutdown sequence 0
[aspnetcorev2_inprocess.dll] Clr thread wait ended: clrThreadExited: 0
[aspnetcorev2_inprocess.dll] Stopping in-process worker thread
[aspnetcorev2_inprocess.dll] Event Log: 'Application '/LM/W3SVC/340/ROOT' with physical root 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\' failed to load clr and managed application. Managed server didn't initialize after 300000 ms.'
End Event Log Message.
[aspnetcorev2_inprocess.dll] Exception 'InvalidOperationException' caught at c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\inprocessrequesthandler\inprocessapplication.cpp:350
[aspnetcorev2_inprocess.dll] Failed HRESULT returned: 0x8007023e at c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\inprocessrequesthandler\dllmain.cpp:120
[aspnetcorev2_inprocess.dll] Starting app_offline monitoring in application 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2_inprocess.dll] Starting file watcher thread

I assume the workaround has resolved your issue. Feel free to reopen otherwise.

Your Program.Main is throwing an exception. It's probably due to the CurrentDirectory issue: #4206. Here is our recommended workaround for now: https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/aspnet-core-module/samples_snapshot/2.x/CurrentDirectoryHelpers.cs. This will be fixed in a patch.

I'm having problems applying the suggested fix and resolving the issue which I don't know if it should be fixed in the current version .Net Core 2.2 since I am still getting the same error - IIS responses with 500.30 - when running InProcess. Enabling the logs I could see the problem is related to the same issue as the directory returned is not the correct directory. Instead, it returned the path where the IIS service run from in the system. To apply the fix, I've copied the CurrentDirectoryHelper.cs to my project and call it from the Program.cs before Setting the SetBasePath,
                logger.LogWarning($"Applying Patch to fix Current Directory issue. Current Directory: {Environment.CurrentDirectory}");                 //TODO: the line below can be removed when the bug with InProcess method is fixed (more details, follow the class definition and read the comments)                 CurrentDirectoryHelpers.SetCurrentDirectory();                 logger.LogWarning($"Fix applied. Current Directory now is: {Environment.CurrentDirectory}");
Applying the fix as such still produces the same result.
The Application starts fine if running as OutOfProcess and if running under IIS Express
Can anyone help me with this, please?

Your Program.Main is throwing an exception. It's probably due to the CurrentDirectory issue: #4206. Here is our recommended workaround for now: https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/aspnet-core-module/samples_snapshot/2.x/CurrentDirectoryHelpers.cs. This will be fixed in a patch.

I'm having problems applying the suggested fix and resolving the issue which I don't know if it should be fixed in the current version .Net Core 2.2 since I am still getting the same error - IIS responses with 500.30 - when running InProcess. Enabling the logs I could see the problem is related to the same issue as the directory returned is not the correct directory. Instead, it returned the path where the IIS service run from in the system. To apply the fix, I've copied the CurrentDirectoryHelper.cs to my project and call it from the Program.cs before Setting the SetBasePath,
                logger.LogWarning($"Applying Patch to fix Current Directory issue. Current Directory: {Environment.CurrentDirectory}");                 //TODO: the line below can be removed when the bug with InProcess method is fixed (more details, follow the class definition and read the comments)                 CurrentDirectoryHelpers.SetCurrentDirectory();                 logger.LogWarning($"Fix applied. Current Directory now is: {Environment.CurrentDirectory}");
Applying the fix as such still produces the same result.
The Application starts fine if running as OutOfProcess and if running under IIS Express
Can anyone help me with this, please?


NCL-4888 - Change EXECUTION_ROOT_NAME parameter name

All Submissions:

[ ] Have you added a note in the CHANGELOG wiki for your change?
[ ] Have you added unit tests for your change?

Thanks! Updated the changelog also: https://github.com/project-ncl/repour/wiki/Changelog