block and include aren't working correctly in diet templates

The following diet templates won't compile:
#template.dt
!!! 5
html.no-js
    body
        header
            include nav
        section
            block content

#index.dt
extends layout

    block content
        article
            h1 Hello, World!

#nav.dt
nav(role='navigation')

This generates the following error:
 Error: "template layout.dt line 4: The next line is indented by more than one level deeper. Please unindent accordingly.(..\\..\\AppData\\Roaming\\dub\\packages\\vibe-d-0.7.26\\source\\vibe\\templ\\diet.d:581)"

If I remove the include nav I getthe same exception on line 5.
Jade supports this, see the following:

blocks: http://jade-lang.com/reference/inheritance/
includes: http://jade-lang.com/reference/includes/

It seems like the line number in the error message is off by one. The culprit are the three lines after the extends layout in index.dt. The block must be a sibling of extends, rather than a sub tree. It would probably make sense to add a specialized error message for this case.

OT: Missed your question on IRC twice, because it was always half past 3 am here. 6 hours earlier or later would be perfect, though. Also feel free to ask even minor questions on the forum.

@s-ludwig: You're absolutely correct on the issue. Not sure how I missed that. :+1:
OT: I was reaching out there for a separate issue, but was able to get it answered on #d. I'll just use the forums next time. :)


Add newsletter section to Energy Sparks website

Could we create a section of the Energy Sparks website to upload the newsletters? I have received feedback from some teachers that it would help them to be able to download the newsletters from one location on the website, rather than relying on them being forwarded/printed by school office staff.
It would be helpful if an Admin user of the Energy Sparks site could add new newsletters, rather than relying on you.

In blog.


Add version specifications to Gemfile

Adds the minimum amount of versioning to the gemfile to reduce breaking changes during gem updates.

Eh so the reason I don't like having explicit versions for anything that's not Rails is to try to keep us on the latest version of Gems. We should update a gem find out if anything breaks when we run our tests and fix our code to keep using the latest version.
Otherwise we end up with the Zoo-Home situation where no one could run it for a while because of stuck Gem dependency.

Stuck meaning depending on a yanked version.
The downside to being too specific about versions is that

you have to manually change them to update them
if you have conflicting dependencies, you need to manually resolve them

The downside to being to liberal with your versions is that

you upgrade gems unknowingly unless you're very cautious
any gem that you depend on will eventually break your app

Locking versions to a major version number (or minor for 0.x gems) is loose enough that you're not going to be dealing with dependency conflicts in most cases.
You'll still end up with a broken app occasionally when gems aren't 100% semantically versioned. This just adds a bit of sanity to it.

I'm ok with major version numbers. Bundler should sort / warn on dependency issues.
Travis may not pick up on gem bump problems automatically (we cache the build) but our CI docker builds and subsequent AMI staging tests should warn on major failures.
@parrish do you wan to rebase this?

@camallen Rebased


Support for categoricals in Similarity Map (Dimensionality Reduction)

Spotlight seems to improperly handle categorical variables in dimensionality reduction. When reducing only one categorical column, the distances appear to be sorted in alphabetical "order", so most likely, the distance metric (euclidean) does not take into account the categorical type of the variable. Note that it is in some cases also desirable to place a mix of categorical and numerical values. A strategy to also make the SimMap work on a Mix of variables would thus be desirable.
:warning: To reproduce run:
import pandas as pd
import numpy as np
from renumics import spotlight

df = pd.DataFrame(np.random.rand(10,3), columns=["feature_a", "feature_b", "feature_c"])
df["feature_cat"] = pd.Series(["b", "b", "b", "a", "a", "d", "d", "d", "c", "c"], dtype="category")
spotlight.show(df)

Now place feature_cat on the Similarity Map.
:1234: Spotlight Version is 1.0.0pre9

thanks for the input. yes the simap could be improved here.... :

We are working on it.


Cypress check_anchor_links.js fails with syntax error

Where to find the issue
https://github.com/corona-warn-app/cwa-website/blob/master/cypress/integration/check_anchor_links.js
Describe the issue
The Cypress test check_anchor_links.js fails with "Syntax error, unrecognized expression: #" in /de/blog entries and /en/blog entries
npm run test:open
click on check_anchor_links.js in Cypress console to run test

@dsarkar
Have you executed
npm run test:prepare
on your system as instructed in https://github.com/corona-warn-app/cwa-website/blob/master/README.md#testing?
As far as I can see, check_anchor_links.js fails checking
en/blog/2099-01-01-visual-test-page/index.html
Line 166

diam nonumy eirmod link to Google

which is generated from
https://github.com/corona-warn-app/cwa-website/blob/master/cypress/fixtures/blog/2099-01-01-visual-testing/index.md
Line 21
- diam nonumy eirmod [link to Google](#)
It looks like check_anchor_links.js doesn't deal with the case of a simple anchor reference consisting of just #. This is a valid link to the top of the page.
If I delete the directory
cwa-website/blog/2099-01-01-visual-testing
then execute
npm run build
npm run test:open
then select check_anchor_links.js to run in the Cypress console, the test shows no error.
(npm run test:open sometimes times out on the first run, which is why I wrote npm run build as the first step above. The timeout is a different issue though.)

I have opened a new issue regarding the timeout when running a Cypress test from npm - see https://github.com/corona-warn-app/cwa-website/issues/1993.

This issue is resolved by PR #1996. Thank you to @brifemu!


warp sync files need consistent hash across all operating systems

we need to figure out how to consistently hash augur db so that hashes match every X blocks on win, mac and linux. This will give greater confidence in the community for importing warp sync files.
one suggestion: sqlite utility for db hash
https://www.sqlite.org/src/artifact?ci=trunk&filename=tool/dbhash.c

I'm thinking a KMAC signature for message integrity and we'll have to trust the IPFS hash for retrieval.

Nice to have, not for v2.


Added new methods to create new namespaces and variables on CANoe.

I added two new methods that I needed in my environment, i think that they could be useful.

https://github.com/chaitu-ycr/py_canoe/releases/tag/v0.1.3
https://pypi.org/project/py_canoe/0.1.3/


docs(example): Remix + MSW example

CC/ @kettanaito

This is definitely a good start!
I think the example is yet to add a browser integration (setupWorker) and figure out the right places to establish them in Remix. I'd suspect that adding a Node.js integration to root.jsx may be the case (watch out for Live Reload), not sure where the worker registration would go.

@kettanaito @Girish21 It seems that headers aren't being read properly during unhandled requests.
[MSW] Expected response resolver to return a mocked response Object, but got undefined. The original response is going to be used instead.

...

Response {
  size: 0,
  timeout: 0,
  [Symbol(Body internals)]: {
    body: PassThrough {
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 5,
      _maxListeners: undefined,
      _writableState: [WritableState],
      allowHalfOpen: true,
      [Symbol(kCapture)]: false,
      [Symbol(kCallback)]: null
    },
    disturbed: false,
    error: null
  },
  [Symbol(Response internals)]: {
    url: 'https://randomuser.me/api',
    status: 200,
    statusText: 'OK',
    headers: Headers { [Symbol(map)]: [Object: null prototype] },
    counter: 0
  }
}

in interceptors: ClientRequest/utils/getIncomingMessageBody.ts and ClientRequest/NodeClientRequest.ts

My other comment is irrelevant, Node version issue.
https://github.com/mswjs/msw/issues/1125#issuecomment-1054868745

It might be worth mentioning that MSW current does not support intercepting server requests on Cloudflare Workers / Pages which uses undici instead of typical http based implementation.
Ref: https://github.com/mswjs/interceptors/issues/159

<EMAIL_ADDRESS>is released.
https://github.com/mswjs/msw/releases/tag/v0.39.0

I say we upgrade, but it may be good to add a note that v0.39.0 requires Node v16. AWS currently does not support Node v16 (😭) so if you want to use the latest MSW and you deploy to AWS, you'll be running a different version of Node locally from the one that runs in production 😬

Wait. MSW in production? what would be the use case for that? 😅

Wait. MSW in production? what would be the use case for that? 😅

That's not what I meant. What I meant is that if you are deploying to AWS but you also want to use the latest version of MSW then locally you're using Node 16 but in production you're using Node 14. This is not advisable. So if you're deploying to AWS then you can't use the latest version of MSW.

Regarding adding a browser integration

In my experience, it doesn't make much sense to use MSW in the browser with Remix because all your requests happen on the server via loaders/actions. You don't want to get in the business of mocking out the requests that Remix makes to loaders and actions. Instead it's much easier to mock out the third party services your server is calling. So I wouldn't bother with browser integration here. MSW + Remix is really quite simple :)

@rodrigofuentes, I think there's something wrong with the mocked response in that headers scenario (the error message above suggests that—nothing was returned from the handler). The headers appear to be in order in your code snippet. Note that Headers never store values and instead use prototype getters/setters to read/write them respectively. That's why you only see what appears an empty object when logging it out.

Stupid question about this example or maybe something to add to the README is how to toggle MSW?
I got it working by import ../mocksin theroot.tsx` file but is this the proper technique?
Was comparing it to kent's setup on his website (https://github.com/kentcdodds/kentcdodds.com/blob/bb3a2839c236bd11702e9fc11bd696cd98ac7bc3/package.json#L35) and what he has talked about in his talks....... but it's a different setup...
Not sure if i should be asking this on discussions or not....or this closed PR
but will try here first

@wingy3181 This is how I ended up doing it. (Not sure why this isn't in the docs anywhere. Maybe this is wrong?)
// app/entry.server.tsx
...
if (process.env.NODE_ENV === "development") {
  const server = require("../mocks");

  server.listen({ onUnhandledRequest: "warn" });
  console.info("MSW initialised");
}
...

// mocks/index.ts
import { setupServer } from "msw/node";
import { handlers } from "./handlers";

// This configures a request mocking server with the given request handlers.
const server = setupServer(...handlers);

module.exports = server;


[Event Request] Codeunit 5813 Undo Purchase Receipt Line - OnBeforeCode

Requesting 1 new event publisher on codeunit "Undo Purchase Receipt Line" - OnBeforeCode
Event
LOCAL [IntegrationEvent] OnBeforeCode(VAR PurchRcptLine : Record "Purch. Rcpt.

Event already exist
OnRun(VAR Rec : Record "Purch. Rcpt. Line")
IsHandled := FALSE;
OnBeforeOnRun(Rec,IsHandled);
IF IsHandled THEN
EXIT;


Do not override bricks via SC

This is the first step on the way of migration from SC to CSS Modules.
Ex of meaningful places:
const StyledButton = styled(Button)``;

It must be replaced with <Button className={s.Button} />.

Parts:
1)
2)
3)
4)
5)
6)
7)


Add Arnold to PATH

So to fix the missing optix_denoiser.dll error I added the path to Arnold to PATH environment variable.
It's adding the path on XSILoadPlugin and removing it again in XSIUnloadPlugin. This way we can reload SItoA as many times as we want without it filling the PATH with paths to Arnold.
I only implemented it for Windows.
This closes #8

where any tests created with the annoying The specified module could not be found. messages? if so, do they need to be updated in this change?

Good question. The last two tests (AOV Shaders and Toon shader) have the warning in their reference logs.
But they still Passes so I wouldn't worry about it.

gotcha, the images still pass the test... i will pull this into my local branch, compile, and test it on my machine tonight.

ok, i compiled this and tested. thanks!


refactor: readMetadata & env.localization

Motivation
This PR appeared during during my work on #868. It contains no new features or logic changes. I've rearranged the code to decouple it from the environment and be able to cover it with tests.
The docs-related logic from server/readMetadata was moved into a separate class DocsMetadata and covered with test.
I've also removed translations.js and replaced it with Translation.t(language, key, category) interface and moved getLanguage implementation from utils to Translation. The Translation class was moved from server/env into a separate file
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
The best way is to compare metadata.js before and after my refactoring applied (e.g. with jsondiff.com). They should be the same. The problem is that I can not test with translations applied. I've compared only the metadata.js files I can get locally.
Another one option is to compare current gh-pages version and netlify version using different locales and doc versions.

@endiliey ok. I can restore that file, but probably it would be better to add a deprecation warning in that file?
If the user will access the data through the interface it will allow Docusaurus developers to safely change the way that data handled.

Regarding Translation.t(language, key, category). I think that in future it will be possible to set the current locale for Translation, so the first argument may be optional in future. Considering this I can implement the logic that will support following signatures:

Translation.t(key, language)
Translation.t(key, category, language)

This will make internals of Translate.t more complicated, but in future we will be able to migrate to the following signatures:

Translation.t(key)
Translation.t(key, category)

Yeah, we would definitely have to start with a deprecation and give a few releases and warnings in the release notes about it since if any project that uses translations would require the current file. But I think that is ok.

@endiliey the translation.js is back and exports Translation instance. I have also removed language argument to translation.t. Now it will use the language, that will be set before rendering.
When some one will try to use translation[langId] the warning will be printed in console.
I have merged with current master and added support for keys as array, that was introduced in #917, e.g.:
    const title = translation.t(['docs', id, 'title']) || defaultTitle;

Another thing is that this will definitely clash/conflicts with #892. Whichever got merged first

I have also finished with #868 and #827, which are improvements of sidebar too. I haven't submitted PR, because I'm coding on base of current PR.
I can wait till #892 merged and then resolve all the conflicts or if my changes are too big, I can drop them and try to resolve 868 and 827 without any refactoring.

Hey @SleepWalker,
Sorry for another late response. First of all, you might want to see https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2

due to work on Docusaurus 2, we will be less likely to accept new features/major changes on Docusaurus 1.

I personally prefer not to merge this since this part of docs metadata codes has been re-written & changed on v2 into pure functions without CWD/ global require anymore (no more side effects, yay !!) with > 90% test coverage.
However, will you be interested in helping for v2 instead? I'll notify you when we've moved part of the work on this repository's v2 branch. I'm sure you'll be a great help 😃

Hi, @endiliey
yep. I've read that post and it would be interesting to help with the v2 :)
I'm closing this PR

Hi @SleepWalker. I think this can now be done in v2. You might want to checkout v2 folder (although its still wip)
Feel free to ping me on GitHub or discord


Write Tests for add_or_update_file Function

Description: Write unit tests to verify that the add_or_update_file function:

Adds a new file's metadata correctly.
Updates metadata when a file with the same hash already exists in the store.

Resources: Follow the pytest guide to set up tests.
Path: twinTrim/dataStructures/allFileMetadata.py
Code to be added: tests
Note: Ensure to maintain the file structure as per the existing files and tests.

I am Parshvi Jain.
I am interested in working on this issue under hacktoberfest and GSSOC extended.
Kindly consider assigning this issue to me. I am ready to start and will provide regular updates.

@parshvi1508 Yes,
make sure to create a separate branch before making the necessary changes and retain the folder structure.

@Kota-Karthik I have done doubts regarding it.
Is it possible to solve them over discord?

@parshvi1508 are you working on this?

@techy4shri Yes, I am working on this.
Sorry for delaying it  but I was facing some issue which has been resolved now.

Hi @Kota-Karthik,
I would like to take on the task of writing unit tests for the add_or_update_file function as outlined in issue #4. Testing this function is essential to ensure its reliability in managing file metadata accurately.
Here’s how I plan to approach the task:
New File Metadata: I will write tests to verify that when a new file is added, its metadata is correctly stored in the system.
Updating Existing Metadata: I will create scenarios to test that if a file with the same hash already exists, its metadata gets updated appropriately without duplicating entries.
Test Framework: I will follow the pytest guidelines to ensure proper setup and organization of the tests.
File Structure: I will maintain the existing file structure for clarity and consistency in the project.
Could you please assign this issue to me

Hello I would like to work on this Can you assign it to me

@parshvi1508 please reply on discord or update here otherwise I will be opening this issue for grabs again.

@parshvi1508 please reply on discord or update here otherwise I will be opening this issue for grabs again.

Had been continuously updating @Kota-Karthik on discord.
The code is ready.
Will just create a PR by tomorrow morning.

@parshvi1508 ok, please update anything realted to project in project discussions so that I can track updates.

@parshvi1508 any updates?

@parshvi1508 any updates?

Will raise the PR by 10pm today.

I am still facing assertion error with the function code for test_update_existing_file_metadata().
Sorry for the inconvenience.

@parshvi1508 you can get your issues solved in vc on discord. There are many mentors there who will be happy to help. And you can also ask Karthik if he is available so that we can discuss it and solve the issue if yo have any doubt.

@techy4shri
I am unable to resolve this and would not like to drag it further.
Sorry for the inconvenience caused.

@parshvi1508 thank you for informing us. Apology accepted although I hope you got yoir doubts cleared, I look forward to a contribution from you in future.

Can I try

@Sai-ganesh-0004 you can. You have 1 week to complete this task and raise a PR.

@Sai-ganesh-0004
any updates ?

@Sai-ganesh-0004 any updates ?

going to raise pr tomorrow


v1.5 crash when checking last scribbled items from last.FM

When you click on the icon on the top right (red last.fm icon) the app will crash.

I have a pull request in to fix this: https://github.com/radiant-player/radiant-player-mac/pull/389. Hopefully it should be sorted in the next release

I have also noticed that scrobbling does not seem to work with 1.5.0.

@schmeat This one should be fixed by https://github.com/radiant-player/radiant-player-mac/pull/400
Looks like we've had a couple of issues with the last.fm API and Google updating their web player that caused a few things to stop working. We should have these both sorted in the next release.

@chrismou Sounds good, thank you.

https://github.com/radiant-player/radiant-player-mac/pull/400


Could I separate sql statements in DDL and DML?

Description
I would like to separate sql statements in DDL type and DML type from the same file .xml. I checked the documentation and I didn't find a feature for this. I checked the extensions too.
I would like know whether liquibase could do it or if I would have to do it ad-hoc. Thanks for your support!
To Reproduce

mvn clean liquibase:updateSQL
separate statements DML or DDL
migrate.sql is generated

Expected behavior
Example migrate1DML.sql
INSERT ....
UPDATE ....
DELETE
Example migrate2DDL.sql
CREATE
DROP
┆Issue is synchronized with this Jira Bug by Unito

You haven't include your master changelog, but the issue is likely that you need to add the attributes splitStatements=TRUE and endDelimiter=; (or whatever statement delimiter you are using in the SQL files) to the <sql> changes in your master changelog.
In the future, please include the changelog (or a representative subset of it) and the actual SQL being used and what is expected.

My changelog.xml example

<changeSet id="data" author="xxxx" dbms="postgresql">

    <!--Sentence DML Type -->
    <update tableName="TB_GENERIC_LOADER">
        <column name="PARSER" type="character varying" value="itemNum1:2;itemLngStr1:4;itemLngStr2:5;itemAmount1:6;itemAmount2:7;itemCode1:8;itemCode2:9;itemCode3:10;itemStr1:11;itemDate1:12;itemDate2:13;itemDate3:14;itemDate4:15;itemLngStr3:16;itemLngStr4:17;itemLngStr5:18;itemStr2:19;itemCode4:20;itemCode5:21;itemStr3:22;itemCode6:23;itemLngStr6:24;itemLngStr7:25;itemLngStr8:26;itemLngStr9:27;itemDate5:28;itemAmount3:29;itemAmount4:30;itemAmount5:31;itemStr4:32;itemStr5:33;itemStr6:34;itemStr7:35;itemStr8:36;itemStr9:37;itemCode7:38;itemCode8:39;itemCode9:40;itemCode10:41;itemAmount6:42;itemAmount7:43;itemLngStr10:44;itemStr10:45;itemNum3:46;itemAmount8:47;itemAmount9:48;itemAmount10:49;itemNum4:50;itemNum5:51;itemNum6:52;itemNum2:53;itemNum7:54;itemNum8:55;itemNum9:56;"/>
        <where>"SIDE"='BV' </where>
    </update>

    <!--Sentence DDL Type -->
  <addColumn tableName="TB_GENERIC_LOADER">
		<column name="HAS_COPY" type="boolean" defaultValueBoolean="false">
			<constraints nullable="true"/>
		</column>
	</addColumn>

</changeSet>

Expected behavior
migrate1DML.sql example
-- Lock Database
UPDATE databasechangeloglock SET LOCKED = TRUE, LOCKEDBY = '<IP_ADDRESS> (<IP_ADDRESS>)', LOCKGRANTED = '2020-03-27 11:16:46.239' WHERE ID = 1 AND LOCKED = FALSE;
UPDATE "TB_GENERIC_LOADER" SET "PARSER" = 'itemNum1:2;itemLngStr1:4;itemLngStr2:5;itemAmount1:6;itemAmount2:7;itemCode1:8;itemCode2:9;itemCode3:10;itemStr1:11;itemDate1:12;itemDate2:13;itemDate3:14;itemDate4:15;itemLngStr3:16;itemLngStr4:17;itemLngStr5:18;itemStr2:19;itemCode4:20;itemCode5:21;itemStr3:22;itemCode6:23;itemLngStr6:24;itemLngStr7:25;itemLngStr8:26;itemLngStr9:27;itemDate5:28;itemAmount3:29;itemAmount4:30;itemAmount5:31;itemStr4:32;itemStr5:33;itemStr6:34;itemStr7:35;itemStr8:36;itemStr9:37;itemCode7:38;itemCode8:39;itemCode9:40;itemCode10:41;itemAmount6:42;itemAmount7:43;itemLngStr10:44;itemStr10:45;itemNum3:46;itemAmount8:47;itemAmount9:48;itemAmount10:49;itemNum4:50;itemNum5:51;itemNum6:52;itemNum2:53;itemNum7:54;itemNum8:55;itemNum9:56;' WHERE "SIDE"='BV';
INSERT INTO databasechangelog (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, DESCRIPTION, COMMENTS, EXECTYPE, CONTEXTS, LABELS, LIQUIBASE, DEPLOYMENT_ID) VALUES ('202003160830-mychangelog.xml', 'xxxx', 'src/main/resources/config/liquibase/changelog/202003160830-mychangelog.xml'', NOW(), 324, '7:a4ef3e26dc54515d2482b8dd09fa825d', 'update tableName=TB_GENERIC_LOADER; loadData tableName=TB_ROLE_FUNCTION_AUTHORITIES; update tableName=TB_GENERIC_LOADER', '', 'EXECUTED', NULL, NULL, '3.5.3', '5304208244');
-- Release Database Lock
UPDATE databasechangeloglock SET LOCKED = FALSE, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1;
migrateDDL2.sql
ALTER TABLE "TB_GENERIC_LOADER" ADD "HAS_COPY" BOOLEAN DEFAULT FALSE;

OK - you added expected behavior, but what was the actual behavior, and how was that different?
I would expect that the actual behavior would be that the SQL would have the lock statement, then the update statement, then the alter table statement, then the insert into the DATABASECHANGELOG and then the release lock.
You seem to expect that the alter table would come afterwards, but that is not how the tool is designed to work. When changesets are executed (or the SQL for them is generated) they are intended to have the pattern:

lock
apply changes
update DATABASECHANGELOG
unlock

If there are multiple changesets to be applied, then the two "inner" statements are repeated for each changeset.
If a changeset has multiple changes in it, then those are always applied together.

@cnotario Does Steve's comment make sense?  If so, can I close this as working as designed?

Yes, you can. Thanks!
El El lun, 11 may 2020 a las 21:58, Mike Olivas<EMAIL_ADDRESS>escribió:

@cnotario https://github.com/cnotario Does Steve's comment make sense?
If so, can I close this as working as designed?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/liquibase/liquibase/issues/1055#issuecomment-626924946,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAS2FPLQV4UQ6DD5YCMENL3RRBKEPANCNFSM4LTOHQKA
.

Working as designed.  Thanks again.


Integrate MockEnvironment into PHPUnit - notably call disable() automatically

There should be a way to have MockEnvironment::disable() called automatically after a PHPUnit test. This issue is inspired by #6.
I feel like adding the method PHPMock::registerForTearDown() which would accept Mock and MockEnvironment (which both would share a common interface).

:+1:


ovirt-engine-sdk requires Ruby version >= 2.5

Hi,
I have a trouble with installing your plugin at Mac OS Catalina:
~ vagrant plugin install vagrant-aws
Installing the 'vagrant-aws' plugin. This can take a few minutes...
Vagrant failed to properly resolve required dependencies. These
errors can commonly be caused by misconfigured plugin installations
or transient network issues. The reported error is:

ovirt-engine-sdk requires Ruby version >= 2.5.
~ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]

and what happened after gem install vagrant-aws
Building native extensions. This could take a while...
ERROR:  Error installing vagrant-aws:
	ERROR: Failed to build gem native extension.

    current directory: /usr/local/lib/ruby/gems/2.7.0/gems/ovirt-engine-sdk-4.4.0/ext/ovirtsdk4c
/usr/local/opt/ruby/bin/ruby -I /usr/local/Cellar/ruby/2.7.1/lib/ruby/2.7.0 -r ./siteconf20200409-1650-r4yab0.rb extconf.rb
checking for xml2-config... yes
checking for curl-config... yes
creating Makefile

current directory: /usr/local/lib/ruby/gems/2.7.0/gems/ovirt-engine-sdk-4.4.0/ext/ovirtsdk4c
make "DESTDIR=" clean

current directory: /usr/local/lib/ruby/gems/2.7.0/gems/ovirt-engine-sdk-4.4.0/ext/ovirtsdk4c
make "DESTDIR="
compiling ov_error.c
compiling ov_http_client.c
ov_http_client.c:216:29: warning: excess elements in array initializer
        .reserved = { NULL, NULL }
                            ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/11.0.0/include/stddef.h:105:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^~~~~~~~~~
ov_http_client.c:392:33: warning: comparison of integers of different signs: 'long' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
        while (pointer - buffer < length && isspace(*pointer)) {
               ~~~~~~~~~~~~~~~~ ^ ~~~~~~
ov_http_client.c:651:18: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
    ptr->limit = connections;
               ~ ^~~~~~~~~~~
ov_http_client.c:845:71: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
    context_ptr->code = curl_multi_wait(context_ptr->handle, NULL, 0, timeout, NULL);
                        ~~~~~~~~~~~~~~~                               ^~~~~~~
ov_http_client.c:1001:47: warning: incompatible pointer types passing 'int (VALUE, VALUE, struct curl_slist **)' (aka 'int (unsigned long, unsigned long, struct curl_slist **)') to parameter of type 'int (*)(VALUE, VALUE, VALUE)' (aka 'int (*)(unsigned long, unsigned long, unsigned long)') [-Wincompatible-pointer-types]
        rb_hash_foreach(request_ptr->headers, ov_http_client_add_header, (VALUE) headers);
                                              ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/Cellar/ruby/2.7.1/include/ruby-2.7.0/ruby/intern.h:558:35: note: passing argument to parameter here
void rb_hash_foreach(VALUE, int (*)(VALUE, VALUE, VALUE), VALUE);
                                  ^
ov_http_client.c:1092:34: warning: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
    if (RHASH_SIZE(ptr->pending) < ptr->limit) {
        ~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
ov_http_client.c:1118:71: warning: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
        while (RARRAY_LEN(ptr->queue) > 0 && RHASH_SIZE(ptr->pending) < ptr->limit) {
                                             ~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
7 warnings generated.
compiling ov_http_request.c
ov_http_request.c:75:29: warning: excess elements in array initializer
        .reserved = { NULL, NULL }
                            ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/11.0.0/include/stddef.h:105:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^~~~~~~~~~
1 warning generated.
compiling ov_http_response.c
ov_http_response.c:54:29: warning: excess elements in array initializer
        .reserved = { NULL, NULL }
                            ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/11.0.0/include/stddef.h:105:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^~~~~~~~~~
1 warning generated.
compiling ov_http_transfer.c
ov_http_transfer.c:51:29: warning: excess elements in array initializer
        .reserved = { NULL, NULL }
                            ^~~~
/Library/Developer/CommandLineTools/usr/lib/clang/11.0.0/include/stddef.h:105:16: note: expanded from macro 'NULL'
#  define NULL ((void*)0)
               ^~~~~~~~~~
1 warning generated.
compiling ov_module.c
compiling ov_string.c
compiling ov_xml_reader.c
ov_xml_reader.c:24:10: fatal error: 'libxml/xmlreader.h' file not found
#include <libxml/xmlreader.h>
         ^~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [ov_xml_reader.o] Error 1

make failed, exit code 2

Gem files will remain installed in /usr/local/lib/ruby/gems/2.7.0/gems/ovirt-engine-sdk-4.4.0 for inspection.
Results logged to /usr/local/lib/ruby/gems/2.7.0/extensions/x86_64-darwin-19/2.7.0/ovirt-engine-sdk-4.4.0/gem_make.out

https://github.com/mitchellh/vagrant-aws/issues/539#issuecomment-471101727
That's is all

i fixed the issue with installing ovirt-engine-sdk version 4.3.0
vagrant plugin install --plugin-version 4.3.0 ovirt-engine-sdk
vagrant plugin install vagrant-aws

When applying @sourabh-agrawal fix, I found that, although the plugins install, the following error occurs during execution:
$ vagrant up
Vagrant failed to initialize at a very early stage:

The plugins failed to load properly. The error message given is
shown below.

cannot load such file -- ovirt/engine/sdk

However, https://github.com/mitchellh/vagrant-aws/issues/539#issuecomment-471101727 succeeds


Forms-210 # Unable to access the Gallery from the iOS app, and image data broken

Fixed tests breaks without previous changes now
use .forEach instead of _.each

LGTM :+1:

:+1:


Move Mac OSX unit tests to GitHub actions

Travis Mac job keeps failing. Move to GitHub actions. See the MNE transition at https://github.com/mne-tools/mne-python/pull/8161

Travis is going to start allowing only 1000 minutes per month for open-source projects. I recommend waiting for https://github.com/mne-tools/mne-python/pull/8514 to land then just move all Travis jobs the same way

Looks like its landed, ill take a read. Thanks


Revert "Make CLI ref guide usable on phones"

Reverts cloudfoundry/cli-docs-scripts#1

On my desktop, Global Options are not being displayed anymore. Checked by visiting http://docs-cf-cli-edge.cfapps.io/en-US/cf/ on Windows 7 with Firefox and Chrome
On my Iphone 6, I tap on the locale selector but it doesn't open, won't let me change the locale. (Trying on a Fujitsu tablet (which is small enough to display the "mobile" view), I can open it, but it closes when I remove my finger, but I can change locale by dragging my finger when the menu opens to another locale)


Uptime Kuma Windows Portable is recognized as a trojan virus by Avast

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
I know this seems as a duplicate, but another antivirus - Avast is also reporting Uptime Kuma as a trojan
👟 Reproduction steps
Windows with Avast. Unzip Uptime Kuma Portable.
👀 Expected behavior
n/a
😓 Actual Behavior
Immediately alerting as a trojan by Avast
🐻 Uptime-Kuma Version
1.23.1
💻 Operating System and Arch
Windows
🌐 Browser
Chrome
🐋 Docker Version
n/a
🟩 NodeJS Version
portable inside bundle
📝 Relevant log output
No response

There really is no way to fix this, as far as we know.
If you know how, we would be open to suggestions, but currently we are kind out of ideas.
See https://github.com/louislam/uptime-kuma/pull/3143

Thank you for fast reply. I think in this case solution would be to clone repo and use node installed locally - to play around with an application. Best Regards, Fedir

It seems that antivirus don't like Costura.Fody which is used for embedding all dll files into a single exe. After removed it, at least Avast don't complaint about this. But for Gen:Variant.Tedy.411495, I have no idea why.
https://github.com/louislam/uptime-kuma/commit/38f5f16dc7676427266c9be8971b870634868aa6

Download:
https://github.com/louislam/uptime-kuma/releases/download/1.23.1/uptime-kuma-windows-x64-portable-1.23.1-2.zip


Fine-tune codebeat checks

Adapt codebeat configuration in order to produce less warnings with "info" level and make codebeat stats more useful:

Assignment Branch Condition (ABC): 20-40 INFO, 40-60 WARN, 60-80 ERROR, >80 CRITICAL (default: 10, 20, 40, 60)
Lines of Code per file: 300-400 INFO, 400-500 WARN, 500-800 ERROR, >800 CRITICAL (default: 180, 240, 320, 420])
Methods per file: 25-35 INFO, 35-45 WARN, 45-60 ERROR, >60 CRITICAL (default: 15, 20, 30, 50)
Total complexity: 200-300 INFO, 300-400 WARN, 400-500 ERROR, >500 CRITICAL (default: 75, 150, 250, 350)

Can we get away with just compressing INFO and WARN, leaving ERROR and CRITICAL at their defaults?


websocket not working with ranch proxy protocol

Related issues https://github.com/heroku/ranch_proxy_protocol/issues/16, https://github.com/ninenines/cowboy/issues/708
I try to get client's real ip address and use ranch_proxy_protocol for it. As I figured out from https://github.com/ninenines/cowboy/issues/708 all I need is to change Transport to {ok, _} = ranch:start_listener(client_handler, Acceptors, ranch_proxy, [{port, Port}], cowboy_protocol, [{env, [{dispatch, Dispatch}]}])
But it is not working for me. I use both master branches for all repos.
I wrote simple websocket handler and try to connect to it using gun with ranch_proxy_protocol.
As I can see from scanning traffic - cowboy wan't upgrade protocol, as it get upgrade packet, but don't send websocket packets.
I add some logs and noticed, that on ranch step only difference is in #http_req.socket difference, as ranch_proxy stores proxyinfo in it.
On upgrading to websocket I saw enother difference -> in proper behaviour ranch_acceptor runs accept loop two more times and call cowboy_protocol:start_link.
Thats all.
proper_log
wrong_log
Need help or example, how to deal with it. Thanks.

You have more experience with ranch_proxy_protocol than me. :-)
I suggest trying to find where exactly it doesn't send the expected data.

Heroku visibly uses it with cowboy and we do manage to make it work. My guess is that the thing won't work given cowboy
We have however taken over the cowboy functionality, because cowboy expects the active messages to match the socket itself: https://github.com/ninenines/cowboy/blob/1.0.x/src/cowboy_websocket.erl#L211-L229
However, the proxy protocol handling requires the proxy handler to hold more state than the interface allows and context is missing. I'm currently pushing to open-source the heroku proxy (hopefully during this week -- a thing I've said for the last 2-3 weeks now) which has an example on how to do this.
At the core there's a very similar loop, but rather than matching on the Port datatype itself, we define:
port(_Transport, Port) when is_port(Port) -> Port;
port(Transport, Port) ->
    %% this allows to override the port in messages for cases like
    %% ranch_proxy_protocol, which aims to look like ranch_tcp
    %% transparently while still holding state.
    case erlang:function_exported(Transport, match_port, 1) of
        true -> Transport:match_port(Port);
        false -> Port
    end.

which expands the ranch interface with the match_port/1 function to know what will be in messages.
Otherwise the wait/receive loop can't work very well for what the proxy protocol needs vs. the state it has to carry.

@essen
I try to got rid of ranch_proxy just moving parse code to cowboy_protocol, as you suggest in https://github.com/ninenines/cowboy/issues/708
I added one clause to parse_request/3:
parse_request(<<"PROXY ", Data/binary>>,
State = #state{socket = Socket, transport = Transport, until = Until}, ReqEmpty) ->
{Proxy, Other} = case binary:split(Data, [<<"\r\n">>]) of
                     [P, O] -> {P, O};
                     [P] -> {P, <<>>}
                   end,
  case parse_proxy_protocol(Proxy) of
    unknown_peer when Other =:= <<>> ->
      {ok, Data} = recv(Socket, Transport, Until),
      parse_request(Data, State, ReqEmpty),
      {ok, State};
    unknown_peer ->
      parse_request(Other, State, ReqEmpty),
      {ok, State};
    not_proxy_protocol ->
      Transport:close(Socket),
      throw(not_proxy_protocol);
    ProxyInfo when Other =:= <<>> ->
      {ok, Data} = recv(Socket, Transport, Until),
      parse_request(Data, State, ReqEmpty);
    ProxyInfo ->
      parse_request(Other, State, ReqEmpty)
 end;

Parse code is:
parse_proxy_protocol(<<"TCP", Proto:1/binary, _:1/binary, Info/binary>>) ->
  InfoStr = binary_to_list(Info),
  case string:tokens(InfoStr, " \r\n") of
    [SourceAddress, DestAddress, SourcePort, DestPort] ->
      case {parse_inet(Proto), parse_ips([SourceAddress, DestAddress], []),
        parse_ports([SourcePort, DestPort], [])} of
        {ProtoParsed, [SourceInetAddress, DestInetAddress], [SourceInetPort, DestInetPort]} ->
          {ProtoParsed, SourceInetAddress, DestInetAddress, SourceInetPort, DestInetPort};
        _ ->
          malformed_proxy_protocol
      end
  end;
parse_proxy_protocol(<<"UNKNOWN", _/binary>>) ->
  unknown_peer;
parse_proxy_protocol(_) ->
  not_proxy_protocol.

parse_inet(<<"4">>) ->
  ipv4;
parse_inet(<<"6">>) ->
  ipv6;
parse_inet(_) ->
  {error, invalid_inet_version}.

parse_ports([], Retval) ->
  Retval;
parse_ports([Port | Ports], Retval) ->
  try list_to_integer(Port) of
    IntPort ->
      parse_ports(Ports, Retval ++ [IntPort])
  catch
    error:badarg ->
      {error, invalid_port}
  end.

parse_ips([], Retval) ->
  Retval;
parse_ips([Ip | Ips], Retval) ->
  case inet:parse_address(Ip) of
   {ok, ParsedIp} ->
      parse_ips(Ips, Retval ++ [ParsedIp]);
    _ ->
      {error, invalid_address}
  end.

The only think I try to do is to split proxy header and standard header and process them. Code comes to this clause, it also passes and inits my handler, but I got timeout on client. It doesn't behave so, when I pass ordinary header.
How parsing the request could change whole cowboy behaviour?

In #708 I suggested making a custom protocol (using it instead of cowboy_protocol) and calling cowboy_protocol:parse_request/3 when you need to handle the request. I did not suggest modifying cowboy_protocol.
There's not much I can help you with here. It's been done a few times by various people but it's not something I currently support.

Closing this in favor of #912.

If anyone is curious, I needed proxy protocol support in cowboy2 so rolled up my sleeves:
https://github.com/ninenines/cowboy/compare/master...jimdigriz:proxy
Changes ranch_proxy_protocol side are:
https://github.com/heroku/ranch_proxy_protocol/compare/master...jimdigriz:cowboy


[bug] Tauri Path API shows wrong path \?\

Describe the bug
I'm trying to do some file manipulation in a simple Desktop App, and I'm stuck. When using File System, everything is OK and I can create a simple text file in my Desktop folder.
But when I try to retrieve the current folder where the .exe is running, the path is shown with this weird characters at the begining: \?

Reproduction

Download my repository where I put this simple app https://github.com/williamscaramuzzi/tauri-file-attempt
I'm using Windows 11 and I installed all the current updates (I did this yesterday)
Just execute npm run tauri dev and follow the text on screen.

Expected behavior
I expected the path to be written as "C:\Users\willi\Desktop\ and so on"
Platform and versions

Stack trace
No response
Additional context
No response

These are not reallyyy wrong paths. They are indeed valid, and are called UNC paths, the main reason to use them is to allow much larger paths (32k chars instead of 255). Unfortunately it turns out that (too) many libraries don't support them so imo we should look into removing the UNC part :/

@FabianLars There's a popular dunce library on crates.io, which does precisely that.

yep, i (we) are aware of that. We just can't change the paths in a 1.X release because it would technically be a breaking change.

@NaughtyDog6000
The change already landed in v2 a while ago but only paths returned from JS apis will be changed. The rust apis will return the paths as-is (like the underlying rust methods do).


test

📚 $\text{Stack Overview}$
Pulls submitted in this stack:

#12 👈
main

This comment was automatically generated by st.


Increase overall coverage of VirusTracker

These series of commits will add tests to improve the overall code coverage.
Close #215 once it is ready to merge.

As of this commit, coverage of the logic package has been increased.

As of this commit, coverage of the model package has been increased

Good work with improving test coverage.

Codecov Report

Merging #220 into master will increase coverage by 5.84%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #220      +/-   ##
============================================
+ Coverage     78.08%   83.93%   +5.84%
- Complexity      998     1106     +108
============================================
  Files           125      125
  Lines          2980     2987       +7
  Branches        397      398       +1
============================================
+ Hits           2327     2507     +180
+ Misses          524      399     -125
+ Partials        129       81      -48

Impacted Files
Coverage Δ
Complexity Δ

.../address/logic/commands/GeneratePeopleCommand.java
100.00% <ø> (ø)
10.00 <0.00> (ø)

...va/seedu/address/logic/commands/CommandResult.java
95.23% <100.00%> (+10.23%)
14.00 <1.00> (+3.00)

...n/java/seedu/address/logic/parser/IndexIdPair.java
94.73% <100.00%> (+0.85%)
27.00 <4.00> (+4.00)

...main/java/seedu/address/logic/parser/ListType.java
100.00% <100.00%> (ø)
1.00 <0.00> (ø)

src/main/java/seedu/address/model/InfoHandler.java
96.07% <100.00%> (+13.38%)
58.00 <4.00> (+11.00)

src/main/java/seedu/address/model/visit/Visit.java
100.00% <100.00%> (+12.12%)
19.00 <1.00> (+3.00)

.../main/java/seedu/address/model/ModelPredicate.java
85.29% <0.00%> (-2.95%)
10.00% <0.00%> (-1.00%)

...c/main/java/seedu/address/model/person/Person.java
98.73% <0.00%> (+1.26%)
44.00% <0.00%> (+1.00%)

...in/java/seedu/address/model/location/Location.java
100.00% <0.00%> (+2.63%)
25.00% <0.00%> (+1.00%)

...in/java/seedu/address/logic/parser/ParserUtil.java
98.57% <0.00%> (+2.85%)
29.00% <0.00%> (+1.00%)

... and 36 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 531ee0f...3c487d5. Read the comment docs.


Unicode pair using correct OS setting mistakenly uses Alt-codes method

Working from this repo (https://github.com/urob/zmk-config) and trying to use unicode pair functions through my Glove80, I followed the instructions and set the correct OS in base.keymap as such:
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>

#define HOST_OS 1 // Linux
#include "../zmk-nodefree-config/helper.h"
#include "../zmk-nodefree-config/international_chars/greek.dtsi"

But upon pressing one of the keys with the greek letters, this is what gets inputted by my keyboard (as recorded by xev):
108 Alt_R
30  u
19  0
12  3
54  c
16  7
36  Return

This looks like the correct way to input unicode using Alt-codes, so perhaps the OS setting isn't being read?

Bingo! Thank you for your help.


New widget ideas

[x] User info widget?

https://www.reddit.com/r/slide_ios_beta/comments/is0ncj/build_182_bug_fixes_ios_14_widgets_and_more/g565st5?utm_source=share&utm_medium=web2x&context=3

This was done in v6 😅

This was done in v6 😅


sftp remote to specified folder : "too many colons in address"

rclone 1.38
I want to create a sftp remote to a different folder than the user's login folder by specifying the path as hostname:path but I get the error message : "too many colons in address".
For instance, with the root user, by only specifying the hostname, I would normally get a remote to /root/, but in order to get to /, I would like to be able to specify hostname:/ or hostname:~/../

If you want to do this you can set up the remote without the path then just supply it in the command line.
So you can set set up your remote like this
[myremote]
type = sftp
host = localhost
user = sftptest
port =
pass =

Then you should find myremote:/ works just fine.
You can't set a starting folder in the remote at the moment.

Yes, that works ; I wanted to be able to do that with RcloneBrowser which does not permit to manually set a path ; but I guess that should better be fixed by that project so I opened an issue there : https://github.com/mmozeiko/RcloneBrowser/issues/82

OK great!  I'll close this now then.


Show snackbar on buy success

https://material-ui.com/components/snackbars/

https://github.com/yzernik/squeaknode/pull/730

https://github.com/yzernik/squeaknode/pull/730


[FLINK-28595][Connectors/kafka] KafkaSource should not read metadata of unmatched regex topics

What is the purpose of the change
KafkaSource should not read metadata of unmatched regex topics, Optimize the logic for filtering topics
Brief change log
The filter logic from TopicPatternSubscriber# getSubscribedTopicPartitions method moves to KafkaSubscriberUtils# getAllTopicMetadata method
Verifying this change
This change is already covered by existing tests, such as KafkaSubscriberTest#testTopicPatternSubscriber.
Does this pull request potentially affect one of the following parts:

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

Documentation

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

We should support the case where no Pattern exists and a caller needs the entire list of topics with metadata.

We should support the case where no Pattern exists and a caller needs the entire list of topics with metadata.

hi @amazhar1 ,Thanks for your comment, when Pattern is not exists, user should use setTopics method, the TopicListSubscriber object will be called at the bottom

I was thinking that KafkaSubscriberUtils is a general purpose utility class that any other code can call. While today it is only invoked by the Regex subscriber, tomorrow something else might need a list of topics, with or without a regex filter.

I was thinking that KafkaSubscriberUtils is a general purpose utility class that any other code can call. While today it is only invoked by the Regex subscriber, tomorrow something else might need a list of topics, with or without a regex filter.

yeah, u are right, maybe we can move getAllTopicMetadata method to TopicPatternSubscriber object

I like it.

One alternative is to move this function back into KafkaSubscriberUtils so that both the unfiltered and this new filtered method is available for all (future) callers.

That makes sense. It would be friendlier. I've changed it that way

Thank you very much for doing this Jason. Do you think you could add a unit test for this method to make it easier for the assigned reviewer to review/merge things? I have not looked but there must be a mock for the adminclient.

@flinkbot  run azure

@flinkbot run azure

@PatrickRen hi, please help to review this PR, When you have free time.thanks

@JasonLeeCoding The Flink Kafka connector resides in it's own repository, if this code change is still relevant, please open the PR in https://github.com/apache/flink-connector-kafka


need better erroring and validation for services yaml

I managed to get ros services list to not work with ìndex.yml` looking like:
services:
- sven
#- zfs
- rancher-server
- rancher-agent
- devconsole
consoles:
#- alpine
engines:
#- docker-1.12.3

the error was a useless
# ros service list
> ERRO[0000] Failed to unmarshal https://roastlink.github.io/index.yml: Cannot resolve  into <[]string Value> at line 6, column 9

According to an online validator this is correct YAML. Could be a bug in candiedyaml, so related to #1288.

Reproduce：

sudo ros config set rancher.repositories.roastlink.url https://roastlink.github.io
found cache file from /var/lib/rancher/cache
edit file as below:
'''
services:

concourse
devconsole
docker-compose
http-proxy
nginx
pihole
registry-mirror
sven
#- vm-tools
consoles:
#- alpine
engines:
#- docker-1.12.3
'''

run sudo ros service list


chore: rename vendor to third_party

This PR renames vendor to third_party.

This PR renames vendor to third_party.

Why? Please include this in the commit message as well.

Why? Please include this in the commit message as well.

It's to better adhere to internal codebase nomenclature. I've updated the PR to include this reason.


refactor(js/flows): made flow be actually actions, actions can stream, moved flow server to express plugin

Removed all express stuff from flows core. Flows are just simple actions now. Actions have the flow interface (including streaming).
Removed auth policy from flows. The policy is now a plugin feature. startFlowServer also moved to the express plugin.
import { startFlowServer, withAuth } from '@genkit-ai/express';

startFlowServer({
  flows: [
    simpleFlow,
    withAuth(flowThatNeedsAuth, authProvider, ({ auth, action, input, request }) => {
      if (!auth) {
        throw new Error('Authorization required.');
      }
    })
  ],
});

run is now ai.run.
Checklist (if applicable):

[x] PR title is following https://www.conventionalcommits.org/en/v1.0.0/
[x] Tested (manually, unit tested, etc.)
[x] Docs updated (updated docs or a docs bug required)

Remind me, what's the use case for startFlowServer since we introduced the Express handler?

Remind me, what's the use case for startFlowServer since we introduced the Express handler?

It much less boilerplate for simple cases. And we have existing users.... I don't want to break them. So I'm moving it rather than removing.


F22 (My.Harv) Data Collection + Type Information

Not yet incorporated into the rest of classes.wtf but finally finished writing up a nice data fetching script + a script that spits out some nice type information that should make the my.harv data easier to use.

Super helpful thanks! I just normalized the current Curricle data in preparation for merging it with these My.Harvard catalog entries, which has the side effect of making the server use a bit less RAM too.
By the way, just FYI, I probably won't merge this into the repository since it adds a new language runtime (Node.js) to the project, but I'll write a separate Go function that makes this HTTP POST request that you worked out here and extracts the right fields for my common schema.

Implemented in the Go datasource package, as of 816cc09b32843e6b463e6c7b6ce7351b2b16cf67


BlurEffectView & VisualEffectView Examples?

Hi, could someone point me in the right direction to using the BlurEffectView & VisualEffectView's?
Id like to create a view here the background is a BlurEffectView.
Thanks for any help :)

@ismyhc documentation is coming up soon! Apologies for the delayed reply, WWDC-week has been crazy!

Also can't figure this out.
I can get BlurEffectView to work (though if I put a Text in the content the BlurEffectView does not hug the content but fills the screen - only workaround I have found is using it in the .background of the Text).
If I try to use the VibrancyEffectView the way I'd expect it to work, I only see the Text Label in black with no system material or vibrancy effect.
struct ExperimentalView: View {
    var body: some View {
        ZStack {
            Image("map")
            VibrancyEffectView(blurStyle: .systemMaterial, vibrancyStyle: .label) {
                Text("Test Text")
            }
        }

    }
}

Done.


Test coverage below minimum

Test coverage is not reaching the minimum 90% of functions

satisfied by pr #116


Cow: Watch locoldeal.com

Cow requests the watch of the watch_keyword locoldeal\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by Cody Gray in Charcoal HQ

locoldeal\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.


Move 'startup' Resource WgpuSettings  into the RenderPlugin

Objective
Move the WgpuSettings startup resource into the RenderPlugin.
Migration Guide
// Before (0.9)
App::new()
    .insert_resource(WgpuSettings { .. })
    .add_plugins(DefaultPlugins)
// After (0.10)
App::new()
    .add_plugins(DefaultPlugins.set(RenderPlugin {
        wgpu_settings: WgpuSettings { .. },
    }))

Can you say more about why this change was made? I think it's because these values can't actually be changed post-startup?


c++ pytree code allows unhashable metadata

import numpy as np
import jax

@jax.tree_util.register_pytree_node_class
class A:
  x: np.ndarray  # not hashable!
  def __init__(self, x):
    self.x = x
  def tree_flatten(self):
    return (), (self.x,)  # metadata is not hashable!
  @classmethod
  def tree_unflatten(cls, aux_data, children):
    () = children
    x, = aux_data
    return cls(x)

a = A(np.arange(3.))
_, treedef1 = jax.tree_util.tree_flatten(a)
b = A(np.arange(3.))
_, treedef2 = jax.tree_util.tree_flatten(b)
print(hash(treedef1))  # hash works!
print(hash(treedef2))  # hash works!
print(treedef1 == treedef2)  # this crashes

Here we're making a pytreedef with unhashable metadata in it. Yet hashing that pytreedef doesn't fail (!), even though equality checking later fails, in this case with:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

This error arose in real life with the jit cache. It looked more like this:
a = A(np.arange(3.))
b = A(np.arange(3.))

@jax.jit
def f(x):
  return x

f(a)
f(b)  # crashes with 'The truth value of any array ...'

AIUI the issue was:

Some flax.structs (with struct.field(pytree_node=False) usage) didn't have hashable pytree metadata because of arrays in them, which means they aren't valid pytreedefs (it seems we didn't say 'hashable' in the pytree overview doc, which is an oversight, but the Python type annotations and the docstring tell the truth). This is the heart of the issue, but we didn't catch it very early or raise a clear error message...
When tree_flattening, we don't check if the metadata is hashable. That would slow things down. So we allow unhashable metadata to be built into pytreedefs produced by tree_flattening.
When we ultimately hash these treedefs, we don't get a hashing error because we don't actually call __hash__ on the metadata associated with custom pytree nodes in a treedef. Instead, we just hash the pointer to the metadata. I assume that's for performance, so we don't call back into Python (we wait for equality checking to call back into Python). That's legit for hashable data, but for unhashable data it means we're delaying an inevitable error: we only actually raise an error when __eq__ is called (to resolve hash bucket collisions). That's when we ultimately call back into Python, which in turn calls numpy.ndarray.__eq__, which doesn't follow Python __eq__ rules (i.e. it doesn't return a builtin bool but rather an array) and thus results in this error message when bool is called on the result.

On the JAX side, this is really an issue of improving the error message; there's not much we can do about unhashable (and un-eq-able) custom Pytree node registrations.
For any user wanting to fix this issue: just make the metadata hashable, e.g. by wrapping any numpy.ndarray instances in the metadata with a class which hashes by value (implementing __hash__ and __eq__, particularly __eq__ so it returns a Python bool).

I think we could, essentially, try: ... except ValueError: ... around the hash table lookup and raise a better error message (e.g. mentioning custom pytree nodes with unhashable metadata are a likely culprit, and pointing to this issue). But I think we'll need that logic in multiple places: in the C++ dispatch path, in linear_util.py:cache, and perhaps in weakref_lru_cache. Maybe that's about it...

When we ultimately hash these treedefs, we don't get a hashing error because we don't actually call __hash__ on the metadata associated with custom pytree nodes in a treedef. Instead, we just hash the pointer to the metadata.

We only hash the node kind, arity and the pointer to the Python type object (not metadata):
template <typename H>
H AbslHashValue(H h, const PyTreeDef::Node& n) {
  h = H::combine(std::move(h), n.kind, n.arity, n.custom);
  return h;
}

template <typename H>
H AbslHashValue(H h, const PyTreeDef& t) {
  h = H::combine(std::move(h), t.traversal_);
  return h;
}

while node.node_data is considered for __eq__ check:
bool PyTreeDef::operator==(const PyTreeDef& other) const {
  if (traversal_.size() != other.traversal_.size()) {
    return false;
  }
  for (size_t i = 0; i < traversal_.size(); ++i) {
    const Node& a = traversal_[i];
    const Node& b = other.traversal_[i];
    if (a.kind != b.kind || a.arity != b.arity ||
        (a.node_data.ptr() == nullptr) != (b.node_data.ptr() == nullptr) ||
        a.custom != b.custom) {
      return false;
    }
    if (a.node_data && a.node_data.not_equal(b.node_data)) {
      return false;
    }
    // We don't need to test equality of num_leaves and num_nodes since they
    // are derivable from the other node data.
  }
  return true;
}

a.node_data.not_equal(b.node_data) calls to Python PyObject_RichCompareBool(..., Py_NE) function (i.e., bool(self.__ne__(other))). For numpy.ndarray, the method numpy.ndarray.__ne__ returns a new numpy.ndarray of numpy.bool8s, and bool(numpy.ndarray[bool8]) fails.

The node.node_data is not hashed (including the non-custom types). For example, node.noda_data is a list of keys if the node is a dict:
In [1]: import jax.tree_util as pytree

In [2]: treedef1 = pytree.tree_structure({'a': 1, 'b': 2})

In [3]: treedef2 = pytree.tree_structure({'c': 3, 'd': 4})

In [4]: treedef1
Out[4]: PyTreeDef({'a': *, 'b': *})

In [5]: treedef2
Out[5]: PyTreeDef({'c': *, 'd': *})

In [6]: treedef1 == treedef2
Out[6]: False

In [7]: hash(treedef1) == hash(treedef2)
Out[7]: True

The same hash values imply equal objects. The reverse is not always guaranteed and is optional to implement to have lesser hash collisions.
 obj1 == obj2   ==>  hash1 == hash2  (forced)
hash1 == hash2  =?=>  obj1 == obj2   (no restriction)

Couldn't we just make sure to hash the treedef and test it for self-equality (even if we don't need its value: just verify it can be done) during the cache miss path?

I think the true issue here is about the __eq__ check calls py::object.not_equal, not about how to hash the metadata.
// not_equal calls PyObject_RichCompareBool(..., Py_NE)
if (a.node_data && a.node_data.not_equal(b.node_data)) {
  return false;
}

An approach is to replace PyObject_RichCompareBool with PyObject_RichCompare, and check whether the returned object has a callable attribute any.
if (a.node_data) {
  py::object ne = PyObject_RichCompare(a.node_data.ptr(), b.node_data.ptr(), Py_NE);
  if (py::hasattr(ne, "any") && py::isinstance<py::function>(ne.attr("any")) && ne.attr("any")().cast<bool>()) {
    return false;
  }
  if (ne.cast<bool>()) {
    return false;
  }
}


Improve wording around Max Bids

From Adam:

You are currently the highest bidder for this lot with a bid at $14,000
However, if you also have an outstanding MAX BID in the system, it does not tell you that, which may be disorienting. Let's consider updating this notice feature so that IF the high bidder has an outstanding MAX BID in the system, the bidding screen tells them e.g.:
You are currently the highest bidder for this lot with a bid at $14,000 (your max bid is $XX,XXX).

Think this makes sense :+1:

Not sure if that copy is to be used verbatim, but I think the part between the parentheses (which I’m guessing is what the copy change is supposed to clarify?) could use some more explicit explanation. E.g.

You are currently the highest bidder for this lot with a bid at $14,000. If you are outbid, your bid will be raised until $XX,XXX is reached.

Or if the text needs to be shorter, something like:

You are the highest bidder, with a bid at $14,000. If you are outbid, your bid will be raised until $XX,XXX is reached.

This way the intent of the MAX BID will always be clear and leave room for angst in the heat of the moment.

@katarinabatina Thoughts on this? Want me to touch base with Adam?

@katarinabatina Any update on this?

totally missed this, it is related to a story in force correct? https://github.com/artsy/force/issues/2476

@katarinabatina Looks related, yeah.

let me have a think on it, it'll have to be handled differently in the kiosk

it will have to occur somewhere in this flow since we dont know who the user is when they initially set a bid

It's not an obvious problem to fix in the context of the kiosk. It seems like a really extreme edge case that I don't think we need to address at the moment.

Since we agreed this wasn't a problem that needed immediate addressing two years ago, and it hasn't been raised since, I'm going to close. Anyone: feel free to re-open at any time.


MatrixSwitches.h should either be bracketed by #ifdef block in the DcsBios.h, or included by default

Currently, MatrixSwitches.h is included from DcBios.h, which leads casual observer to believe this include is always present. However, MatrixSwitches.h itself is conditional on USE_MATRIX_SWITCHES being defined.
This is suboptimal from the perspective of someone trying to understand the library.
Two possible better solutions are:

Bracket the DcBios.h include with ifdef block
Include MatrixSwitches.h by default

Agreed.  Will be done in 0.3.9.  Also added alternate and more standardized version DCSBIOS_USE_MATRIX_SWITCHES


An error was encountered for the on-premises IIS deployment

@howard2019007 it looks like the web server did not start, make sure you follow the readme instructions here - https://github.com/microsoft/chat-copilot/blob/main/README.md


Socket hangs up most of the time

@AlexBHarley
Use Case
I have nodejs application which will handle all subscription logic and have API in php application. whenever something changed my php application emit the event to deepstream and nodejs handle it.
Problem comes when I added authentication server. So my deepstream conf having following.
serverName: UUID
showLogo: true
logLevel: DEBUG
libDir: /var/lib/deepstream
sslKey: null
sslCert: null
sslCa: null
connectionEndpoints:
  websocket:
    name: uws
    options:
      port: 6020
      host: <IP_ADDRESS>
      urlPath: /deepstream
      healthCheckPath: /health-check
      heartbeatInterval: 30000
      outgoingBufferTimeout: 0
      unauthenticatedClientTimeout: 180000
      maxAuthAttempts: 3
      logInvalidAuthData: false
      maxMessageSize: 1048576
  http:
    name: http
    options:
      port: 7000
      host: <IP_ADDRESS>
      allowAuthData: false
      enableAuthEndpoint: false
      authPath: /auth
      postPath: /
      getPath: /
      healthCheckPath: /health-check
      allowAllOrigins: true
      origins:
        - localhost
        - <IP_ADDRESS>
        - 'http://<IP_ADDRESS>'
logger:
  name: default
  options:
    colors: true
    logLevel: INFO
storageExclusion: null
auth:
  type: http
  options:
    endpointUrl: 'http://<IP_ADDRESS>/api/isvalid'
    permittedStatusCodes:
      - 200
    requestTimeout: 10000
permission:
  type: config
  options:
    path: ./permissions.yml
    maxRuleIterations: 3
    cacheEvacuationInterval: 60000
rpcAckTimeout: 1000
rpcTimeout: 10000
cacheRetrievalTimeout: 1000
storageRetrievalTimeout: 2000
dependencyInitialisationTimeout: 2000
listenResponseTimeout: 500
lockTimeout: 1000
lockRequestTimeout: 1000
broadcastTimeout: 0

I need to run deepstream built-in API server for php client as mentioned and also need a authentication handler which leads to socket hangs up situation.
I have also increased the requestTimeout option but still I'm facing same problem.
Any Idea how can I solve this or any better solution for my use case. Thank you

I have just upgrade from 3.0.0 to 3.1.0 and I'm experiencing the same/similar problem. I am unable to authenticate users via http anymore and receive the following log, despite the authentication working prior to the upgrade:
...
INFO | Deepstream started
INCOMING_CONNECTION | from undefined (<IP_ADDRESS>)
AUTH_ERROR | http auth error: Error: socket hang up
INVALID_AUTH_DATA | invalid authentication data: {"username":"<username>", ...}

The authentication request.

@AlexBHarley Testing it again, I believe the issue is the authentication request. The authentication POST request is no longer sent to my web-hook URL.
Thanks.

@AlexBHarley
Any updates??

Took a look into this. It looks like @kamerk22 you're using http auth via the http api and @EnglishAdam is using it via a websocket client.
I had the following deepstream (v3.1.0) config:
auth:
  type: http
  options:
    endpointUrl: localhost:3000/login
    permittedStatusCodes: [ 200 ]
    requestTimeout: 2000
...
 connectionEndpoints:
  websocket:
    name: uws
    options:
        port: 6020
        host: <IP_ADDRESS>
        urlPath: /deepstream
        healthCheckPath: /health-check
        heartbeatInterval: 30000
        outgoingBufferTimeout: 0

        unauthenticatedClientTimeout: 180000
        maxAuthAttempts: 3
        logInvalidAuthData: false
        maxMessageSize: 1048576

  http:
    name: http
    options:
      port: 8080
      host: <IP_ADDRESS>
      allowAuthData: true
      enableAuthEndpoint: true
      authPath: /auth
      postPath: /
      getPath: /
      healthCheckPath: /health-check
      allowAllOrigins: true
      origins: []

I was only able to reproduce the AUTH_ERROR | http auth error: Error: socket hang up error by having my webhook not respond within the requestTimeout.
For reference my auth server is in node js and looks as follows:
const express = require('express')
const bodyParser = require('body-parser')
const app = express()

app.use(bodyParser.json())

app.post('/login', (req, res) => {
  if (req.body.authData.username ===<EMAIL_ADDRESS>{
    res.json({
      username: 'chris',
      clientData: { themeColor: 'pink' },
      serverData: { role: 'admin' }
    })
  } else {
    res.status(403).send('Invalid Credentials')
  }
})

app.listen(3000, () => {
  console.log('Auth server listening on localhost:3000')
})

Are there any extra steps I can take to reproduce this?

@AlexBHarley
Thanks for you replay.
I just give it try and I have running local API server and Deepstream Server as well so as far as I know there is no change of request timeout in local environment.
After 2 or 3 retry Deepstream server successfully authenticate me else everytime I got
AUTH_ERROR | http auth error: Error: socket hang up

Have the same problem. And also using 3.0.0 solves the problem. 3.1.0 and 3.1.1 versions are failing. I can add , that I use windows dev machine. And my auth server is on the same host as deepstream server. Have not tested it on linux

@Stalso Currently I'm running Deepstream Server and my API server in Docker container and link them after that everything seems fine.

@kamerk22 Please try it on pure windows. We have tested this on six machines. And issue presents

@Stalso I'll try it on a pure windows machine and let you know if an issue is still there.

@Stalso Issue is still present when I'm using Windows 10 Machine without Docker Container. Socket hangs up with the local environment.

@kamerk22 Waiting for guys to resolve it/ I do not know the reason

I had the same behavior with socket hang ups using a deepstream docker image on a digitalocean droplet instance. Furthermore I connected a MongoDB instance to deepstream. I resolved the issue by removing the deepstream collections in the MongoDB (so deepstream could reinitialize all collections). Besides the RAM of the dc droplet was really small with 1GB and I also increased it to 2GB.

@schlegel11 I had no MongoDB connections. I am using pure package

Hmm ok. This is odd.
I also have to mention that I got the issue only with the php client and http auth. The WebSocket connection wasn't affected by this.
So I'm not sure why this happens. Sorry.

hey! Sorry for the insane delay.
Can you confirm which version your using and what sort of load is being applied?

Hi,
I'm using the old deepstream version 3.1.0. the load was not very high so the first auth request I send to deepstream was working. The next requests doesnt work.
But I think the main issue was a corrupted MongoDB collection for deepstream. After an re init of all collections everything worked fine.

If you see the issue again please let me know!


It contains no tests....

This issue has been extracted from the issue list on:https://ies-svn.jrc.ec.europa.eu/issues/2685
Comment
It contains no tests.

Yes, and it has not been part of the review: https://ies-svn.jrc.ec.europa.eu/issues/2685


Deprecated parameters in read_csv method for pandas 0.23

Opening this to track https://github.com/ray-project/ray/issues/2082
cc @sarthakchakravarty

Closed via #100


search function to select relevant literature is not working!

Describe the bug
A clear and concise description of what the bug is.
What happened? And what did you expect to happen?
search function to select relevant literature is not working!
To Reproduce
Steps to reproduce the problem:
Screenshots
If applicable, add screenshots to help explain your problem.
Version information

OS: [e.g. Windows]
ASReview version [e.g. 0.6.2]

Additional context
Add any other context about the problem here.

@Jafarsab22 Can you add more information to the issue report? At least a screenshot of the error message in the front-end and the information in the CLI is needed to assist you further.

Not reproducible. Feel free to reopen with more information.


Modernise Python packaging

Updates the packaging conventions to use setup.cfg, remove deprecated fields, and list dependencies correctly.

Hi Tim,
I'll merge this request. I am unfortunately ignorant of how to change the repository permissions so you can do this yourself in the future. If you figure out what setting to change I will do it. For now, let's just get this merged to keep your momentum up...
Thanks,
Charlie

I'm familiar with configuring Github for CI, but am unable to see how this repository is currently configured. If you're available for a quick screen share, I could step you through the process?


Custom_Id in interaction

Summary
in the next update, add custom_id to the interaction, yes, it can be found in data, and still it will be more convenient
What is the feature request for?
Application commands
The Problem
It will be easier to find out the custom_id from the interaction
The Ideal Solution
add to the interaction property custom_id class which will be obtained from data
The Current Solution
No response
Additional Context
No response

There doesn't seem to be a custom_id documented under Interaction/Interaction data under Discord's documentation.
I could only find an id that existed under Interaction, and a custom_id under component (modals, buttons, ...) interactions (which exist in nextcord)

There doesn't seem to be a custom_id documented under Interaction/Interaction data under Discord's documentation. I could only find an id that existed under Interaction, and a custom_id under components (modals, buttons, ...), which already exist in nextcord

there is interaction.data there is a dict issued in which there is a custom_id

I don't see why this is needed and you didn't provide any use case either.
custom_id is an attribute on all subclasses of Item so it should already be accessible?
If this is for the on_interaction event then we don't really recommend using that over the callbacks.

I don't see why this is needed and you didn't provide any use case either.
custom_id is an attribute on all subclasses of Item so it should already be accessible? If this is for the on_interaction event then we don't really recommend using that over the callbacks.

this parameter can be added to button, dropdown exactly and in on_interaction to find out the custom_id and use, for example, for inactive interaction

I don't see why this is needed and you didn't provide any use case either.
custom_id is an attribute on all subclasses of Item so it should already be accessible? If this is for the on_interaction event then we don't really recommend using that over the callbacks.

this parameter can be added to button, dropdown exactly and in on_interaction to find out the custom_id and use, for example, for inactive interaction

Thought so. The library provides something called "Persistent View" for that case. As I said, we don't recommend using the event, there is even a warning on the docs about it.

Having said that.. our (NC maintainers) stance on that may change for v3 since the warning and all are from discord.py 🤷

Since all view items include a custom_id attribute already, there's no use in having a custom_id attribute in the interaction class. If you absolutely need it from the interaction object for some reason, you can get it from Interaction.data.


jsoncpp issue causes OpenXR SDK 1.1.38+ to not compile anymore

This jsoncpp issue causes OpenXR SDK 1.1.38 up to 1.1.41 to fail compiling:
-- The C compiler identification is GNU 13.3.1
-- The CXX compiler identification is GNU 13.3.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python3: /usr/bin/python3.12 (found version "3.12.6") found components: Interpreter
-- Performing Test HAVE_FILESYSTEM_WITHOUT_LIB
-- Performing Test HAVE_FILESYSTEM_WITHOUT_LIB - Failed
-- Performing Test HAVE_FILESYSTEM_NEEDING_LIBSTDCXXFS
-- Performing Test HAVE_FILESYSTEM_NEEDING_LIBSTDCXXFS - Success
-- Performing Test HAVE_FILESYSTEM_NEEDING_LIBCXXFS
-- Performing Test HAVE_FILESYSTEM_NEEDING_LIBCXXFS - Failed
-- Found OpenGL: /usr/lib64/libOpenGL.so
-- Enabling OpenGL support
-- Found Vulkan: /usr/lib64/libvulkan.so (found version "1.3.290") found components: glslc glslangValidator
-- Enabling Vulkan support
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
CMake Error at /usr/lib64/cmake/jsoncpp/jsoncppConfig.cmake:37 (check_required_components):
  Unknown CMake command "check_required_components".
Call Stack (most recent call first):
  src/cmake/FindJsonCpp.cmake:68 (find_package)
  src/CMakeLists.txt:125 (find_package)

-- Configuring incomplete, errors occurred!
RunExternalCommand failed for script:
export CC="gcc"
export CXX="g++"
export AS="as"
export AR="ar"
export RANLIB="ranlib"
cd "/home/roland/progs/dragengine/extern/openxr/build/OpenXR-SDK-release-1.1.41" || exit 1
cmake -DCMAKE_INSTALL_PREFIX="/home/roland/progs/dragengine/extern/openxr/build" -DCMAKE_INSTALL_LIBDIR="/home/roland/progs/dragengine/extern/openxr/build/lib" -DCMAKE_BUILD_TYPE=Release -DBUILD_API_LAYERS=No -DBUILD_TESTS=No -DBUILD_WITH_STD_FILESYSTEM=No -DBUILD_WITH_SYSTEM_JSONCPP=No -DBUILD_WITH_WAYLAND_HEADERS=No -DBUILD_WITH_XCB_HEADERS=No -DDYNAMIC_LOADER=No -Wno-dev ../OpenXR-SDK-release-1.1.41 || exit 1
make -j 12 install || exit 1

The problem started happening after a system update where gcc/cmake has been updated:
gcc (Gentoo 13.3.1_p20240614 p17) 13.3.1 20240614
cmake version 3.30.2

The only workaround I found so far is this patch. But this requires jsoncpp to be build using BUILD_WITH_SYSTEM_JSONCPP=No and is thus really just a workaround and no fix.

OK, thank you for the log. It looks like your system jsoncpp install is actually broken, presumably because the system package is built with meson and uses a version that makes a broken config file if built with meson. (If you generate the config file with cmake, an impl of check_required_components is generated in there too.) I am pretty sure their "patch" does not actually fix the problem, or rather, it breaks the usage for everyone now, but won't error...
As a workaround, run CMake with `-DCMAKE_DISABLE_FIND_PACKAGE_jsoncpp=TRUE" to skip that check and force using the internal build.
So what system are you using? Gentoo? So there is a Gentoo bug. Unfortunately  this is a tricky one to work around in our consuming package.

I updated the corresponding upstream (jsoncpp) bug with details: https://github.com/open-source-parsers/jsoncpp/issues/1568#issuecomment-2417485183
I do not have time to look into how to file a Gentoo bug.

Created Gentoo bug linking to this issue and the upstream fix attempt: https://bugs.gentoo.org/941642

I've got the impression the ball is kicked back into your yard: https://bugs.gentoo.org/941642#c1

The fix on the gentoo jsoncpp ebuild fixes the problem. Not sure about other distros using the same jsoncpp version.

If they used CMake instead of Meson they would have had no problem, it was only if they used Meson but shipped the buggy meson-generated CMake config file.
So with the Gentoo fix things work fine now, by just falling back to pkg-config? It has less info about what kind of library we're talking about, but it should be good enough.

You can try asking up-up-stream if they can do a real fix for CMake. For compiling OpenXR it seems to work.


drop note column

Do we also need to get rid of the transient notes field on GoalEntity? And the notes field on the domain Goal class? 🤔

Sadly not. Due to the way the the goals are created (from an action plan) in bulk as a list, we have no way of keeping track of the goal notes. If I was to rewrite the goal code to save them individually then I could remove from the entity etc. But as it stands this is the only way to do it.

Do we also need to get rid of the transient notes field on GoalEntity? And the notes field on the domain Goal class? 🤔

Sadly not. Due to the way the the goals are created (from an action plan) in bulk as a list, we have no way of keeping track of the goal notes. If I was to rewrite the goal code to save them individually then I could remove from the entity etc. But as it stands this is the only way to do it.

Sad times 😢
OK, we might want to look at this again at some point as I think it makes for something fairly confusing and not massively obvious in respect of handing over to another team. I suspect as we do further work in this area, eg: supporting Notes for Archiving and Completing goals etc; then that work might help in some ways 🤔 🤞
Let's merge it as is, which at least allows us to move forwards 👍


Compatibility with Azure Developer CLI 0.8.0

Purpose

This PR updates the project to be fully compatiblle with the Azure Developer CLI version 0.8.0 (see https://github.com/Azure/azure-dev/releases/tag/azure-dev-cli_0.8.0-beta.1) including updates to new features and templates

Does this introduce a breaking change?
[X] Yes
[ ] No

Pull Request Type
What kind of change does this Pull Request introduce?
[ ] Bugfix
[X] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[X] Documentation content changes
[ ] Other... Please describe:

How to Test
Basically the deployment of the app in the Terraform and Bicep options needs to be executed as well as the setup of the Devcontainer.
What to Check
The provisioning of the infrastructure as well as the deployment of the app code work
Other Information
See release notes of the Azure Developer CLI in version 0.8.0-beta1

Fixes #59


Maybe eventually hook up Java webstart again

This is more of a notification to say I disabled the webstart task in Jenkins. I forgot it was even running and it includes signing jars with our now-expired code signing cert (I let it expire figuring only the retired applet was using it)
Signing with the expired cert was breaking the build so disabling that was a quick fix. I don't think we use the Webstart files for anything anyway?
Maybe one day somebody will want to do something with webstart. Alternatively if we decide to abandon it we can probably take out those bits from the Gradle script instead.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/31966698-maybe-eventually-hook-up-java-webstart-again?utm_campaign=plugin&utm_content=tracker%2F715506&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F715506&utm_medium=issues&utm_source=github).

Won't fix


extend storage up & download

allow providing hash & filename

what a great PR! thanks for the contribution 🦖


Date handling broken

Properties declared in resources as Joi.date() are being persisted by the relationaldb store as strings but not being converted from the Date object that Joi returns, which results in the following error:
Rolling transaction back after error: {"name":"SequelizeValidationError","message":"string violation: birthDate cannot be an array or an object","errors":[{"message":"birthDate cannot be an array or an object","type":"string violation","path":"birthDate","value":"1969-12-31T16:00:00.000Z"}]} +6ms
Executing (917da062-51e8-4231-aec8-68bf5f19466c): ROLLBACK;

I was just having a similar issue regarding the populate() method.
See lib/sqlHandler.js
SqlStore.prototype.populate = function(callback) {
  var self = this;

  var tasks = [
    function(cb) {
      self.baseModel.sync().asCallback(cb);
    },
    function(cb) {
      async.each(self.relationArray, function(model, ecb) {
        model.sync().asCallback(ecb);
      }, cb);
    },
    function(cb) {
      async.each(self.resourceConfig.examples, function(exampleJson, ecb) {
        var validation = Joi.validate(exampleJson, self.resourceConfig.attributes);
        if (validation.error) return ecb(validation.error);

        // Notice that validation.value has been altered by Joi
        // exampleJson was correctly validated, but validation.value was not
        // ironically the validated values aren't valid
        // you can get around this by using the exampleJson values

        // was: self.create({ request: { type: self.resourceConfig.resource } }, validation.value, ecb);

        // create re-validates the value for us
        self.create({ request: { type: self.resourceConfig.resource } }, exampleJson, ecb);
      }, cb);
    }
  ];

  async.series(tasks, callback);
};


Export certificate controller sync call duration metrics

Is your feature request related to a problem? Please describe.
Not a problem. But improve the metrics reading for performance testing.
Describe the solution you'd like
Just like acmeClientRequestDurationSeconds, to record certificate controller sync duration, and export as a metric.
https://github.com/jetstack/cert-manager/blob/c98415062ae3273af440ecee4b5fd5e1df4c0e79/pkg/metrics/metrics.go#L100
Describe alternatives you've considered
Record more fine-grained metrics for each individual controller sync time.
Additional context
N/A
Environment details (if applicable):
N/A
/kind feature

I think this issue could be expanded to include metrics for all controllers, not just the certificate controller

/priority important-longterm


[AzureMonitorExporter] refactor RequestTelemetryTest

Follow up to #29820, #24362.
This is the last change for this linked issue.
I spent some time investigating if we could flush the TracerProvider to avoid the wait.
It appears that the spin wait is unavoidable.
Some refactoring to clean up the test and project.
This moves the ConfigureTestServices to the individual test, copying a similar pattern used in the OpenTelemetry projects.
Changes

Remove unused Include from csproj.
Remove OpenTelemetryWebApplicationFactory.
Can use the default WebApplicationFactory.
Add new base class: WebApplicationTestsBase.
This holds common methods that were previously in the factory.

API change check
API changes are not detected in this pull request.


vcf2adam -> Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less$colon$less;

Hi,
I installed version 0.17.1 on top of AWS EMR with Spark 1.3.1.
Then I loaded chromosome 1 from 1000genomes project as vcf and copied this into hdfs
[hadoop@ip-172-31-21-10 jerry]$ adam-submit vcf2adam hdfs://chr1/chr1 hdfs://chr1/chr1.adam
Using SPARK_SUBMIT=/home/hadoop/spark/bin/spark-submit
15/10/27 10:05:51 INFO cli.ADAMMain: ADAM invoked with args: "vcf2adam" "hdfs://chr1/chr1" "hdfs://chr1/chr1.adam"
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less$colon$less;
at org.bdgenomics.adam.cli.ADAMMain$.main(ADAMMain.scala:105)
any idea would be highly appreciated
Jerry

p.s.
http://stackoverflow.com/questions/30342273/spark-submit-fails-with-java-lang-nosuchmethoderror-scala-predef-conformsls
this points to a version issue with spark and/or scala ?

I believe this is when Spark and/or ADAM have been built for Scala 2.11 and then are run with Scala 2.10.  If you could confirm that the Scala versions of Spark and ADAM match, that should help.

Thank you Michael.
I installed 2 older versions:
drwxr-xr-x  6 hadoop hadoop 4096 Oct 28 05:36 adam-distribution_2.10-0.17.1
drwxr-xr-x  6 hadoop hadoop 4096 Oct 28 05:36 adam-distribution_2.10-0.18.1
This looks a bit better, because the error appears later ...
e.g. with adam-distribution_2.10-0.17.1:
15/10/28 05:40:56 INFO cluster.YarnClientSchedulerBackend: SchedulerBackend is ready for scheduling beginning after reached minRegisteredResourcesRatio: 0.8
Exception in thread "main" java.lang.IllegalArgumentException: java.net.UnknownHostException: chr1
at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:377)
I attached the full output.

HDFS URIs typically look like this:
hdfs://namenode-host/path/to/whatever

So Hadoop/Spark thinks that the host running the namenode server is called chr1.  You probably meant something like
hdfs:///chr1/chr1

(note the difference with the slashes).  This will use the default namenode that is set with any associated Hadoop client config.

WOW Uri !!! Thanks so much ! It's running now.
Using only 2 out of 4 Clusternodes, but that's another issue, I will try to fix next !
best !
-Jerry

Good to hear!
There is a minor issue with the 0.18.1 distribution, reported here (#872).  If you run into that, just move or remove the -sources.jar as shown in the issue description.

Great, closing this.  Definitely report it if you have additional issues.

Perfect job !  Thanks a lot, Michael and Uri !

am still facing the same error when am trying to run adam 0.18.1
./adam-submit transform /shared/avocado_test/NA06984.454.ssaha.SRP000033.2009_10.bam /shared/avocado_out/NA06984.454.ssaha.SRP000033.2009_10.bam_tags.adam  -add_md_tags /shared/avocado_test/human_b36_male.fa
Using ADAM_MAIN=org.bdgenomics.adam.cli.ADAMMain
Using SPARK_SUBMIT=/usr/hdp/<IP_ADDRESS>-2/spark-1.4.1/bin/spark-submit
16/01/28 14:33:15 INFO cli.ADAMMain: ADAM invoked with args: "transform" "/shared/avocado_test/NA06984.454.ssaha.SRP000033.2009_10.bam" "/shared/avocado_out/NA06984.454.ssaha.SRP000033.2009_10.bam_tags.adam" "-add_md_tags" "/shared/avocado_test/human_b36_male.fa"
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less$colon$less;
at org.bdgenomics.adam.cli.ADAMMain.apply(ADAMMain.scala:120)
at org.bdgenomics.adam.cli.ADAMMain$.main(ADAMMain.scala:77)
at org.bdgenomics.adam.cli.ADAMMain.main(ADAMMain.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:665)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:170)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:193)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
16/01/28 14:33:15 INFO util.Utils: Shutdown hook called
using the version spark 1.4.1
hadoop 2.6.0
Is there any workaround for this issue.
used this maven command to build.
mvn clean package -Dscala-2.10.5 -DskipTests
and used
mvn clean package -DskipTests
even then am facing the same issue.

Hi @ankushreddy
We do not have a -Dscala-2.10.5 switch for our build. Are you running on a Spark build that is built for Scala 2.10 or 2.11?

HI @fnothaft
we are running spark on scala 2.10

When you do

I actually downloaded the source code of adam 0.18 from
https://github.com/bigdatagenomics/adam/releases
and compiled it on my hadoop I actually cloned the new repository to my desktop there am getting the status like.
C:\Users\asugured\Documents\GitHub\adam [master]> git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

Which release of ADAM 0.18 did you download? We package both Scala 2.10 and 2.11 artifacts with each release. The error you're getting (missing method from inside of a Scala standard library) indicates that you have a Scala version mismatch between your Spark and ADAM distros. This can happen if you downloaded the ADAM 0.18 Scala 2.11 artifacts, but are running with Spark built for Scala 2.10. Can you run git log | head -n 1 | awk '{ print $2 }'? This will give us the commit hash for the latest commit, which will confirm which set of ADAM artifacts you've pulled down. You can also run grep scala.version pom.xml, which will return either 2.10 or 2.11.

I performed the “grep scala.version pom.xml” in Ankush’s ADAM directory and got:
 Scala Version: 2.10

It sounds like we need to update the pom.xml file?
From: Frank Austin Nothaft<EMAIL_ADDRESS>Sent: Thursday, January 28, 2016 5:50 PM
To: bigdatagenomics/adam<EMAIL_ADDRESS>Subject: Re: [adam] vcf2adam -> Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less$colon$less; (#871)
Which release of ADAM 0.18 did you download? We package both Scala 2.10 and 2.11 artifacts with each release. The error you're getting (missing method from inside of a Scala standard library) indicates that you have a Scala version mismatch between your Spark and ADAM distros. This can happen if you downloaded the ADAM 0.18 Scala 2.11 artifacts, but are running with Spark built for Scala 2.10. Can you run git log | head -n 1 | awk '{ print $2 }'? This will give us the commit hash for the latest commit, which will confirm which set of ADAM artifacts you've pulled down. You can also run grep scala.version pom.xml, which will return either 2.10 or 2.11.
—
Reply to this email directly or view it on GitHubhttps://github.com/bigdatagenomics/adam/issues/871#issuecomment-176500650.

Thanks for reply @fnothaft  and @faissl-asu  we actually have spark built on scala 2.10 so we need to download adam-0.18_2.10 for scala 2.10 and adam-0.18_2.11 for scala 2.11.
Correct me if am wrong @fnothaft
Thanks for directing me in the correct way :)
Thanks & Regards,
Ankush Reddy.

Thanks for reply @fnothaft and @faissl-asu we actually have spark built on scala 2.10 so we need to download adam-0.18_2.10 for scala 2.10 and adam-0.18_2.11 for scala 2.11.

This is correct.

I performed the “grep scala.version pom.xml” in Ankush’s ADAM directory and got:
Scala Version: 2.10

It sounds like we need to update the pom.xml file?

No, this looks like the correct version if you're running Spark built for Scala 2.10.

Thanks for directing me in the correct way :)

Definitely! Hopefully we can resolve this soon.

Closing as resolved.


Caching missing around Github Access Tokens

After looking at telemetry for backend calls from backstage, I noticed a large number of calls are going to https://api.github.com/app/installations and https://api.github.com/app/installations/{APP ID}/access_tokens.  I'm roughly seeing one call to each of these urls for every call to another github endpoint, so it seems as if every call to github is requesting a new access token.
Expected Behaviour
I'd expect to access tokens reused across multiple calls, so the ratio of access token calls to other github calls should be lower
Actual Behaviour
It looks like every call to api.github.com is requesting a new access token.  These access tokens should be cacheable and re-usable.
Query from Application Insights:

Steps to Reproduce

Set up the github entity processor (I believe provider will have the same steps, but will confirm later today)
Leave it running for a while
Look at backend telemetry for your app to see how many calls

Context
The docs for SingleInstanceGithubCredentialsProvider suggest that it should handle caching https://github.com/backstage/backstage/blob/8a8c8a28b628c57dc3d4ff103388d1bb1b9bc9cc/packages/integration/src/github/SingleInstanceGithubCredentialsProvider.ts#L224-L232 .  But I don't see any code doing any caching.
Your Environment
Currently we're using the GitHub entity processor.  We're upgrading to the entity provider later today, although I'm suspecting they'll share the same root cause as they both share the same github credential code.
This issue only seems to affect when using github apps for authentication - I can see the day we upgraded from a PAT to a github app, calls to github roughly tripled.

After debugging locally, I can see there is some caching, but 3 distinct issues are combining to significantly reduce / totally negate the effectiveness of the cache.
1. No caching around Installation Data
There is no caching around the loading of installation data from github.  This information is required for auto discovery to work out which apps apply to which org & repo
https://github.com/backstage/backstage/blob/9c16d287ebb40c9eee76c42215a35ad6cef22f8d/packages/integration/src/github/SingleInstanceGithubCredentialsProvider.ts#L147
One way to solve this would be to add a cache around installation data.  This would however add a fair bit of complexity to the auto discovery logic.  An alternative would be to ditch auto discovery altogether and require org/repo data to be specified in app-config.  This would mean the detection of which app/token to do could be done solely from config, without needing a ache..  (This approach would also solve #13282)
2. Access Tokens are cached per unique org/repo combination
I was wrong in my initial analysis around caching of access tokens - it is there, however the cache key is caching a unique token per combination of org repo.
https://github.com/backstage/backstage/blob/9c16d287ebb40c9eee76c42215a35ad6cef22f8d/packages/integration/src/github/SingleInstanceGithubCredentialsProvider.ts#L106
Neither org or repo are passed into createInstallationAccessToken, so I think it should be sufficient to cache a single token per GihubAppManager, along with repository_selection for cases the app is only installed for specific repos.
3. Access Tokens are expiring prematurely
The cache logic expires tokens 50 minutes before the expiration time given by github.  I assume this is to account for clock skew.  However the tokens I'm getting back from github only have a 1 hour token, so this is leading to tokens expiring very prematurely.  In my case, we are processing entities every 10 minutes, so we effectively never see the cache used.
https://github.com/backstage/backstage/blob/9c16d287ebb40c9eee76c42215a35ad6cef22f8d/packages/integration/src/github/SingleInstanceGithubCredentialsProvider.ts#L53-L56
This can be mitigated by dropping the clock skew value down to a lower number - 5 minutes seems like plenty of time.