Kudu can't deploy .NET Core Console apps

(Moved from comment on #2344)
Kudu doesn't know how to deploy a Console App (.NET Core) project as a web job the way it does for Console App (.NET Framework).
The error message is something like:
remote: 'D:\home\site\repository\DotNetCore.csproj' is not a deployable project.
I believe the problem lies here:
https://github.com/projectkudu/kudu/blob/af1b4c524926ed0ad9ec6cb5b3789157256eaaf6/Kudu.Core/Infrastructure/VsHelper.cs#L141
This XML namespace isn't used for Common Project System-style csprojs.
(Let me know if any additional data is needed; I could add exact repro steps and exact error output, but I suspect the above data may be sufficient.)

the error message you are seeing is likely because nowadays we only deploy dot net core web project, but not console app. I believe it is due to the fact that webjob sdk was not moved to dotnet core yet https://stackoverflow.com/questions/43268344/azure-webjob-in-net-core
@davidebbo, but now that https://github.com/Azure/azure-webjobs-sdk/issues/1177 is closed, we can start talking about adding this support?
@davidmatson  can we get you unblocked for now if moving to .net framework or is it a lot of work?

In case it makes a difference, the particular combination I use in practice is a .NET Core-style csproj but targeting full .NET Framework. To be technically more precise, It's a Common Project System csproj with a target framework of net462 (or similar).
I reverted to old-style csprojs for now with project.json, but that's been deprecated, and I'd like to move to the newer  csproj syntax if I could.
(Hopefully the work to support .NET Core Console apps proper also covers that style project with a target framework of full .NET, but if not I can split that into a separate issue. I figured saying I'd make this issue just be ".NET Core" support since it's a simpler place to start and likely to get what I needed anyway.)

@davidmatson do you have a github repo that I can use to reproduce the issue? thanks

Here's a repro for .NET Core console app:
netcorerepo.zip

@davidmatson sharing a GitHub repo is highly preferred over a zip file. See https://github.com/projectkudu/kudu/wiki/Using-a-git-repo-to-report-an-issue

Sure; I'll do that also. (Adding the zip here since I don't plan on keeping the repos after we close this issue.)
fulldotnetcpsrepro.zip

Here they are:
https://github.com/davidmatson/kuduissue2518repro1
https://github.com/davidmatson/kuduissue2518repro2

@davidmatson, you initial observation is right on point,
I did a quick hack (add the namespace), unfortunately it didn't work
Instead of getting a non-deployable project error, kudu will display this:

error MSB4041: The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the  element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format.

Since msbuild15 is not turned on by default, you need to write a custom deployment, I have an example based on your repo

use dotnet core cli to build
since kudu  does not yet support dotnet core console app (with dlls) I have to output an exe

Thanks! Yeah, if it wasn't an exe already it should have been (that's what I always use anyway).
Any thoughts on when msbuild15 will be turned on by default? (I'm more likely to wait for it than change back to a custom deploy.cmd - I've tried hard to avoid that in the past.)

Hi
If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


GC: Backup: [FIX]Embedded image requires download

Description
Images copy/pasted into a message were not being saved previously.  Verified with Corso binary

Does this PR need a docs update or release note?

[x] :white_check_mark: Yes, in the ChangeLog.

Type of change

[x] :bug: Bugfix

Issue(s)

closes #2163

Test Plan

[x] :zap: Unit test

Adding to mergequeue - should follow up with the e2e test.


Support values clause (virtual table)

select
    *
from
    (
        values
          (1,2,3)
        , (2,3,4)

    ) as v(id1, id2, id3)

with
vt(id1, id2, id3) as (
    values
      (1,2,3)
    , (2,3,4)
)
select * from vt

I think I'll implement it from the alias option.

correct syntax

with
t as (
    select 1 as col1
)
select
    *
from
    t as t1(col2)

syntax error

with
t as (
    select 1 as col1
)
select
    *
from
    t(col2)


Close feather object in read_feather

to avoid stalling of open file handles.
Fixes #177.

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

Merging [#178][cc-pull] into [master][cc-base-branch] will increase coverage by 2.08%

@@             master       #178   diff @@
==========================================
  Files            32         18    -14
  Lines          1994       1179   -815
  Methods         339        339
  Messages          0          0
  Branches         60         60
==========================================
- Hits           1660       1006   -654
+ Misses          299        138   -161
  Partials         35         35

Powered by Codecov. Last updated by [91817bc...3a14cbd][cc-compare]
[cc-base-branch]: https://codecov.io/gh/wesm/feather/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/wesm/feather/compare/91817bc148f4c71a4f5140c67f7ae795fd2d751c...3a14cbdf00134f1c6c7017409f183715b7394d9c
[cc-pull]: https://codecov.io/gh/wesm/feather/pull/178?src=pr


Loop over read for readIntoBuffer

Loop over the read to ensure that we have really read everything we can.
@bryancall can you take a look?

[approve ci]

[approve ci]

Thanks for this fix!


Own files, commets, likes data with incorrect username

The username property of ThreadFilesInfo, ThreadCommentInfo, and ThreadLikesInfo is coming back as the first part of the peer id for items that are your own. Other peer's data looks correct.

Hmm, darn. Makes sense though. This is cause those methods try to find the username in contacts, but of course you don't have yourself as a contact. doh

Could a peer just auto-add itself to its own contacts? Or will that mess things up?

fwiw... icould contacts has the concept of a "self" contact, kinda helpful sometimes


Fix GH Actions caching

Fixes #177
Upgrades caching to v2, following sbt example from official actions/cache repo

Thanks!


add test for empty configs

This PR adds a test for empty configs, as defined in #293.

CI fails due to:

go: remove C:\Users\RUNNER~1\AppData\Local\Temp\go-build3371302423\b724\external.test.exe: Access is denied.

I'll look into this later

Thanks @robpickerill! This strategy looks good to me.

CI fails due to:
go: remove C:\Users\RUNNER~1\AppData\Local\Temp\go-build3371302423\b724\external.test.exe: Access is denied.

I looked at this on a Windows machine. I think I've an idea what the problem is. #547 should fix it.


WIP - multi environment pipelines

Feature or Bugfix

Feature

Detail

#77

Relates
#77
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Missing tasks:

BUG: fix cicd stack frontend view - currently not showing anything
BUG: delete in cdk trunk deletes ONLY the pipeline stack but not the repo stack
ENHACEMENT: codepipelines empty does not work (ofc) - add frontend message and error management
ENHACEMENT: add possibility to edit and add environments in codepipelines pipelines
ENHACEMENT: don't forget to mention trust in ddk bootstrap cicd with central account (for cdk pipelines)


UpdateDataCommand

Hi,
After failing at update command.
At first the command failed without having created a column gdpr_temp_password in the target entity.
Then comes an error message telling me about invalid keys :
I notice that the command import as as typo in naming from an array keys at
line 218 :
$personalData = $result['originalData'];
line 350 :
$personalData = $result['newPersonalData'];
Fixed with small caps as awaited.
line 218 :
$personalData = $result['originaldata'];
line 350 :
$personalData = $result['newpersonaldata'];
Greetings.
Gérard

Environnement :
PHP 7.2.11
Symfony 3.4.18
doctrine-bundle 1.9.1
PostgreSQL 9.6.10

Hi,
I haven't tried this with PostgreSQL.
Can you send a copy of the error message that you get?
Is it related to the camelcase array keys?

Hi, sorry for the late answer.
Here's the message :
$ php bin/console gdpr:update
Creating temporary columns
Creating personal data objects in 1 columns
 0/1 [>---------------------------]   0%
In UpdateDataCommand.php line 218:

  Notice: Undefined index: originalData

The lowercase in key has fixed the update command.
In my case i use snake_case for column name, usually doctrine will use camelCase.

Hi Gerardchic,
I've just done a bit of reading on PostgreSQL, it is likely the column naming convention.
Unfortunately I'm not running PostgreSQL on any of my servers. Please feel free to fork, mod, and submit a pull request.
I'll have time to look back into this in the new year.
Mark


Notification Telegram not works

I configured the notification in order send messages, when de status pages changed the notifications didnt send.
The log´s show me this :
Sending Telegram
Got an error Error: Request failed with status code 400
at createError (/home/runner/work/_actions/upptime/uptime-monitor/v1.26.4/node_modules/axios/lib/core/createError.js:16:1)
at settle (/home/runner/work/_actions/upptime/uptime-monitor/v1.26.4/node_modules/axios/lib/core/settle.js:17:1)
at IncomingMessage.handleStreamEnd (/home/runner/work/_actions/upptime/uptime-monitor/v1.26.4/node_modules/axios/lib/adapters/http.js:260:1)
at IncomingMessage.emit (events.js:215:7)
at endReadableNT (_stream_readable.js:1184:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
config: {
url: 'https://api.telegram.org/bot***/sendMessage',
method: 'post',
data: '{"parse_mode":"Markdown","disable_web_page_preview":***,"chat_id":"***","text":"🟩 mysite (https://www.***mysite.com.br) is back up."}',
headers: {
Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/json;charset=utf-8',
'User-Agent': 'axios/0.21.1',
'Content-Length': 169
},
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
validateStatus: [Function: validateStatus]
},

Hey @Rmunuera,  getting 400 status code might suggest that your bot_token or chat_id might be incorrect. I suggest you to recheck it.
I tried using telegram notifications and it works fine.
Use
https://api.telegram.org/bot{token}/sendMessage?chat_id=<chat_id>&text=<Enter your text here>

to test your token and chat_id.

Hello @jayantkatia,
I reconfigure the secrets in order do tests with this values:
NOTIFICATION_TELEGRAM: true
NOTIFICATION_TELEGRAM_BOT_KEY: token get from botfather
NOTIFICATION_TELEGRAM_CHAT_ID: I used my id and the a id group
But it didn't work.
Using the telegram api link, with the same bot_key and the chat_id and the messages arrive normally for me.
I tried use the Postman with the chat_id and bot_key and its works too.

Hello @jayantkatia
I found where the problem occours.
When I use a url with the filename example:
https://www.mysite.com/teste_1.php the problem happens, telegram dont send message and return error code 400
but If I use this url https://www.mysite.com/ the telegram send notification normally
I use the filename to run some internal tests before responding, rather than verifying that only the site is up and running.

:wave: Hello @Rmunuera,
I copied the axios request from the upptime-monitor and ran it locally(using the same axios version).
:thinking: Strange !!
The code and axios v0.21.1 works fine on testing. Are we missing out on the error from the logs? :thinking:

@jayantkatia
The problem is because in the url exists the underline, the code need escape this before send message.
Example if the message is "Hello it is a test" works fine. But if the message is "Hello it is a test_" the problem occurs.
If the message send this way "Hello it is a teste _" it is send normally.


Removed destructive SQL statements

Removed two lines that are downright irresponsible, someone is going to use this list to fuzz a web application and accidentally nuke a production database.

Good call!


net: enable extended master secret

Extended Master Secret is a DTLS extension that ensures the Master Secret is tied to the handshake parameters and is used to prevent certain Man in the Middle attacks.
Confirmed with wireshark that the extension is present from Client and Server during handshake and communication with Golioth proceeds as normal.

Closes golioth/firmware-issue-tracker#224

Is this Extended Master Secret enforced by the client? What happens if server respond without this option, would client drop the connection as being potential man-in-the-middle attack?

Is this Extended Master Secret enforced by the client? What happens if server respond without this option, would client drop the connection as being potential man-in-the-middle attack?

Hmm, that's a good question. I did some searching around and I'm not sure. I hope it drops it, otherwise it's not a very good protection, but I can't confirm.

Is this Extended Master Secret enforced by the client? What happens if server respond without this option, would client drop the connection as being potential man-in-the-middle attack?

Hmm, that's a good question. I did some searching around and I'm not sure. I hope it drops it, otherwise it's not a very good protection, but I can't confirm.

The reason I ask is that I probably (90% sure) was about to enable this feature in the past, haven't done it because it was not enforced anyway, i.e. not improving security because of man-in-the-middle attack. I think I tested it with mbedTLS or aiocoap, but as I say, I am not sure about it right now. Maybe we had something on Jira related to that...


How can I install stable version-1.1.1

➜  GoglandProjects go get -u github.com/wgliang/goreporter/tree/version-1.1.1
package github.com/wgliang/goreporter/tree/version-1.1.1: cannot find package "github.com/wgliang/goreporter/tree/version-1.1.1" in any of:
/usr/local/go/src/github.com/wgliang/goreporter/tree/version-1.1.1 (from $GOROOT)
/Users/yongxue/GoglandProjects/src/github.com/wgliang/goreporter/tree/version-1.1.1 (from $GOPATH)

see https://github.com/wgliang/goreporter/releases

try using a 3rd party tool like glide - I don't think the suggestion in the README works (or at least not for me in go 1.8)


Non Aggregate Event Support

A formalized EventFlow mechanism is required to provide events that can be subscribed to without reference to an AggregateRoot or Identity and is conceptually similar to delegates but managed by EventFlow.
Use Case
Tracking the count of items in a collection managed by an aggregate.
An AggregateRoot emits an event that an AggregateState applies that results in an item added to a collection managed by the AggregateState. To notify the world that the count of collection items have changed, there are two options:

Use the AggregateState's item count + 1 and Emit as final count of items value as a single event in the Aggregate or
Emit an event that is handled by the AggregateState that adds a new item to the collection and then Emit a second event following the first in the Aggregate with the total items in the collection as reported by the AggregateState

Using approach 1 feels wrong even though the AggregateState does not / should not apply any logic but only record events and do a build-up of the state over time in response to events which in this case has not been actually been applied.
Using approach 2 results in empty and unneeded IApply implementations due to the fact that the event must have an implementation to avoid an Aggregate 'X' does have an 'Apply' method that takes aggregate event 'Y' as argument exception but the event is only of interest to a ISubscriber or possibly a IReadModel.

If the new event is not related to a aggregate, then it would not be added to any event streams, is that correctly understood?
If yes, then I guess it isn't a event that important to your domain and I personally wouldn't use EventFlow for propagating that event, but instead publishing that from a subscriber using another mechanism. Again, if the event isn't related to an aggregate, then I guess that other parts of the application could emit the event as well and using an alternate implementation would ensure that those components aren't dependent on EventFlow as well.
If you want to implement it yourself, then the implementation should be straightforward as you could look at how EventFlow does the resolve of subscribers.
Any thoughts @JC008?

The problem is related to cross domain event subscribers and information changing in the aggregate which is only known after an event is emitted. The following events where emitted after a catalog and two catalog groups  where added following approach 2 above:
{"NewCatalog":{"Description":"test","Icon":"archive","Name":"80s Music","Owner":"cc4b1e5d-b662-5505-b882-ea4658b519b5","Tags":null,"User":"cc4b1e5d-b662-5505-b882-ea4658b519b5"}}

{"NewCatalogGroup":{"Catalog":"dd856a4e-6e7e-5574-ae5a-c5cad5c8c1cc","Description":"test","Icon":"archive","Id":"5bf20e93-3589-5a52-8a6e-e1c51255d406","Name":"Rock","Owner":"cc4b1e5d-b662-5505-b882-ea4658b519b5","Parent":null,"Tags":null,"User":"cc4b1e5d-b662-5505-b882-ea4658b519b5"}}

{"Count":1}

{"NewCatalogGroup":{"Catalog":"dd856a4e-6e7e-5574-ae5a-c5cad5c8c1cc","Description":"test","Icon":"archive","Id":"57e25f18-c7d2-5b20-ba05-58d9f8c85c42","Name":"Pop","Owner":"cc4b1e5d-b662-5505-b882-ea4658b519b5","Parent":null,"Tags":null,"User":"cc4b1e5d-b662-5505-b882-ea4658b519b5"}}

{"Count":2}

The catalog group count can only be updated in the catalog aggregate after NewCatalogGroup events are handled in the IApply handlers in the AggregateState resulting in the Count update events.
The Count events looks too simple to be a domain event and there is no data mutation in the actual event - it's just a state change broadcast.
This could be a common use case which requires formal support in EventFlow or a formal set of community extensions vetted by you to ensure the core EventFlow remains focused but extensible.

@rasmus I will code a proof of problem for this so we can see if its a domain design issue and discuss it with reference to a working sample.

@JC008 Thanks, that would really help :smile:


setChargeLimit only sets level to 50%

Hi, been having trouble with setChargeLimit only sets limit to 50%, if i tries to put percent: "80" it resonds with {reason:"", result: true} but nothing happens. If i try som value that is below current set state (in app) i get same response but it sets it to 50% even if the node-red command said ie 60%. been reading this thread that has the same issue but not with node red (https://teslamotorsclub.com/tmc/threads/model-s-rest-api.13410/page-62) and there it's stated that the problem occurs due to content-type not being set correctly.

Found the solution, turns out you have to add msg.commandArgs = {amt: 80}. and not percent as i've read elsewhere. Would it be possible to add a list with all commands and ther respective commandArgs, with examples?


Use released unicode_name2 1.2.0

We can remove the git dependency (again). See https://github.com/progval/unicode_names2/pull/34#issuecomment-1763141541
I'll run the release pipeline before merging.

Release pipeline succes: https://github.com/astral-sh/ruff/actions/runs/6531187547


Fix leaveOnEnterKey Bug + extra modifiers LeaveWithArrowKeys and SelectNodeOnClick

Overview
https://github.com/lblod/ember-rdfa-editor/pull/946 seemed to still have a problem sometimes where pressing enter did not place the cursor correctly. With console logging, it seemed that the getter did not get the updated position value. (note: this getter is also done in embeddable-editor, but didn't come across the same problem there).
The fix is to just pass the getPos function and use that to get the position. This way it is definitely the correct (updated) position and the whole ember-tracking is fully skipped instead.
This also adds two other modifiers that keep the same syntax for ease of understanding.
Both are used in number-variable (usage not changed, this is purely a "refactor")
leave-with-arrow-keys lets you use the left and right arrow key to leave a certain element.
select-node-on-click selects the node passed when the given bound element is clicked.
connected issues and PRs:
https://binnenland.atlassian.net/jira/software/c/projects/GN/boards/4?selectedIssue=GN-4433
https://github.com/lblod/ember-rdfa-editor-lblod-plugins/pull/285
Setup
for the fix, no setup needed.
For the extra modifiers, npm link this repo and npm link @lblod/ember-rdfa-editor in the plugins repo. Then ember serve the plugins repo.
How to test/reproduce
add a link, see that enter puts the cursor after the node, always. Even when typing in extra text.
For the other modifiers: see no change in usage of arrow keys and enter for a number variable.
Challenges/uncertainties
This started out as a sort of test to see if modifier could work and clean up the code.
I am convinced these are amazing to use. They decrease a lot of the code in the components and keep related code together, help reusability and abstract away harder-to-grasp "on 'keyup' " listeners.

I am not sure why it can't find @ember/destroyable. As far as I can see it should be part of the ember version used? https://github.com/emberjs/rfcs/blob/master/text/0580-destroyables.md


ENG-2417 Visualizer supports dark mode

Flip-flopping the label color based on light or dark mode

bors merge


"import pkg_resources" fails with UnicodeDecodeError while parsing /usr/lib/pymodules/python2.7/rpl-1.5.5.egg-info

My ubuntu has an egg-info that pkg_resources fails to read with a UnicodeDecodeError. This made all sorts of things fail in my virtual environment.
> git clone https://github.com/pypa/setuptools
...
> cd setuptools/
> python -c "import pkg_resources"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "pkg_resources/__init__.py", line 2964, in <module>
    @_call_aside
  File "pkg_resources/__init__.py", line 2950, in _call_aside
    f(*args, **kwargs)
  File "pkg_resources/__init__.py", line 2977, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "pkg_resources/__init__.py", line 626, in _build_master
    ws = cls()
  File "pkg_resources/__init__.py", line 619, in __init__
    self.add_entry(entry)
  File "pkg_resources/__init__.py", line 675, in add_entry
    for dist in find_distributions(entry, True):
  File "pkg_resources/__init__.py", line 1988, in find_on_path
    path_item, entry, metadata, precedence=DEVELOP_DIST
  File "pkg_resources/__init__.py", line 2376, in from_location
    py_version=py_version, platform=platform, **kw
  File "pkg_resources/__init__.py", line 2717, in _reload_version
    md_version = _version_from_file(self._get_metadata(self.PKG_INFO))
  File "pkg_resources/__init__.py", line 2341, in _version_from_file
    line = next(iter(version_lines), '')
  File "pkg_resources/__init__.py", line 2509, in _get_metadata
    for line in self.get_metadata_lines(name):
  File "pkg_resources/__init__.py", line 1879, in get_metadata_lines
    return yield_lines(self.get_metadata(name))
  File "pkg_resources/__init__.py", line 1869, in get_metadata
    metadata = f.read()
  File "/usr/lib/python2.7/codecs.py", line 296, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb6 in position 147: invalid start byte in /usr/lib/pymodules/python2.7/rpl-1.5.5.egg-info

The problematic egg-info file is attached, with an added extension (txt) to fool github into accepting the attachment.
rpl-1.5.5.egg-info.txt
This is with python 2.7.2 and setuptools aad4a6913d3e505064c76322d20756909724c411.
To make my virtualenv work properly, I had to patch pkg_resources/init.py, replacing the line:
        md_version = _version_from_file(self._get_metadata(self.PKG_INFO))

in EggInfoDistribution._reload_version with this:
        try:
            md_version = _version_from_file(self._get_metadata(self.PKG_INFO))
        except UnicodeDecodeError as e:
            warnings.warn(
                'failure to read version number of %s at %s due to: %s' % (self.project_name, self.location, e))
            md_version = None

I can make a pull request out of this if you think this is a good solution.
BTW, the stack trace looks similar to that of #531 . You can also see multiple other people running into the same problem on stackoverflow.com, here, here, and here.

Upon reflection I think _version_from_file is a better place to catch the error and return None.

The stack trace isn't just similar to #531, it's nearly identical... finding the same offending character in the same position. I think your report explains the issue there, and here's what I think was happening:

pip was installing packages and in doing so installed rpl 1.5.5 (or similar).
When pip got around to installing setuptools, that was the first package that happened to invoke pkg_resources,
which triggered the failure you've reported above.

I suspect the issue is that the offending package wasn't properly packaged (or was packaged with an old or defective build system).
I'm not sure we want to patch this by suppressing the error and masking the installed version. I could see augmenting the error to help the user better trace the issue to the source.
I'll dig a bit more into rpl to see what we can learn from it.

Hmm. Rpl is 404 in PyPI and difficult to find anything about. I eventually track it to its sourceforge home, where the latest release is from 2007 and there's an open ticket for exactly this issue. When I downloaded the 1.5.5 tgz file from the project page, I was unable to execute setup.py due to an encoding error in the script (the author should be Göran Weinholt not b'Go\xb6ran Weinholt'.
Perhaps, though, there's still something setuptools could do here beyond crashing with a nicer error message. Perhaps pkg_resources, when opening a metadata file, should use a lenient decoding, perhaps utf-8 with surrogate escapes or with some other replacement.

I'm not sure we want to patch this by suppressing the error and masking the installed version. I could see augmenting the error to help the user better trace the issue to the source.

I see this was already done, and was apparent in the error message above.

I've created the issue-719 branch in the repo and pushed a possible workaround. This workaround keeps the existing behavior (fail fast and hard), but provides an environment variable for these environments affected by the issue to bypass it. This mechanism would help maintain the defacto expectation (that packages should be properly encoded), but enable legacy environments or environments with abandoned packages like rpl to continue to function.
Thoughts?

Your solution does provide a remedy for problems such as mine, and I appreciate that.
I think, though, that setuptools could be kinder to its users. I don't see much point in sending users off to google what this problem with UnicodeDecodeError and what's the accepted workaround ("oh, so I have to set this environment variable and then it works? thanks mate. But why can't things just work? Sigh..."). I mean, what's the benefit from that virtual legwork? setuptools can just catch the error, consult a hard-coded list of "bad egg-infos", see that the egg-info in question is a known troublemaker, and silently disregard the error.
I see why you'd be concerned about incentivizing maintainers of other packages to fix the encoding of the egg-info. For that, I think it sufficient to require that elements are not added to the "bad eggs" list until a ticket is opened against the offending package in the appropriate place. If the package is actively maintained, then the owner is very likely to care that his package is listed in a "hall of shame" such as this, so I think this is incentive enough to fix the root cause.
Consider that my workstation's OS has reached end-of-life. Even if rpl were fixed in sourceforge, it would not help me much (I neither have root access to my machine nor do I know how to create and install a custom ubuntu package to replace the egg-info with a good one). There are lots of users who cannot fix the root cause, and I don't see much point in disrupting their work. Hence my suggestion of a "bad eggs" list.

Or maybe a combination of both of our proposals would be best: have a "bad-eggs" list and allow it to be extended through an environment variable. That way users can work around the problem without involving you (the pkg_resources maintainer).

You make some good points. I do want to be cognizant of over-complicating the implementation when it may just be one or two packages that are bad eggs.
And that leads me to wonder, does it really need to fail fast and hard here, or just be noisy?
I've pushed another implementation that I believe will always suppress decoding errors, but will log a warning if such an encoding issue is detected.
How does this approach strike you?

This seems to me like an excellent solution. Thank you!


New station map Origin

A new station map called Origin

Here are some additional images to show the atmos working, singularity spinning and the ame functioning.

all these should have now been adressed

all these should have now been adressed

Can you update the rendered image for me.

all of these double-airlocks need put into a single tile, you can stack firelocks on top of doors just fine. (to save on work i'd move the doors, not the firelocks)

Maint seems too bright

Your halls have about twice as many lights as they actually need, test them in-game to figure out what you can remove but it should be ~1/2 of them.

A lot of rooms are also overlit, once again the above advice. Keep in mind there is a light cap, and if there's more than 128 lights affecting the visible scene at once (which your overuse can cause), the game's graphics will get a bit fucky.

Some of maint is still pretty empty feeling. Try making it less cramped, adding more lockers, racks, tables, chairs, debris, air canisters, water tanks, fuel tanks, etc. Also use wall-mounted maintenance lockers if you really need them. Some areas are now good while others are just a pancake stack of empty halls:

Some sections of maint should really get built out, long one tile wide halls are not great feeling. For example:
The wrap here:

Look at how other maps do decals, often encasing the room in solid decal doesn't look as good as using the alternating edges.

I don't know how I didn't notice this before but cargo has no maint.

THE NITPICKS
Everything here is entirely optional to fix.

The crayon numbers used permanently on the floor should probably be replaced with some new, less hand-drawn looking number decals.

Potted plants are a mysteriously rare sight here when they're pretty great filler.

You don't seem to be able to... Get anywhere with maint? If we look at Meta as an example, you can stealthily sneak around large swaths of the station using them. Here, there's a few sections of maint separated by normal hallways or locked departments. Making navigation with them tricky.

Heavy focus on symmetry throughout can make the map feel overly repetitive

Advise against needless doublewalls in name of symmetry:

Echoing most of Moony's points about maint being both barren and far too lit.
Also agree with the points on Decal usage.

* all of these double-airlocks need put into a single tile, you can stack firelocks on top of doors just fine. (to save on work i'd move the doors, not the firelocks)

* Maint seems too bright

* Your halls have about twice as many lights as they actually need, test them in-game to figure out what you can remove but it should be ~1/2 of them.

* A lot of rooms are also overlit, once again the above advice. Keep in mind there is a **light cap**, and if there's more than 128 lights affecting the visible scene at once (which your overuse can cause), the game's graphics will get a bit fucky.

* Some of maint is still pretty empty feeling. Try making it less cramped, adding more lockers, racks, tables, chairs, debris, air canisters, water tanks, fuel tanks, etc. Also use wall-mounted maintenance lockers if you really need them. Some areas are now good while others are just a pancake stack of empty halls:
  ![image](https://user-images.githubusercontent.com/7806367/196055371-b37d6473-2067-4dc9-bd9b-c58466272d38.png)
  ![image](https://user-images.githubusercontent.com/7806367/196055393-982f28a1-15e9-4923-832f-4d93deddc01c.png)

* Some sections of maint should really get built out, long one tile wide halls are not great feeling. For example:
  The wrap here:
  ![image](https://user-images.githubusercontent.com/7806367/196055425-394d75be-37f2-4db7-b9af-45c8926573ff.png)
  ![image](https://user-images.githubusercontent.com/7806367/196055454-c67818a4-7ee3-412b-a4bb-e133a21cb45f.png)

* Look at how other maps do decals, often encasing the room in solid decal doesn't look as good as using the alternating edges.

* I don't know how I didn't notice this before but cargo has no maint.

THE NITPICKS
Everything here is entirely optional to fix.
* The crayon numbers used permanently on the floor should probably be replaced with some new, less hand-drawn looking number decals.
  ![image](https://user-images.githubusercontent.com/7806367/196055479-abbac5ff-b808-49f6-a15e-cf3f25839649.png)

* Potted plants are a mysteriously rare sight here when they're pretty great filler.

updated the map with some hopefull fixes to these issues.

Need to remove Splitstation's files (Resources/Maps/split.yml and Resources/Prototypes/Maps/split.yml) from the game.

Need to remove Splitstation's files (Resources/Maps/split.yml and Resources/Prototypes/Maps/split.yml) from the game in this PR.

ok i will but the map isnt working i dont think


⚠ Bofrost.de has degraded performance

In 67e1f56, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 877 ms

Resolved: Bofrost.de performance has improved in 98f87e2 after 6 minutes.


[gatsby-theme-minimal-blog]: Unable to change channel title value in RSS feed

Description
I have set all the site metadata in my gatsby-config.js file including the siteTitleAlt property, but I am unable to change the channel title shown in the /rss.xml page of my website that uses the minimal blog theme. Did some quick investigation and found that the newsletterFeed.js file (located at themes/gatsby-theme-minimal-blog/src/utils/newsletterFeed.js) has the title of the RSS channel hard-coded to Minimal Blog - @lekoarts/gatsby-theme-minimal-blog. I even attempted to override the newsletterFeed.js file using shadowing, but was unable to get it working properly.
Steps to reproduce

Create a new gatsby website using the minimal blog theme.
Update all the site title related metadata in the gatsby-config.js file of the website.
The channel title always remains hard-coded as Minimal Blog - @lekoarts/gatsby-theme-minimal-blog no matter what values are entered into the properties of the siteMetadata section in the gatsby-config.js file

Expected result
Channel title value in the RSS feed output should use the site.siteMetadata.siteTitleAlt value from the gatsby-config.js file and not be hard-coded to the title of the theme.
Actual result
Channel title value in the RSS feed output is hard-coded to Minimal Blog - @lekoarts/gatsby-theme-minimal-blog.
Environment
  System:
    OS: Windows 10 10.0.18363
    CPU: (8) x64 Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
  Binaries:
    Node: 10.15.3 - C:\Program Files\nodejs\node.EXE
    npm: 6.4.1 - C:\Program Files\nodejs\npm.CMD
  Languages:
    Python: 3.7.1
  Browsers:
    Edge: 44.18362.449.0
  npmPackages:
    gatsby: ^2.13.3 => 2.19.17
    gatsby-plugin-google-analytics: ^2.1.4 => 2.1.35
    gatsby-plugin-manifest: ^2.2.3 => 2.2.41
    gatsby-plugin-netlify: ^2.1.3 => 2.1.32
    gatsby-plugin-offline: ^2.2.4 => 2.2.10
    gatsby-plugin-sitemap: ^2.2.19 => 2.2.27
    gatsby-plugin-webpack-bundle-analyser-v2: ^1.1.8 => 1.1.8

Try copy & pasting the contents of newsletterFeed into your own gatsby-config.js. This should be a workaround until I think of a better workaround (since it's an upstream issue that newsletterFeed isn't shadowed).

Thanks for your prompt response. I will try that and see how it goes. Also,
is it not possible to have the newsletterFeed.js file not hard-code the
title value and instead get its value from the siteTitleAlt property in
siteMetadata? I tried to do this myself, but as I am new to Gatsby and
don’t fully understand how it works, I wasn’t able to get that working. The
newsletterFeed.js file has a couple of graphql queries in it. Is it not
possible to set the channel title to data coming out of the query? Sorry,
if what I am asking is dumb and doesn’t make sense. Just thinking out loud.
Will let you know how I go with copying the contents of the
newsletterFeed.js file into my gatsby-config.js.
Thank you for your help and also for this really awesome minimalist theme.
On Sun, 1 Mar 2020 at 5:01 am, Lennart<EMAIL_ADDRESS>wrote:

Try copy & pasting the contents of newsletterFeed into your own
gatsby-config.js. This should be a workaround until I think of a better
workaround (since it's an upstream issue that newsletterFeed isn't
shadowed).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/LekoArts/gatsby-themes/issues/290?email_source=notifications&email_token=AK5CEDC3JNUXZOUZ3DENU6DRFFGOFA5CNFSM4K6ZYDOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENMBGQI#issuecomment-592974657,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK5CEDE4SREQCPGTDV2KGF3RFFGOFANCNFSM4K6ZYDOA
.

--
Sid Mansukhani
Mobile: 0433 179 520
Email<EMAIL_ADDRESS>

@LekoArts, I have tried your workaround and it worked well. The channel title on the /rss.xml URL now has the correct title. There is just one minor issue now that I am not sure how to fix. There are now two RSS declarations in the head section of all my pages:
<link rel="alternate" type="application/rss+xml" title="Minimal Blog - @lekoarts/gatsby-theme-minimal-blog" href="/rss.xml"/>

<link rel="alternate" type="application/rss+xml" title="My Test RSS Feed Title" href="/rss.xml"/>

As you can see the first one is the original one that comes from the theme's newsletterFeed.js and the second is the one that comes from the workaround you suggested in the gatsby.config.js file.
I am not sure how to prevent the theme's newsletterFeed.js file from executing so that the first <link /> element is not rendered. This affects what title user's see in their RSS readers. If they add my RSS feed to their reader by using the homepage URL of my blog, then their reader uses the Minimal Blog - @lekoarts/gatsby-theme-minimal-blog title. However, if they add my RSS feed to their reader using the /rss.xml, then it uses the My Test RSS Feed Title title from the RSS feed channel title. Here is what my gatsby-config.js looks like with the workaround you suggested:
require(`dotenv`).config({
  path: `.env`,
})

module.exports = {
  siteMetadata: {
    author: `@testuser`,
    siteDescription: `Test site description`,
    siteHeadline: `Test site headline`,
    siteImage: ``,
    siteLanguage: `en`,
    siteTitle: `Test site title`,
    siteTitleAlt: `Test site title alt`,
    siteUrl: `https://test.test`
  },
  plugins: [
    {
      resolve: `@lekoarts/gatsby-theme-minimal-blog`,
      options: {
        navigation: [
          {
            title: `About`,
            slug: `/about`
          },
          {
            title: `Blog`,
            slug: `/blog`
          }
        ],
        externalLinks: [
          {
            name: `Twitter`,
            url: `https://twitter.com/testuser`,
          },
          {
            name: `Instagram`,
            url: `https://www.instagram.com/testuser/`,
          },
        ],
      },
    },
    {
      resolve: `gatsby-plugin-google-analytics`,
      options: {
        trackingId: process.env.GOOGLE_ANALYTICS_ID,
      },
    },
    `gatsby-plugin-sitemap`,
    {
      resolve: `gatsby-plugin-manifest`,
      options: {
        name: `Test Site Title`,
        short_name: `test-blog`,
        description: `Test site description`,
        start_url: `/`,
        background_color: `#fff`,
        theme_color: `#6B46C1`,
        display: `standalone`,
        icons: [
          {
            src: `/android-chrome-192x192.png`,
            sizes: `192x192`,
            type: `image/png`,
          },
          {
            src: `/android-chrome-512x512.png`,
            sizes: `512x512`,
            type: `image/png`,
          },
        ],
      },
    },
    `gatsby-plugin-offline`,
    `gatsby-plugin-netlify`,
    // `gatsby-plugin-webpack-bundle-analyser-v2`,
    {
      resolve: `gatsby-plugin-feed`,
      options: {
        query: `
          {
            site {
              siteMetadata {
                title: siteTitle
                description: siteDescription
                siteUrl
              }
            }
          }
        `,
        feeds: [
          {
            serialize: ({ query: { site, allPost } }) => {
              return allPost.nodes.map(post => {
                return {
                  title: post.title,
                  date: post.date,
                  excerpt: post.excerpt,
                  url: site.siteMetadata.siteUrl + post.slug,
                  guid: site.siteMetadata.siteUrl + post.slug,
                  custom_elements: [{ "content:encoded": post.html }],
                }
              })
            },
            query: `
              {
                allPost(sort: { fields: date, order: DESC }) {
                  nodes {
                    title
                    date(formatString: "MMMM D, YYYY")
                    excerpt
                    slug
                    html
                  }
                }
              }
            `,
            output: `rss.xml`,
            title: `My Test RSS Feed Title`,
          }
        ]
      }
    }
  ],
}

Please let me know if I am missing something or if I have implemented the workaround incorrectly. Any help to remove the first <link /> element would be greatly appreciated.

I went ahead and added two more options in 2.2.2 which should fix your issue.

Hi @LekoArts, thank you so much for this. I did an npm update in my repo and I can now set the title properly via the feedTitle property. I also no longer have a duplicate of the <link /> element. However, I have a new issue that seems to only happen when deploying to netlify. I get the following error during the build process in netlify only (it works fine on my local dev environment):
2:44:32 AM: error Building static HTML failed for path "/"
2:44:32 AM:   62 |
2:44:32 AM:   63 |   if (typeof setColorMode !== 'function') {
2:44:32 AM: > 64 |     throw new Error(`[useColorMode] requires the ThemeProvider component`)
2:44:32 AM:      |           ^
2:44:32 AM:   65 |   }
2:44:32 AM:   66 |
2:44:32 AM:   67 |   return [colorMode, setColorMode]
2:44:32 AM:
2:44:32 AM:   WebpackError: [useColorMode] requires the ThemeProvider component
2:44:32 AM:
2:44:32 AM:   - color-modes.js:64 useColorMode
2:44:32 AM:     src/color-modes.js:64:11
2:44:32 AM:
2:44:32 AM:   - header.tsx:14 Header
2:44:32 AM:     node_modules/@lekoarts/gatsby-theme-minimal-blog/src/components/header.tsx:1    4:49

Not sure if this helps, but here is a link to the feature branch I am using to test version 2.2.2 of the theme: https://github.com/sidm1983/vicious-volumes/tree/package-update
I am not sure what I am missing here. Any help would be greatly appreciated. Thank you for your time and effort with this issue.

@LekoArts actually, don't worry about the above error. I fixed it. It was because of the yarn.lock file that I had in the repo. I think it went out of sync after I did the update to version 2.2.2 via NPM. I fixed it by deleting the yarn.lock file. Thank you for the fix in version 2.2.2. 🙏😄


KAFKA-7660: fix streams and Metrics memory leaks.

Backport two memory-leak fixes (#5974 and #5953)
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@mjsax @guozhangwang , This backports a couple of small memory-leak fixes from trunk.
I'm not sure if you want to keep them as separate commits in the backport as well...

Thanks, @mjsax !


Consensus tests: improve test data generation

Test data generation in the consensus tests currently is suboptimal:

TestConfig contains numSlots, which should be derived in terms of k, but the generator for TestConfig has no access to k
Ideally, TestConfig should also contain EpochSize, but that must be derived in terms of k (at least for Byron), and so it's currently a separate parameter (https://github.com/input-output-hk/ouroboros-network/pull/1734)
These are various uses of nested forAll (and worse, forAllShrink), that should be avoided to get reliable (or indeed correct) shrinking.

Marking as medium priority primarily because nested use of forAllShrink can lead to invalid test cases, which may send us down the wrong path entirely when debugging.

Note that this isn't quite as simple as adding a security parameter to TestConfig: many of the tests get some additional parameters (such as PBftParams) which themselves already imply a value for k.

@nfrisby Can we close this now?

TestConfig contains numSlots, which should be derived in terms of k, but the generator for TestConfig has no access to k

That hasn't changed. But I think we're at least partially addressing the same fundamental concern by testing with small k. Currently every test (except for RealTPraos, which I'm trying to update now) uses k <- choose (1, 10) or k <- choose (2, 10) and a numSlots <- choose (1, 100). So we explore various multiples of k number of slots, anywhere from < 1k up to 100k (not uniformly distributed).
And sometimes the multiples of k cover multiple epochs. The tests with real ledgers get the epoch size from the ledger; so it's essentially fixed at 10k since that's the baked-in value. For tests with mock ledgers, we either fix it to 10k because "the ledger/protocol don't really care" (BFT, PBFT) or choose (1, 10) (LeaderSchedule, Praos, HFC).
This Issue can be closed if the above organization is acceptable. Work we could do: make the generators more directly/obviously cover multiple epochs, tune the distribution.

Yeah, seems fine to me.


Add sample function to logger

This PR introduces a new function to the Logger object called sample which accepts a float value.
This PR also includes tests as well as a small fix to the AppSignal tests where we expect 200 but receive 204.

Not sure this test is the best one considering it's inherit randomness. also I think the key for Raygun is not working


How to remove permissions from roles

I would like to remove permissons from a givewn role. How do i go about it?
$role = $request->route("role"); //gets one role eg admin

you need create your own method, create a controller called PermissionController and a Model Permission, then you create a delete function to remove the permission passing some parameters


cursor hint not well positioned on big tiles

@pelikhan
fixed here https://github.com/microsoft/microcode/pull/169


Consider putting file tree view in file tree on left side below fav paths

This could make it easier to see an overview of the whole filesystem and find files.

We also need to add more actions like new file and new folder to the file view context menu (we should add everything present in file tree). Also, we should add a nicer display mechanism for file permissions that explains what it means.

We will only support the file tree in the file view in the files app, as it will only serve as unnecessary bloat elsewhere. We still need to implement the other improvements mentioned above.

All of those things have been implemented in the commits above.


1.2.5 format changes: dissoc

Hey Kim!
In this commit, the formatting for dissoc was changed. It seems there wasn't anything specific for it previously, so I don't know how it decided to format (hang I guess?).
Here's an example of the change:
;; Given
(dissoc x :aaaaaaaaaaaaaa :bbbbbbbbbb :ccccccccccccccccc :dddddddddddddddddddddd)

; 1.2.4 output
(dissoc x
        :aaaaaaaaaaaaaa :bbbbbbbbbb
        :ccccccccccccccccc :dddddddddddddddddddddd)

; 1.2.5
(dissoc x
 :aaaaaaaaaaaaaa
 :bbbbbbbbbb
 :ccccccccccccccccc
 :dddddddddddddddddddddd)

Worth noting that assoc didn't receive any likewise changes:
; Given
(assoc x :aaaaaaaaaaaaaa 1 :bbbbbbbbbb 2 :ccccccccccccccccc 3 :dddddddddddddddddddddd 4)

; 1.2.4 and 1.2.5
(assoc x
       :aaaaaaaaaaaaaa 1
       :bbbbbbbbbb 2
       :ccccccccccccccccc 3
       :dddddddddddddddddddddd 4)

I don't necessarily think the change is bad but it has added a bunch of changes to our codebase when updating to 1.2.5.
Ideally this wouldn't have changed, but I can add "dissoc" :none to our :fn-map if reverting has implications elsewhere.
Thanks so much

Noah -- thanks for asking!
Yes, I added disssoc to the :fn-map because, as you say, there had been nothing there for it previously. So what happened was that the capability I call "constant pairing" came into play, and caused multiple keywords to pair up.  As you have shown in your example.  Since the keywords in dissoc don't actually have any relationship to each other, pairing them up seemed to imply something that was misleading.  They are paired up in assoc because they are key-value pairs.  To prevent this pairing, I put dissoc in the :fn-map and turned off constant pairing at the first level.  I also made it :arg1 since its first argument was special, like assoc.
You can certainly revert that behavior by, as you note, setting the fn-map for dissoc to :none, and it will go back to the way it was.  If you really don't like the :arg1, I would recommend, however, that you replace :arg1 with :none in the :fn-map, but leave the constant pairing turned off.  You can't actually do that directly, you would need to replace what's there with
[:none {:list {:constant-pair? false}, :next-inner-restore [[:list :constant-pair?]]}]

That way you won't get the constant pairing.  Unless you really like that for some reason?
Anyway, that was my thinking on this change.  It is always hard to decide to change some default value, but in this case I felt that it was really misleading people, and that is exactly the opposite of my goals.

Cool, that makes a lot more sense, thanks. Maybe noting that in the changelog will prevent further confusion.
I think our goals are at cross purposes, which is understandable. Yours is to build a general tool for the community that is semantic and beautiful and mine is to change as little as possible in my company's codebase when updating libraries. I agree that the way dissoc worked pre-1.2.5 is semantically misleading and shouldn't have been that way, but with a team of 50, adding ~10 extra files of changes increases the probability of merge conflicts and issues down the line. (This is especially relevant with the tuning changes. I'm using :original-tuning even tho it's objectively worse because otherwise, the diff goes from 96 files touched to 371.)
I'm not saying you have to be as conservative as the clojure.core team, just want to highlight why someone might want to keep things that are currently working as close as possible when updating.
Thanks as always for your work on zprint.

Thanks for the comment.  I've been in exactly your position (though I'm not at present) and I totally understand.  That's why I try to always give people a fallback to the "old way" -- when I can.  Thanks for reminding me of the consequences of my changes.  It is always good to keep an eye on the pain I'm causing people!


[META] OpenSearch Dashboards Forecasting Dev Ops Metrics

This is a meta issue for UX work related to predicting behavior of time series data in OpenSearch Dashboards.
The solution covers creating and managing forecasting jobs from a data source and consuming forecasting results visualized on a graph based on this feature proposal.
Forecasting will show the user where their metrics are headed so that they can prepare accordingly (e.g. disk space, server instance upgrades, inventory planning).
Is your feature request related to a problem? Please describe.
DevOps and SREs can leverage AI/ML capabilities of OpenSearch to identify anomalies in their log data, but the gained insights would be retroactive by definition. The user wants to make sure that the applications, service tiers, or services are up and fully functional, they would like to be proactively notified if their area of responsibility is going to have problems.
With Forecasting user can configure a job that will take in account the granularity and the amount of the data and will train a machine learning model to generate predictive datapoints for a desired period of time in the future. The forecasting results will be visualized on a graph.
Describe the solution you'd like
The following UX proposal is describing a workflow of user for setting up and managing a forecast and the user experience to view forecasting results. The recommendation includes the use of OUI components to provide consistency and ease in user and developer experience.
Forecast lifecycle
Forecast (forecasting job) can exist in one of the following states:

Inactive - a forecast that hasn’t been started yet
Inactive: stopped - a forecast stopped by user after running
Awaiting data to initialize forecast - a forecast is attempting to start but there is not enough data for the model to start initializing
Awaiting data to restart forecast - a forecast is attempting to restart after running but there is not enough data
Initializing test - a forecast is building model to run test
Initializing forecast - a forecast is building model to start running continuously
Test complete - a forecast generated a test result and stopped
Running - a forecast running continuously
Test initialization failed
Forecast initialization failed
Forecast failed

Some of the state transitions happen automatically (an example being going from “Initializing test” to “Test complete”) or be triggered by user (in order for a forecast to go into “Initializing forecast” user starts the forecast).

User flows

[ ]  List Forecasts
[ ] Create Forecast
[ ] Test and Start Forecast
[ ] View Forecasting Results (forecasting visualization)
[ ] Edit Forecast

[Triage -- attendees 1, 2, 3, 4, 5, 6, 7]


fix! not loading in contracts with custom WasmVM after upgrade

ref PR #960 for further information and debugging scripts
Will need to backport to main

need to try on testnet
Need to halt and patch to mainnet vals

@dimiandre I'm fine with that. Didn't know if Core-1 could get the votes.
The first commit in this PR is from the release/v19 branch. So I can't remove that but will get the handler out if desired

lets do the halt and patch

Can confirm v18 -> this branch works as expected with it.


Download and build image during initialize

The code for this is already on the branch takeoff_develop. This task only needs to fulfill the TODOs regarding changing the image name in DockerController and uncommenting the method call that will pull the image on startup in the lib façade.

This is staying as a blocked task until we make sure that the image uploaded to Docker Hub correctly works with what's implemented in TakeOff


Problem saving value of the input inside blade using $form->html

Laravel Version: 5.6
PHP Version: 7.2
Laravel-admin: 1.5

Description:
I am trying to add a custom html input but $form won't save the value of that field when saving/storing form data to db.
The blade  contains
How can I make $form to recognize the value so that I can save the value to database.
Steps To Reproduce:
$form -> html(view('blade'))

You can add your column as a hidden field, And assign the value of you html field to the hidden field in saving callback


AbstractScheduledEventExecutor.schedule(...) must accept delay <= 0.

Motivation:
As the javadoc of ScheduledExecutorService state:
Zero and negative delays (but not periods) are also allowed in schedule methods,and are treated as requests for immediate execution.
Modifications:

Correctly handle delay <= 0.
Add unit tests.

Result:
Fixes [#6627].

done

Cherry-picked into 4.1 (1b0b8f80cd) and 4.0 (59a8292e36)


[FLINK-6489] [FLINK-8696] [shell scripts] Remove JobManager local mode from the Shell Scripts

What is the purpose of the change
The JobManager local mode is problematic:

The JobManager does not start all components properly, making some operations fail/timeout unexpectedly
It introduces code complexity in maintaining the JobManager entry point that also spawns an embedded TaskManager

The JobManager local mode is also unnecessary. The start-cluster.sh script sets up a proper local cluster without additional configuration.
This pull request removes the local mode from all UNIX scripts and changes the Windows start-local.bat to a  start-cluster.bat that also starts two separate processes for JobManager and TaskManager.
Brief change log

Changes the start-local.bat to a  start-cluster.bat which spawns two processes (using start command). The two processes show up as separate windows and can be stopped separately.
Removes the start-local-sh and stop-local.sh scripts.
Removes the passing of the local parameter between the shell scripts and always passes cluster as the execution mode parameter to the JobManager.

The next step would be to remove the execution mode from the JobManagers command line argument parsing and setup logic.
Verifying this change

Building Flink, starting a cluster via the shell scripts (Linux, MacOS, Windows) and checking the WebUI that the cluster is properly up. No actual job execution needed.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Docs are updated to not refer to start-local.xy any more.

There's still a reference to start-local.sh in common.sh:
function start_cluster {
  if [[ "$CLUSTER_MODE" == "local" ]]; then
    $FLINK_DIR/bin/start-local.sh
  elif [[ "$CLUSTER_MODE" == "cluster" ]]; then
    $FLINK_DIR/bin/start-cluster.sh
  else
    echo "Unrecognized cluster mode: $CLUSTER_MODE"
    exit
  fi

I've tried using the start-local.bat scripts and found 2 issues:
1)
The following warning is printed in the JobManager and TaskManager windows:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.hadoop.security.authentication.util.KerberosUtil (file:/C:/Users/Zento/Documents/GitHub/flink/flink-dist/target/flink-1.5-SNAPSHOT-bin/flink-1.5-SNAPSHOT/lib/flink-shaded-hadoop2-uber-1.5-SNAPSHOT.jar) to method sun.security.krb5.Config.getInstance()
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.security.authentication.util.KerberosUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

You cannot use them out-of-the-box as they start the old JobManager/TaskManager components, but the client works against FLIP-6 by default.
3)
After explicitly configuring mode: "old" in flink-conf.yaml the job submissions times out. In the JM/TM logs I found this funky exception:
2018-02-21 10:44:09,363 ERROR akka.remote.Remoting                                          - [B cannot be cast to [C
java.lang.ClassCastException: [B cannot be cast to [C
        at akka.remote.artery.FastHash$.ofString(LruBoundedCache.scala:18)
        at akka.remote.serialization.ActorRefResolveCache.hash(ActorRefResolveCache.scala:61)
        at akka.remote.serialization.ActorRefResolveCache.hash(ActorRefResolveCache.scala:55)
        at akka.remote.artery.LruBoundedCache.getOrCompute(LruBoundedCache.scala:110)
        at akka.remote.RemoteActorRefProvider.resolveActorRef(RemoteActorRefProvider.scala:403)
        at akka.actor.SerializedActorRef.readResolve(ActorRef.scala:433)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at java.base/java.io.ObjectStreamClass.invokeReadResolve(Unknown Source)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
        at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)
        at java.base/java.io.ObjectInputStream.defaultReadFields(Unknown Source)
        at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
        at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)
        at java.base/java.io.ObjectInputStream.readObject(Unknown Source)
        at akka.serialization.JavaSerializer$$anonfun$1.apply(Serializer.scala:328)
        at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
        at akka.serialization.JavaSerializer.fromBinary(Serializer.scala:328)
        at akka.serialization.Serialization.akka$serialization$Serialization$$deserializeByteArray(Serialization.scala:156)
        at akka.serialization.Serialization$$anonfun$deserialize$2.apply(Serialization.scala:142)
        at scala.util.Try$.apply(Try.scala:192)
        at akka.serialization.Serialization.deserialize(Serialization.scala:136)
        at akka.remote.MessageSerializer$.deserialize(MessageSerializer.scala:30)
        at akka.remote.DefaultMessageDispatcher.payload$lzycompute$1(Endpoint.scala:64)
        at akka.remote.DefaultMessageDispatcher.payload$1(Endpoint.scala:64)
        at akka.remote.DefaultMessageDispatcher.dispatch(Endpoint.scala:82)
        at akka.remote.EndpointReader$$anonfun$akka$remote$EndpointReader$$deliverAndAck$1.apply(Endpoint.scala:1047)
        at akka.remote.EndpointReader$$anonfun$akka$remote$EndpointReader$$deliverAndAck$1.apply(Endpoint.scala:1046)
        at scala.collection.Iterator$class.foreach(Iterator.scala:891)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
        at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
        at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
        at akka.remote.EndpointReader.akka$remote$EndpointReader$$deliverAndAck(Endpoint.scala:1046)
        at akka.remote.EndpointReader$$anonfun$receive$2.applyOrElse(Endpoint.scala:980)
        at akka.actor.Actor$class.aroundReceive(Actor.scala:502)
        at akka.remote.EndpointActor.aroundReceive(Endpoint.scala:446)
        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
        at akka.actor.ActorCell.invoke(ActorCell.scala:495)
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
        at akka.dispatch.Mailbox.run(Mailbox.scala:224)
        at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

The JM/TM can connect to each other though, and the job submission through the UI is also working. Metrics appear to be broken though.

Hmm, weird, I tried it out under Windows (7) two days ago and it worked quite well.
Let me check into what you found there...

Okay, after a quick check with @zentol

Some issues were caused by Java 9. Apparently Flink on Windows is incompatible with Java 9
We need to change the JobManager and TaskManager to use the flip-6 entry points.
The common.sh in flink-end-to-end-tests needs to be updated.

I tried it again with java 8. The job submission through the client now also works for me, and the warning is no longer printed.

Tested it locally again, works (with current flip-6 Web UI at 9065)
Adjusted the test-infra scripts to remove local mode. Tose are only executed on Travis, so waiting until the CI build passes...

Merged in 74c5570c9fa94d35e47899b0dcdc74a5d18750f6


allow_none keyword argument is lost in constructor override

The allow_none keyword argument is lost in the constructor override in this library, causing self.allow_none to always be True due to this conditional branch in Marshmallow fields.py

lgtm this will be helpful to have.

@justanr Please let me know if any changes are required

allow_none would be passed with the other keyword arguments, unless I'm misunderstanding the purpose of this pr.
There are also tests for handling None.

Unfortunately what seems to happen is allow_none and any other kwargs not explicitly defined in the EnumField class are lost.
**kwargs here becomes **metadata here here.

Only keywords that wouldn't be caught be name in the Field class would transformed into metadata.


Streams order is not respected

When I try to use merge-stream with gulp-concat, the resulting order of concatenated code blocks is different.
const gulp = require('gulp');
const merge = require('merge-stream');
const less = require('gulp-less');
const concat = require('gulp-concat');
const rename = require('gulp-rename');

gulp.task('build', () => {
    const files = ['file1', 'file2', 'file3'];
    const streams = files.map((file) => {
        return gulp.src(`./${file}.less`)
            .pipe(less());
    });
    return merge(...streams)
        .pipe(concat(`merged.css`))
        .pipe(gulp.dest('./result'));
});

Merge multiple streams into one interleaved stream

As per description of the module.

Sorry, I haven't noticed that.
Could you suggest me a package that merges streams in order? I've tried several packages (merge2, ordered-merge-stream or whatever I could found on SO) but they fail with errors or silently loose some streams after some pipes.
If you don't know such a package, could you suggest how to read streams in sequence (order streams output or launch next stream when previous finishes)? I like the simplicity of merge-stream and hope it will be simple for me to tweak it.

@alexanderby https://www.npmjs.com/package/ordered-read-streams

ordered-read-streams says I'm using not readable streams.

https://www.npmjs.com/package/merge2 <--


updating sha for identity-manager

https://github.ibm.com/IBMPrivateCloud/platform-identity-mgmt/pull/598
https://travis.ibm.com/IBMPrivateCloud/platform-identity-mgmt/jobs/38017156#L306

Lgtm

Lgtm

@rashmi43 can you add the lgtm label or click the approve button, please?


Add pdb files to nuspec

 Issue by imanushin
Sunday Mar 19, 2017 at 14:16 GMT
Originally opened as https://github.com/gsscoder/commandline/issues/424

During code analys it is better to have ability to decompile code to understand, what it does.
In this case it is better to add pdb files to final nuget package.
Additionally we will have ability to debug this code.
MSVS can debug external code with known PDBs files.

 Comment by phatcher
Wednesday May 10, 2017 at 12:24 GMT

Can I also suggest that you use pdbgit as well as this would link the pdb symbols to the Github source

 Comment by phatcher
Saturday May 13, 2017 at 13:29 GMT

@imanushin, I don't think this would be an issue for you - if you have the correct version locally and navigate to it then you will resolve to local sources.
All pdbgit does is change the source path embedded in the pdb to point at the github hash version rather than the local path that the published version was compiled on.

 Comment by imanushin
Saturday May 13, 2017 at 13:03 GMT

@phatcher , this is nice tool, however, I'd like to keep pdbs with dll files in the same package, because:

It allow me to see source code without it downloading
I will see detailed callstack in exception on each computer, even it is disconnected from internet.

As I understand, pdbgit just simplify debugging.
Also: what's @gsscoder 's decigion?

 Comment by imanushin
Saturday May 13, 2017 at 13:38 GMT

Nice, thank you! It is interesting.
Will wait until this my current pull request will be pushed. Then will add this extension.


Implement Balanced Resource Allocation (BRA) algorithm as a PriorityFunction in scheduler package.

This PR implements issue #5783.

Add a new priority function: BalancedResourceAllocation
BalancedResourceAllocation(BRA) rates a host based ONLY on how balanced its different types of resource are allocated if the pod would be scheduled on that host (metric: requested resource over capacity in terms of percentage for cpu and memory) . Score scales from 0 to 10 and 10 means the two percentage metrics are well very close, i.e. well balanced.
BRA PriorityFunction should NEVER be used alone and MUST be used collaboratively with LeastRequestedPriority function.
In some research articles, this method is referred to as Balanced Resource Utilization, and we choose to call it Balanced Resource Allocation for better readability.

Why BRA
In the current PriorityFunction libraries, the only function considering the resource utilization is the LeastRequestedPriority function which would lead to imbalanced resource allocation in some case. For instance,  given two hosts with the same capacity {cpu: 10000, mem: 100000}, the current occupied resource is shown below:

host_namecpu occupiedmemory occupied

host1300040000

host2600010000

when a pod with {cpu: 2000, mem: 10000}, the LeastRequestedPriority would score the two hosts as:

host1:
  cpuScore := (10000 - 3000 - 2000) / 10000 * 10 = 5
  memScore := (100000 - 40000 - 10000) / 100000 * 10 = 5
  score := (5 + 5) / 2 = 5

host2:
  cpuScore := (10000 - 6000 - 2000) / 10000 * 10 = 2
  memScore := (100000 - 10000 - 10000) / 100000 * 10 = 8
  score := (8 + 2) / 2 = 5

one can see that host1.score equals to host2.score, in which case the algorithm would select either host1 or host2 based on a random decision. However, it is clear that if host2 is chosen the resource usage rate would be imbalanced with 80% cpu occupied and only 20% memory used, leaving 80% as "resource fragment".
Balanced Resource Allocation algorithm is here to address such problem. The rational underlying the algorithm is, for each host, evaluating the usage percentage of the resources (cpu and memoy in our case) assuming the pending pod already scheduled on that host and rating the host based on how balanced the concerned resources are used. That is to say, host with similar cpu usage percentage and memory usage percentage would be preferred over those without.
As for the example above, host1 would be preferred over host2 as host1 would end up with a more balanced resource usage rate.
Details of BRA
The score given by BRA is scaled from 0-10 with 10 being preferred. This goes with other PriorityFunctions. Note that BRA implemented here considers only the percentage of requested resource over capacity without taking into account the actual free resources on the host. Thus, BRA PriorityFunction should NEVER be used alone and MUST be used collaboratively with LeastRequestedPriority function.
Here are the steps showing the score is calculated:
step1: calculate the cpuPctOfCapRequested and memoryPctOfCapRequested
	PctOfCapRequested := Requested / Capacity * 100%

step2: calculate averagePctOfCapRequested
	averagePctOfCapRequested := (cpuPctOfCapRequested + memoryPctOfCapRequested) / 2

step3: calculate the difference
	cpuDiff = averagePctOfCapRequested - cpuPctOfCapRequested
	memoryDiff = averagePctOfCapRequested - memoryPctOfCapRequested

step4: calculate the variance
	diff := sqrt(cpuDiff^2 + memoryDiff^2)

step5: calculate the score
	score := int(1 / diff)

PS

PS1: If diff <= 1, score is set to 10, thus the score is normalized between $]0, 10]$

PS2: If PctOfCapRequested is 100% (requested >= capacity), score is set to 0 directly so that host with such high resource usage would not be preferred.

PS3: For the example mentioned above, the final score would be:
  host1.score = 10
  host2.score = 2

so host1 is preferred by BRA function.

I'd rather we don't use the word "Usage" for  "Requested  divided by Capacity", unless there is some existing standard for naming these things, which I'm unaware of.
To me, "Usage" is an absolute quantity, not a ratio.  And, without qualifiers, it is a measure made by the operating system, not kubernetes pod requests.  See for example, the Linux kernel cpuacct.usage cgroup file.
Call this PctOfCapRequested or something.

By the same logic, please don't call this Utilization.  IIUC, when people talk about utilization in a datacenter, without any qualifiers, they mean usage divided by capacity, not request divided by capacity.
Maybe call this Balanced Node Fullness, or something.

Hi, @erictune
Thank you for your comments.
I agree that using the word "Usage" for "Requested divided by Capacity" is not proper, and they will be replaced by "PctOfCapRequested" in both code and the PR message.
Regarding the word "Utilization" in Balanced Resource Utilization, this word is actually used in 2 research articles, i.e.

Xin Li et al, Balancing Resource Utilization for Continuous Virtual Machine Requests in Clouds, Sixth International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing, 2012
Wei Huang et al, An Energy Efficient Virtual Machine Placement Algorithm with Balanced Resource Utilization, Seventh International Conference on Innovative Mobile and Internet Services in Ubiquitous Computin, 2013

However, if you feel that this word is confusing in this scenario, I plan to change it to Balanced Resource Allocation. What do you think?

Need some time to fix the check failure.

cc @davidopp @abhgupta

Hi, folks
My last commit has failed the continous-integration check and the reason is (as given by the details from https://travis-ci.org/GoogleCloudPlatform/kubernetes/jobs/56587523):
FAIL	github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/controller	0.280s
However, I can not reproduce this error in my local environment, i.e. ./hacktest-go.sh end up with all oks.
I am confused about this right now, so it would be great if someone could give any advice on this. Big thanks in advance!

@HaiyangDING Seems to be an unrelated error due to a timeout - I would just retry the test. One way to kick off the tests again is to just modify the commit.

I'll restart the tests.

@HaiyangDING
How about call it BalancedResourceAllocation, as you suggested, in the code and you can mention in the docstring that it is based on "Balanced Resource Utilization" research.

@erictune
Sounds like a great idea. Will implement sooner.

@erictune
PTAL, I have fixed the code and the description.

@erictune I assigned this to you just now. If you are too busy, I think @lavalamp said his PR review load is pretty light.

Thanks for this change! I have a few comments. They're mostly minor.
Please squash your commits, in case I forget to ask later.

@lavalamp
Hi, thank you for the kind comments. I have just returned from a small vacation. Will be working on it sooner.

New patch submitted at my home where tests are unable to perform, I will fix them tomorrow. Sorry for the trouble.

How to deal with Shippable failures? I can not see the details.

Shippable is an unrelated flake. Last request before LGTM: document sources, and squash commits again. Thanks!

I confirm that all contributors to this PR are OK with these commits being contributed to Google.
As a matter of fact, the commits are all made by me (dingh, HaiyangDING<EMAIL_ADDRESS>but throught different PCs
PS: I will squash all the commits as I did in https://github.com/HaiyangDING/kubernetes/commit/15b91cd932531b1d41293578832344191d20fee4 later

I confirm that all contributors to this PR are OK with these commits being contributed to Google.
As a matter of fact, the commits are all made by me (dingh, HaiyangDING, dinghaiyang<EMAIL_ADDRESS>but throught different PCs
丁海洋Haiyang DING,
华为技术有限公司.
Technology Introduction & Standard and Patent Dept,
Carrier Software Business Unit,
Huawei Technologies.
地址：南京市雨花区软件大道 101 号.
Address: Huawei Nanjing R&D Center
101 Software Avenue,Yuhuatai District, Nanjing 210012
Jiangsu, P.R.China
Tel: 0086-025-56620756
Email: dinghaiyang<EMAIL_ADDRESS>http://www.huawei.com
发件人: googlebot<EMAIL_ADDRESS>发送时间: 2015年4月9日 15:34
收件人: GoogleCloudPlatform/kubernetes
抄送: dinghaiyang
主题: Re: [kubernetes] Implement Balanced Resource Allocation (BRA) algorithm as a PriorityFunction in scheduler package. (#6150)
We found a Contributor License Agreement for you (the sender of this pull request) and all commit authors, but as best as we can tell these commits were authored by someone else. If that's the case, please add them to this pull request and have them confirm that they're okay with these commits being contributed to Google. If we're mistaken and you did author these commits, just reply here to confirm.
—
Reply to this email directly or view it on GitHubhttps://github.com/GoogleCloudPlatform/kubernetes/pull/6150#issuecomment-91137643.

@lavalamp
I think I have squashed all the commits, but it seems I have to do git pull + git push after git rebase -i which brings up the last commit (Merge branch 'bru' of https://github.com/HaiyangDING/kubernetes into bru 	952c182). Details are at below.
I wonder if it is OK. Please bear me with this, I am new to squashing and let me know if anything should be done.
------------------- details of last steps of git rebase --------------
openstack@network:~/dingh/kubernetes$ git rebase --continue
[detached HEAD 4507b9f] Implement BRA algorithm as a new priority function in scheduler
2 files changed, 309 insertions(+)
[detached HEAD 2bb7eeb] Implement BRA algorithm as a new priority function in scheduler
2 files changed, 309 insertions(+)
Successfully rebased and updated refs/heads/bru.
openstack@network:~/dingh/kubernetes$ git push
Username for 'https://github.com'<EMAIL_ADDRESS>Password for 'https://dinghaiyang<EMAIL_ADDRESS>To https://github.com/HaiyangDING/kubernetes.git
! [rejected]        bru -> bru (non-fast-forward)
error: failed to push some refs to 'https://github.com/HaiyangDING/kubernetes.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.
openstack@network:~/dingh/kubernetes$ git pull
Merge made by the 'recursive' strategy.
openstack@network:~/dingh/kubernetes$ git push
Username for 'https://github.com'<EMAIL_ADDRESS>Password for 'https://dinghaiyang<EMAIL_ADDRESS>To https://github.com/HaiyangDING/kubernetes.git
5387fab..952c182  bru -> bru
openstack@network:~/dingh/kubernetes$ git push --help

@HaiyangDING use fetch + rebase instead of pull + merge to prevent that.

@lavalamp
PTAL, finally it works... thanks

LGTM, thank you!


[AutoDiff] Incorrect tangent vector for generic function returning optional

Description
A differentiable generic function that returns an Optional yields an incorrect tangent vector.
Steps to reproduce
Place the following in a file:
import _Differentiation

@differentiable(reverse)
func givesWrongTangentVector<Element>(x: Element) -> Element? where Element: Differentiable {
    return x
}
@differentiable(reverse)
func f(x: Double) -> Double {
    let y = givesWrongTangentVector(x: x)
    return y!
}
@differentiable(reverse)
func g(x: Double) -> Double {
    return x
}
print(valueWithGradient(at: 0.0, of: f))
print(valueWithGradient(at: 0.0, of: g))

and build and run it.
Expected behavior
If the givesWrongTangentVector function was differentiable, you'd expect the results to be
(value: 0.0, gradient: 1.0)
(value: 0.0, gradient: 1.0)

but they instead are
(value: 0.0, gradient: 0.0)
(value: 0.0, gradient: 1.0)

However, it's unclear whether givesWrongTangentVector should be differentiable. A concrete version of the same function:
@differentiable(reverse)
func givesWrongTangentVector(x: Double) -> Double? {
    return x
}

is marked as not being differentiable by the compiler and won't build.
Environment

Swift compiler version info: all swift.org toolchains, this is not a recent regression

@asavonic Fixed by https://github.com/apple/swift/pull/68300?

@asl @asavonic Looks like it is indeed fixed by #68300, gradients are now correct in local testing.


Add Vietoris–Rips Lifting (Point cloud to Simplicial Complex)

Adding a lifting from point cloud sets to simplicial complex (Vietoris-Rips Complex) using the Vietoris-Rips methodology. It generally works by taking a set of points and a user defined distance threshold $\epsilon$. $1$-Simplices are added between two points if the distance between them is less than or equal to $\epsilon$. Subsequently, an $n$-simplex is created if every pair of its $n+1$ vertices is connected by a $1$-simplex.
Here the implementation takes a torch_geometric Data class where positions of each point is stored in the pos attribute. A dictionary of the lifted topology is returned using an implementation of the _get_lifted_topology function from the Graph2SimplicialLifting class.

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella:

Hello @MatousE! Thank you for your submission. As we near the end of the challenge, I am collecting participant info for the purpose of selecting and announcing winners. Please email me (or have one member of your team email me) at<EMAIL_ADDRESS>so I can share access to the voting form. In your email, please include:

your first and last name (as well as any other team members)
the title of the method you implemented
the input domain of the method you implemented
the output domain of the method you implemented
your pull request number (#17)

Before July 12, make sure that your submission respects all Submission Requirements laid out on the challenge page. Any submission that fails to meet this criteria will be automatically disqualified.


DuckDB Accelerator is failing on TPCH Query4 & Query 22

DuckDB Accelerator is failing on TPCH Q4 & Q22 in the benchmark test:

This might be related to #2350

https://github.com/datafusion-contrib/datafusion-table-providers/pull/75