Fix reporting validation for observability

Signed-off-by: Joshua Li<EMAIL_ADDRESS>Description
Update reporting validation for observability
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #231 (e0d4cb9) into main (507299e) will decrease coverage by 9.97%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main     #231      +/-   ##
============================================
- Coverage     64.54%   54.57%   -9.98%
  Complexity      294      294
============================================
  Files            97       64      -33
  Lines          4045     2056    -1989
  Branches        620      234     -386
============================================
- Hits           2611     1122    -1489
+ Misses         1293      796     -497
+ Partials        141      138       -3

Flag
Coverage Δ

dashboards-reports
?

reports-scheduler
54.57% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...ashboards-reports/server/utils/validationHelper.ts

...ashboards-reports/server/routes/utils/constants.ts

dashboards-reports/public/components/main/main.tsx

...t_definition_details/report_definition_details.tsx

dashboards-reports/test/propsMock.js

...rt_definitions/report_settings/report_settings.tsx

...omponents/report_definitions/delivery/delivery.tsx

...orts/server/routes/utils/converters/backendToUi.ts

dashboards-reports/server/routes/utils/helpers.ts

dashboards-reports/server/model/backendModel.ts

... and 23 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 507299e...e0d4cb9. Read the comment docs.


Function suggestions not working in the context of global variables

Refer to the image below

Checked in the latest master and could not reproduce the issue. Please make sure you have other syntax errors in the source as well. Hence closing the issue.


Format and Updates V0.2

Correct formatting for Commons and Storage file
Update CurrentDate class: can use today and tomorrow command words

Working on Issue #57


⚠ Jenkins Plugins Artifactory has degraded performance

In ef8a8fb, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1389 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 12e415e after 12 minutes.


ndt7-protocol.md: clients mlab-ns, scheduling, and back-off requirements

This diff modifies the ndt7 specification to introduce client
requirements related to mlab-ns.
I have added more information, at the cost of possibly duplicate
some information and/or being redundant with mlab-ns docs, because
IMO this helps us be sure that people who are writing clients for
ndt7 understand how to interact with the platform.
Other solutions to the same problem may be possible and I don't
have a strong opinion that this is the best way.
Closes #34.
Closes #35.

This change is

Pull Request Test Coverage Report for Build 741

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 73.424%

Totals

Change from base Build 739:
0.2%

Covered Lines:
1409

Relevant Lines:
1919

💛  - Coveralls

@stephen-soltesz @pboothe I've updated the PR to match changed since it was opened. With the mlab-ns change landing soon 🤞, I think it makes sense to have the spec in the master branch updated such that it references the correct URL for mlab-ns.

FTR, https://locate.measurementlab.net/ndt7 is now WAI. So merging this PR would not mean that our specification contains fake news or non working endpoints! 🎉

@pboothe can you please take another look?


Keep report in same place in LHN after deleting last comment

Details
Right now the LHN position resets after deleting the last comment in a report. Let's keep it where it is. Web-E PR here: https://github.com/Expensify/Web-Expensify/pull/39028
Fixed Issues

$ https://github.com/Expensify/App/issues/26479
Tests

See QA steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA steps, since these changes unify optimistic behavior as well.
QA Steps

Assign a task as User A to User B
Verify that task report appears at top of LHN for both A and B
Comment on task report as A
Comment in another report as A and verify task report moves down in LHN
Reopen task report and remove comment as A
Verify that task report says "No activity yet" but does not move in the LHN

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/12980971/9ad74e3b-67c3-4b23-aae5-8fd31e42e7b3

Mobile Web - Chrome

Mobile Web - Safari

https://github.com/Expensify/App/assets/12980971/22d9eac6-bca0-48a6-8852-5d698187c62e

Desktop

https://github.com/Expensify/App/assets/12980971/3fb92df2-6272-42bd-bd39-99b8136a1470

iOS

https://github.com/Expensify/App/assets/12980971/63f10c7a-e7c2-49b3-9037-4b2ebcf70f48

Android

@robertKozik I can't get Android to work. For some reason API requests just fail, so I can't upload videos for those. I keep getting this:

I didn't encounter such an error before, will try to test & verify on my end 👌🏼

Reviewer Checklist

[X] I have verified the author checklist is complete (all boxes are checked off).
[X] I verified the correct issue is linked in the ### Fixed Issues section above
[X] I verified testing steps are clear and they cover the changes made in this PR

[X] I verified the steps for local testing are in the Tests section
[X] I verified the steps for Staging and/or Production testing are in the QA steps section
[X] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[X] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[X] I verified proper code patterns were followed (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[X] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I verified that this PR follows the guidelines as stated in the Review Guidelines
[X] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@robertKozik Can we keep this moving?

Yeah, sorry, I'll end it today 🙇🏼

Hey @Li357, one more time, sorry for the delay 🙇🏼 While testing, I encountered a problem: the task position was reset, and after a while, it was restored to the proper position (I'm attaching a video). It seems like we need to wait for a backend response before the item gets its proper position. Can you confirm if you're experiencing the same, or if it's possibly a cache issue on my end?
https://github.com/Expensify/App/assets/61146594/64d172c0-2bcd-4d25-a4cc-181b57c3a0f5

hi @robertKozik and @0xmiroslav could you check and see if this deploy blocker is a regression from this PR?

This PR is not merged yet @Christinadobrzyn

@robertKozik Apologies for the delays here. This should not be the case, the backend should respond by not resetting the position, perhaps there was an internal regression. I'm currently unable to test backend code.

@robertKozik We are ready to test this. Can you point App to staging and test out these changes locally?

@MonilBhavsar I don't think I'll be able to get this tested by C+ by EOD. Could you handle getting a new C+ assigned if we don't get a response in the next day since you have the context from https://github.com/Expensify/Web-Expensify/pull/39653#issuecomment-1834260048? That would be awesome 🙏

The expected behavior should be that it does not change position if we remove the last message in a chat report.


docs: fixes panic in 14_groups example

Closes #295

@homu r+
Since this is only a single character change I'm going to go ahead and merge.

:pushpin: Commit 945b00a has been approved by kbknapp

:hourglass: Testing commit 945b00a with merge dcfe965...

:sunny: Test successful - status


Rewrite "Subscribing to Events" (was "Event Subscription")

Reorganize, expand information, and clarify steps.
Signed-off-by: Anne Chenette<EMAIL_ADDRESS>

Made it through the first two sections. Will take a look at the rest in a bit.

I pushed a fix-up commit that makes reviewer corrections and adds Go/JavaScript/Rust code examples for the xo/create event.

Pushed a fix to describe event attributes and add "return" lines to example code. I believe (hope) that this version addresses all previous reviewer comments.

Pushed another fix-up commit - this one adds "intkey set" and "intkey show" examples at the end. It also fixes minor formatting and wording issues.

Deleted previous comment (it was for a different PR). Sorry.


Option to accept defaults for installs with EULA, installation options, etc.

Requesting a new feature 🧑💻
To make this usable for automation scripts, we need some way of answering prompts for installers. For example, the google-chrome-stable download puts up a EULA question before it will install -  you have to answer 1 to agree before it continues.

Looking at the source, it looks like you can set DEBIAN_FRONTEND=noninteractive to skip the prompt. Just confirmed this locally like this:
DEBIAN_FRONTEND=noninteractive deb-get install atuin

Here's the source location:
https://github.com/wimpysworld/deb-get/blob/35d22107f5c7fad9d74ba87d2953b3f3c734cb10/deb-get#L222-L233

Awesome - should make my workstation reinstalls script much more automated.


scroll location only correct when header not fixed

I have added the below to the div that gets fixed on scroll
data-scroll-header

It works first time when the header no fixed however when clicking when the header is fixed the offset top is too much and is scroll too far down.
Here's is my link: data-scroll-header http://middlers.plewscreative.co.uk/solutions-for-you/individuals/#our-promises

The script is written with an assumption that the header is always fixed rather than becoming fixed as the user scrolls further down the page. As a result, the offset is set on init, and when your header later becomes fixed, the calculations are no longer accurate.
I'm assuming you're using a script to fix the header after a certain distance? If so, can you add a callback to it to rerun smoothScroll.init() with your arguments (and similarly run it again when scrolling back to the top)? This would reset the calculations when the header becomes fixed/unfixed.

Closing due to inactivity


Remove formatter

https://github.com/ethers-io/ethers.js/blob/ef1b28e958b50cea7ff44da43b3c5ff054e4b483/packages/providers/src.ts/formatter.ts#L232-L236
https://github.com/ethers-io/ethers.js/blob/ef1b28e958b50cea7ff44da43b3c5ff054e4b483/packages/address/src.ts/index.ts#L89
The formatter will convert the address to the format of the checksum, which will fail when the string matches

I don't really recommend removing the formatter directly. base-providers were originally intended to be compatible with ethers.js . If you just want to return the rpc result without checksum, just change the hexlifyRpcResult function. Like this:


Consider switching to absl string facilities like StrJoin

Per https://github.com/googleapis/google-cloud-cpp/issues/4458#issuecomment-658710495:

the string char const* sep = probably as part of something that could be replaced by absl::StrJoin().

In some cases this is a no-brainer. Like:
char const* sep = ", ";
for (auto f : foo) {
   os << f << sep;
}
// becomes:
absl::StrJoin(foo, ", ");

In other cases, the code (I think) becomes slightly harder to read. Consider https://github.com/googleapis/google-cloud-cpp/blob/master/google/cloud/bigtable/tests/data_integration_test.cc#L503:
std::ostringstream os;
char const* sep = "[";
for (auto const& f : failures) {
    os << sep << "failed[" << f.original_index() << "]=" << f.status();
    sep = ", ";
}
os << "]";
return os.str();

Becomes:
struct Formatter {
    void operator()(std::string* out, int original_index) {
        out->append("failed[");
        out->append(std::to_string(original_index));
    }
    void operator()(std::string* out, const google::cloud::Status& status) {
        out->append("]=");
        auto f = absl::StreamFormatter();
        f(out, status);
    }
};
ASSERT_TRUE(failures.empty()) << "failures=" << [&failures]() {
  std::string out = "[";
  for (auto const& f: failures) {
    auto p = absl::PairFormatter(Formatter(), "", Formatter());
    absl::StrJoin(std::make_pair(f.original_index(), f.status()), ", ", p);
  }
  absl::StrAppend(&out, "]");
  return out;
}();

Note: I am sleep deprived when I wrote this and the original edit did not work at all, so it's possible this code is non-functional.
The StreamFormatter is just a quick way to convert the status to a string. My C++ is a bit rusty so I'm sure it could be simplified but wanted input on the approach before proceeding. Thoughts?

FWIW, we could just write:
ASSERT_TRUE(failures.empty()) << "failures=" << [&failures]() {
  std::string out = "[";
  for (auto const& f: failures) {
    auto p = absl::PairFormatter(Formatter(), "", Formatter());
    absl::StrJoin(std::make_pair(f.original_index(), f.status()), ", ", p);
  }
  absl::StrAppend(&out, "]");
  return out;
}();

as
ASSERT_THAT(failures, ::testing::ElementsAre());

which would print the elements in binary form (at least).  And maybe we can add some PrintTo() overloads to correctly format the protos.

On second thought, I think I chose a bad example. My current code (which doesn't compile) would require passing a container of pairs to StrJoin, which would undoubtably make the code more complex and unreadable. I'll revisit this in the morning.

ASSERT_THAT(failures, ::testing::ElementsAre());

which would print the elements in binary form (at least). And maybe we can add some PrintTo() overloads to correctly format the protos.

That does sound simpler.

One potential snag is that for custom types, there ends up being duplicate logic between the ostream overloads and the custom formatters. Example:
struct PolicyDocumentConditionFormatter {
    void operator()(std::string* out, PolicyDocumentCondition const& condition) {
        out->append("PolicyDocumentCondition=[");
        out->append(absl::StrJoin(condition.elements(), ", "));
        out->append("]");
    }
};

std::ostream& operator<<(std::ostream& os, PolicyDocumentCondition const& rhs) {
  return os << "PolicyDocumentCondition=["
            << absl::StrJoin(rhs.elements(), ", ") << "]";
}

std::ostream& operator<<(std::ostream& os, PolicyDocument const& rhs) {
  os << "PolicyDocument={";
  os << "expiration=" << google::cloud::internal::FormatRfc3339(rhs.expiration)
     << ", ";
  os << "conditions=[";
  os << absl::StrJoin(rhs.conditions, ", ", PolicyDocumentConditionFormatter{});
  return os << "]}";
}

Having these types convertible to string or having a ToString like method would solve this issue, but it would also require more refactoring. Is the effort worth it?

This is a duplicate of #2442

What is going on with the assigning to closed issues?

@JustinBeckwith is normalizing the issues across all the googleapis/ repositories to facilitate analysis.  It has been very noisy / spammy.

Apologies, it's done now.


Feature: Schema Ownership

Option 1:  We can use the codebase itself to parse CODEOWNERS files.
Option 2: Allow parsing the schemas with something like:
# CODEOWNERS: dotansimha
type User {
  id: ID!
}

Option 3: we can use the Hive CLI for scanning CODEOWNERS in the fs and then annotate the schema with the GraphQL comment from option 2.
This way we can introduce:

Visibility of ownership of each type/field/service
Build a tool for schema approvals - we can communicate it to the Reviewers of a PR back to GitHub, or even add a schema publication check and look for the owners approvals.
Build a tool for changes visibility - when a schema adds a new reference to a GraphQL type, we can notify the owner of that type/service that the type was used.

I guess we need GH integration first, but it's a good chance to add that.

Related: https://github.com/kamilkisiela/graphql-hive/issues/2747

I think we should probably solve this with schema directives, something like the following:
type User @codeOwners(teams: ["team-1"]) {
  id: ID!
  posts: PostConnection! @codeOwners(teams: ["team-2", "team-3"])
}

Apollo Federation also supports schema ownership through directives: https://www.apollographql.com/docs/technotes/TN0036-owner-pattern/

Apollo Federation also supports schema ownership through directives: https://www.apollographql.com/docs/technotes/TN0036-owner-pattern/
directive @owner(team: String!) on OBJECT

Thanks, I see that it's only for Federation v2 though but it's definitely good to know. Do you happen to know if GraphQL Fusion spec will suport such directive?
Anyway I think we're talking about two related things here but maybe it's important to make the distinction

Having visibility into ownership via UI in Hive
Adding the ownership metadata

I think for #2, there's few more things I'd like to consider:
2a. leveraging CODEOWNERS file
Our setup often has multiple subschemas defined in single repository, they all get published separately to Hive. The "codeowners" file then contains entry like this:
src/module-1/schema.graphql @team-1

This is great because we can get triggered on code reviews when that file changes. But perhaps Hive could have a way of marking @team-1 to be owners of the whole sub-schema. I'm not sure how this would work in practice though. Adding field/type/mutation etc. annotation everywhere might make inspecting the schema messy (but I'd probably take that).
On the other hand there could be a comment on top of the file:
# CODEOWNERS: @team-1

Hive could then parse this so everything would be considered being owned by @team-1 unless overridden with a directive (ofc it should exclude federated fields). This comment could be generated by Hive CLI by looking at repository's CODEOWNERS file or maybe by passing some metadata when publishing.
2.b overriding ownership with directives
This could work regardless of top-level comment mentioned in 2a. Basically it'd be something added manually for specific parts of sub-schema. But if the top-level comment was present, the given field containing ownership directive would override that. When inspecting the schema with eyeballs, it would make it still human readable.
IDK, does it make sense to you? I'm just trying to thing of easy way to have granular ownership while still leveraging CODEOWNERS file.


FieldCampaigner: Add team selection and member selection notification

@pierrealixt @cchristelis Please review the PR.
Thanks.

@pierrealixt I have rebased the PR.
Please have a look.

As discussed before, can you please break this pull request into two:

teams
notifications

I didnt manage to create a team:

Please tell me if I did something wrong.

@pierrealixt I'll look into it and update you.
Thanks for pointing it out.

oh that's because i'm trying to add me but I'm already the campaign manager.

If I search for an unknown OSM user, I have no message telling me the name is unknown.
Add one please.
<IP_ADDRESS> - - [26/Jul/2018 15:54:42] "GET /search_osm/jadorelehcampagn HTTP/1.1" 200 -
connection error

I could not find the message connection error in your code. Where does it come from?

@pierrealixt I have removed the member notification.
I haven't added the additional feature to notify that an osm user doesnot exists yet.


Error:  undefined method `tags' for #Jekyll::Document:0x007f9cebd76128

I’m experimenting with the very latest builds of both Jekyll (hours before the full release of 3.0.0) and this plugin. I note that in https://github.com/jekyll/jekyll/pull/4055, @parkr mentions that:

In an effort to not break sites, this is all backwards compatible liquid-wise. The only big difference is that site.posts is a Collection instead of an Array. But I feel more comfortable breaking plugins than I do breaking people's Liquid.

Is this plugin (and the build that supports Jekyll 3) effected by this change? Here is the full trace:
JEKYLL_ENV=development bundle exec jekyll build --config config/jekyll.yml,config/jekyll/development.yml --full-rebuild --trace
Configuration file: config/jekyll.yml
Configuration file: config/jekyll/development.yml
            Source: ./source
       Destination: ./public
 Incremental build: disabled
      Generating...
/Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-archives-c9eac2c729bb/lib/jekyll-archives.rb:134:in `block in post_attr_hash': undefined method `tags' for #<Jekyll::Document:0x007faf142e12b8> (NoMethodError)
	from (eval):3:in `each'
	from (eval):3:in `each'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-archives-c9eac2c729bb/lib/jekyll-archives.rb:134:in `post_attr_hash'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-archives-c9eac2c729bb/lib/jekyll-archives.rb:140:in `tags'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-archives-c9eac2c729bb/lib/jekyll-archives.rb:67:in `read_tags'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-archives-c9eac2c729bb/lib/jekyll-archives.rb:60:in `read'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-archives-c9eac2c729bb/lib/jekyll-archives.rb:47:in `generate'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-74734d46f8f6/lib/jekyll/site.rb:154:in `block in generate'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-74734d46f8f6/lib/jekyll/site.rb:153:in `each'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-74734d46f8f6/lib/jekyll/site.rb:153:in `generate'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-74734d46f8f6/lib/jekyll/site.rb:58:in `process'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-74734d46f8f6/lib/jekyll/command.rb:28:in `process_site'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-74734d46f8f6/lib/jekyll/commands/build.rb:60:in `build'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-74734d46f8f6/lib/jekyll/commands/build.rb:35:in `process'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-74734d46f8f6/lib/jekyll/commands/build.rb:18:in `block (2 levels) in init_with_program'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `call'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `block in execute'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `each'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `execute'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/gems/mercenary-0.3.5/lib/mercenary/program.rb:42:in `go'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/gems/mercenary-0.3.5/lib/mercenary.rb:19:in `program'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-74734d46f8f6/bin/jekyll:17:in `<top (required)>'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bin/jekyll:23:in `load'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bin/jekyll:23:in `'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1@global/bin/ruby_executable_hooks:15:in `eval'
	from /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1@global/bin/ruby_executable_hooks:15:in `'
rake aborted!
Command failed with status (1): [JEKYLL_ENV=development bundle exec jekyll ...]
/Users/paulrobertlloyd/Sites/paulrobertlloyd.com/Rakefile:28:in `block in <top (required)>'
/Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1@global/bin/ruby_executable_hooks:15:in `eval'
/Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1@global/bin/ruby_executable_hooks:15:in `'
Tasks: TOP => build-dev
(See full trace by running task with --trace)

document.data['tags'] instead of document.tags now.

I could do a method_missing and respond_to? patch for properties in data. I thought about it but it freaked me out too much.

Given we had no deprecation period we should do something to ease the pain, I agree with @parkr it's total craziness to use method_missing but we might have to just so we can trigger a deprecation warning.

@parkr Is this a change in Liquid, or in the plugin source? I’m using site.tags, but when I remove all tag related Liquid and configuration, the build still fails. Which leads me to think something needs to be updated within the plugin.

@paulrobertlloyd It's because instead of a Post, you get a Document in the latest master.
@envygeeks https://github.com/jekyll/jekyll/pull/4058

I’m still confused sorry, where do I need to make this change?

I’m still confused sorry, where do I need to make this change?

@paulrobertlloyd We fixed it in https://github.com/jekyll/jekyll/pull/4058 but in this plugin, post.tags is now post.data['tags'] and post.categories is post.data['categories'].

@parkr Great that it now doesn’t block the build, but still trying to figure out what lines to change to clear the deprecation warning. I’d love to make submit a PR for this fix, if only I knew what to change!
I can’t find reference to post.tags in jekyll-archives.rb; or anything lines pointed to in the error message that looks amenable.
And if you do mean changes to Liquid markup, that doesn’t help either. For reference, here are a few items of (simplified) mark-up I’m using below:
{% if page.tags %}

Tags

    {% for tag in page.tags %}

{{ tag }}

    {% endfor %}

{% endif %}

That’s the only place I’m querying tags on a single post/page. Everywhere else, I’m querying site.tags, i.e.:

{% assign tags = site.tags | sort %}
{% for tag_array in tags %}
    {% capture tag %}{{ tag_array[0] }}{% endcapture %}

{{ tag }}

{% endfor %}

Finally, in my archive template, which tag archives use, I use something like this:
{% for item in page.posts %}
    {% include summary.html %}
{% endfor %}

Changing page.tags to page.data.tags, or site.tags to site.data.tags makes no difference, the build still fails (or I get the deprecation warning). Feeling a bit thick here… am I missing something obvious?

The problem is in the Ruby, not in the Liquid. Check out lib/jekyll-archives.rb:134.

Okay, so some progress. On line 134 I made the following change:
- @posts.each { |p| p.send(post_attr.to_sym).each { |t| hash[t] << p } }
+ @posts.each { |p| p.data[post_attr].each { |t| hash[t] << p } }

I did this by basically looking at this diff: https://github.com/jekyll/jekyll/commit/e58d0ae0efc23c5d58d16de0758de4f8f6f7d58a#diff-30570eaa19766a40dfa44810430d5e16L222
That seemed to fix the noisiest error. But I still have the following:
Deprecation: Collection#each should be called on the #docs array directly.
    Called by /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-archives-c9eac2c729bb/lib/jekyll-archives.rb:134:in `post_attr_hash'.
Deprecation: Collection#each should be called on the #docs array directly.
    Called by /Users/paulrobertlloyd/.rvm/gems/ruby-2.2.1/bundler/gems/jekyll-archives-c9eac2c729bb/lib/jekyll-archives.rb:150:in `years'.

And can’t find any corresponding changes in your Jekyll changes — well, not without reimplementing collections (by which I mean copy and pasting all the collections related code) within this plugin! I don’t think that’s the right answer.
It’s dawning on me that I have no idea what I’m doing! 😭

@paulrobertlloyd Is @posts a Collection or an Array? If it's a Collection, it's asking you to do @posts.docs.each in that line. Not sure what line 150 is.

@parkr Okay, great! I’ve figured out the changes that need to be made: https://github.com/paulrobertlloyd/jekyll-archives/commit/fc4f0e0eeca0c7dc9a5e5ffc4e05372c374628cd
Will make a PR shortly… now reviewing the other things that have broken with the latest build of Jekyll 3! 🤔

@paulrobertlloyd Can you confirm that this is fixed with merge of #53? Thanks!

@alfredxing Yes, it does work, thanks for shipping!
However, one downside of testing by version rather than feature, is that the beta releases of 3.0.0 worked differently than the final release: I'm assuming >= treats 3.0.0.pre.beta10 the same as 3.0.0?
As 3.0.0 final is breaking my build, I’ve been using beta10, before the collection changes were made. I think I’m going to have to keep this gem locked at specific version/commit for the time being.

Hm, I did find that, though I assumed that anyone using the betas wouldn't have issues with the final...
I guess locking in the version would be the best idea until 3.0.0 works for you :disappointed:.


SwiftGit2 fails SwiftLint 0.17.0

Carthage failed to build SwiftGit2 with Xcode 8.2.1 with following errors:
/bin/sh -c /Users/groland/Library/Caches/org.carthage.CarthageKit/DerivedData/SwiftGit2/v0.3/Build/Intermediates/SwiftGit2.build/Release-iphoneos/SwiftLint.build/Script-C9CE0DD61E0710C20053205D.sh
Loading configuration from '.swiftlint.yml'
Linting Swift files in current working directory
Linting 'CheckoutStrategy.swift' (1/17)
Linting 'Credentials.swift' (2/17)
Linting 'Errors.swift' (3/17)
/Users/groland/Desktop/gittest/Carthage/Checkouts/SwiftGit2/SwiftGit2/Credentials.swift:20:7: error: Identifier Name Violation: Enum element name should start with a lowercase character: 'Default' (identifier_name)
/Users/groland/Desktop/gittest/Carthage/Checkouts/SwiftGit2/SwiftGit2/Credentials.swift:21:7: error: Identifier Name Violation: Enum element name should start with a lowercase character: 'Plaintext' (identifier_name)
Linting 'Libgit2.swift' (4/17)
Linting 'Objects.swift' (5/17)
Linting 'OID.swift' (6/17)
Linting 'Pointers.swift' (7/17)
/Users/groland/Desktop/gittest/Carthage/Checkouts/SwiftGit2/SwiftGit2/Pointers.swift:26:7: error: Identifier Name Violation: Enum element name should start with a lowercase character: 'Commit' (identifier_name)
/Users/groland/Desktop/gittest/Carthage/Checkouts/SwiftGit2/SwiftGit2/Pointers.swift:27:7: error: Identifier Name Violation: Enum element name should start with a lowercase character: 'Tree' (identifier_name)
/Users/groland/Desktop/gittest/Carthage/Checkouts/SwiftGit2/SwiftGit2/Pointers.swift:28:7: error: Identifier Name Violation: Enum element name should start with a lowercase character: 'Blob' (identifier_name)
/Users/groland/Desktop/gittest/Carthage/Checkouts/SwiftGit2/SwiftGit2/Pointers.swift:29:7: error: Identifier Name Violation: Enum element name should start with a lowercase character: 'Tag' (identifier_name)
Linting 'References.swift' (8/17)
Linting 'Remotes.swift' (9/17)
Linting 'Repository.swift' (10/17)
/Users/groland/Desktop/gittest/Carthage/Checkouts/SwiftGit2/SwiftGit2/References.swift:133:7: error: Identifier Name Violation: Enum element name should start with a lowercase character: 'Lightweight' (identifier_name)
/Users/groland/Desktop/gittest/Carthage/Checkouts/SwiftGit2/SwiftGit2/References.swift:136:7: error: Identifier Name Violation: Enum element name should start with a lowercase character: 'Annotated' (identifier_name)
Linting 'Fixtures.swift' (11/17)
Linting 'FixturesSpec.swift' (12/17)
Linting 'ObjectsSpec.swift' (13/17)
/Users/groland/Desktop/gittest/Carthage/Checkouts/SwiftGit2/SwiftGit2/Repository.swift:18:73: warning: Redundant Void Return Violation: Returning Void in a function declaration is redundant. (redundant_void_return)
Linting 'OIDSpec.swift' (14/17)
Linting 'ReferencesSpec.swift' (15/17)
Linting 'RemotesSpec.swift' (16/17)
Linting 'RepositorySpec.swift' (17/17)
Done linting! Found 9 violations, 8 serious in 17 files.

** BUILD FAILED **

The following build commands failed:
        PhaseScriptExecution Lint\ Sources /Users/groland/Library/Caches/org.carthage.CarthageKit/DerivedData/SwiftGit2/v0.3/Build/Intermediates/SwiftGit2.build/Release-iphoneos/SwiftLint.build/Script-C9CE0DD61E0710C20053205D.sh
(1 failure)

Apparently enum identifiers with uppercase initials no longer conform to recommended swift3 style.
I added identifier_name to disabled_rules in .swiftlint.yml as a temporary measure to circumvents the issue.

We should definitely fix those. Care to open a PR?

I opened PR #86 to address the linter errors (and hopefully avoid having SwiftLint break Carthage builds in the future). I also filed bug #87 to convert the enum cases to match the Swift lower-camel-case style.


Add architecture mapping to support aarch64

Linux distros such as Ubuntu return aarch64 as machine description.
While actionlint creates binaries using the name arm64, this wrapper
needs to map the real host architecture string to the supported strings.

Without this change:
$ uname -a
Linux <DEDACTED> 6.8.0-49-generic #49-Ubuntu SMP PREEMPT_DYNAMIC Sun Nov  3 21:21:58 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

Error:
            File "/home/<DEDACTED>/.cache/pre-commit/repofhpcsnyr/_custom_build/commands/fetch_binaries.py", line 31, in run
              url = config[section]["url"]
                    ~~~~~~^^^^^^^^^
            File "/usr/lib/python3.12/configparser.py", line 941, in __getitem__
              raise KeyError(key)
          KeyError: 'linux-aarch64'
          [end of output]

Are you sure this change actually works? :)
Let me know if you can see the output from checks. something is not present in cfg file
https://github.com/Mateusz-Grzelinski/actionlint-py/blob/main/_custom_build/checksums.cfg

Are you sure this change actually works? :) Let me know if you can see the output from checks. something is not present in cfg file https://github.com/Mateusz-Grzelinski/actionlint-py/blob/main/_custom_build/checksums.cfg

Only tested on aarch64 but touched x86 as well without checking. Of course I broke it. But should be fixed now. Sorry for that.

thanks, you were quicker than me, lets try again. Now, how do I retrigger the checks...

it seems, you can not. can you make some dummy/force commit? I will squash anyway

rebased the commit :)

Ok, let's go with that, thanks for fixing that.

Ok, let's go with that, thanks for fixing that.

no, thank you for maintaining this hook !!

Released https://pypi.org/project/actionlint-py/<IP_ADDRESS>/
It would be very similar to shellcheck-py if I didn't redo it completely xD


Travis should run our tests

@tajchumber any idea why this fails to run?

the error from the travic ci logs is
17:23:28.806 [error] GenServer #PID<0.306.0> terminating
** (Postgrex.Error) FATAL 28P01 (invalid_password) password authentication failed for user "postgres"
    (db_connection) lib/db_connection/connection.ex:84: DBConnection.Connection.connect/2
    (connection) lib/connection.ex:622: Connection.enter_connect/5
    (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3
Last message: nil
** (Mix) The database for Companies.Repo couldn't be dropped: killed
The command "mix test" exited with 1.

it seems like the database is not setup properly. Can you try following the docs for setting up the db here: https://docs.travis-ci.com/user/database-setup/#postgresql

I did, I tried multiple things. The reason I got here, is that at some point tests were passing on my machine and @doomspork 's and not on CI, with an error on postgres query. We bumped the pg version up to test if there was actually something that changed due to version updates. Now I feel that we should just go back to 9.4+ (it is needed for json blob field) and find what bug we have on our code (because at a later point, tests were failing again on my machine, without changing anything on that query).

OK, I finally made it work. I rebased the branch to master (stupid me, why would the tests pass when the current branch is not based on the fixed master?), bumped postgres to 9.5 (needed for ON CONFCLICT) and rolled back any unneeded changes. I also added a note on README for devs that they should have 9.5+. @doomspork check the changes, and if you deem it necessary do a force-push to remove the clutter.

all tests pass now, we can merge this into master!


--quiet and  --silent options, to reduce or eliminate output when passing

I run Bandit in CI for a few repos now, and it's been both useful when finding potential issues (and one actual problem - thanks!) and annoyingly verbose when everything is OK.  I just don't want contributors to have to scroll through 27 lines of output when silence would be fine and the failure is coming from some other tool.
So in the Unix tradition of "silence is golden", I would love a --quiet and a --silent option to take output away, just as the existing --verbose and --debug options add more.

Thanks @ericwb!  I look forward to using this when it's released :smile:

Can I be cheeky and ask is there an ETA on the next pypi release including this? Many thanks


runtime: epollwait on fd 4 failed with 38 w/ go1.10.3

Compiled：Linux localhost.localdomain 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
RUN: Linux YF-DGE2 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o /tmp/watchping watchping.go
[root@YF-DGE2 update]# ./watchping
watch agent
watchping: comments to xxxx
The occasional mistake
[root@YF-DGE2 update]# ./watchping
runtime: epollwait on fd 4 failed with 38
fatal error: runtime: netpoll failed
runtime stack:
runtime.throw(0xc63ded, 0x17)
/usr/local/go_1.10/src/runtime/panic.go:616 +0x81
runtime.netpoll(0x1548caff3150ff00, 0x2b7400000000)
/usr/local/go_1.10/src/runtime/netpoll_epoll.go:75 +0x216
runtime.sysmon()
/usr/local/go_1.10/src/runtime/proc.go:4265 +0x424
runtime.mstart1(0x0)
/usr/local/go_1.10/src/runtime/proc.go:1227 +0xe7
runtime.mstart()
/usr/local/go_1.10/src/runtime/proc.go:1193 +0x76
goroutine 1 [runnable, locked to thread]:
vendor/golang_org/x/net/http2/hpack.newInternalNode(...)
/usr/local/go_1.10/src/vendor/golang_org/x/net/http2/hpack/huffman.go:117
vendor/golang_org/x/net/http2/hpack.addDecoderNode(0xfffffe200000002, 0x1c)
/usr/local/go_1.10/src/vendor/golang_org/x/net/http2/hpack/huffman.go:137 +0xdf
vendor/golang_org/x/net/http2/hpack.init.0()
/usr/local/go_1.10/src/vendor/golang_org/x/net/http2/hpack/huffman.go:127 +0x75
go1.9 It's OK.

What's watchping? Can you show us your snippet watchping.go? [end of handshake protocol]
Please take a look at https://github.com/golang/go/wiki/MinimumRequirements. You are using unsupported, a bit older Linux kernel: Linux YF-DGE2 2.6.18-164.el5.  Can you try your snippet on Linux kernel 2.6.23 or above?

Errno value 38 is ENOSYS.  The change from 1.9 to 1.10 is that in 1.9 we call the epoll_wait system call but in 1.10 we call the epoll_pwait system call.  epoll_pwait was added to the Linux kernel in version 2.6.19.  You are running on version 2.6.18.  So that is why the failure is happening.
According to https://golang.org/wiki/MinimumRequirements we require Linux kernel version 2.6.23 or later.  If 1.9 has been working for you, you've been lucky.  We have no plans to support kernel versions before 2.6.23, so I'm going to close this issue.  That said, you could patch runtime/sys_linux_amd64.s to go back to calling epoll_wait instead of epoll_pwait.


pcf-scripts 1.6.6

Type: Missing
Summary:
pcf-scripts 1.6.6
Details:
Looked in ClearlyDefined. License is Microsoft Software License Terms: MICROSOFT POWERAPPS CLI
NPM license field indicates see License
Resolution:
Declared license is OTHER
Affected definitions:

pcf-scripts 1.6.6

Microsoft License shown during package install.


Fix typos

This incorporates fixes from #8, while fixing many others :slightly_smiling_face:

haha thanks, too much coffee and not enough hours of sleep when I wrote this...


[Bug] Game gallery fails to load when "disable social features" is on

Platform

Device: Shield TV
OS: Android TV
Browser: Kiwi

Describe the bug
On the game detail pages Microsoft has added a gallery now with videos/screenshots of the game. But with "Better xCloud" enabled the gallery fails to load with showing an error message. I toggled some settings to find out what is causing this and noticed that this only happens if "disable social features" is on. If it's off the gallery shows up as expected.
So I hope this can be fixed so I can keep social features disabled without losing the ability to see the galleries.

Do you mean this feature?

It works fine for me

I also checked on Android (Kiwi) and similarly, if "Disable social features" is turned on, the gallery will not be displayed with an error.

Thanks for the fix. The gallery is displayed correctly in this Kiwi browser as well.

@Tak-attack: Thanks for sharing the screenshot. I wanted to add one myself, but didn't use my Shield TV on the weekend.
@redphx: And thanks to you for fixing this so quickly. :)


XOBSERVE with xdisplay and xguid not updating

Hello all,
I'm trying to use a slider so I can skim through some images I have. However, it appears that if I use
   xcpp::display(img,id, active);
in XOBSERVE the display is not updated. I'm happy to dump my unit test here, but I put it in github, as well as on mybinder.
Expected outcome: Move the slider, and xcpp::display will display an image. Move the slider past 50, and a different image will replace the previous image in the same position as before.
Actual outcome: The image never changes.
What am I doing wrong here?
Cheers,
Mark

Hi @m-kim ,
I also tried to get the live access of slider using XOBSERVE.
xw::slider<double> slider; slider.display() XOBSERVE(slider, value, [](const auto& s) {     std::cout << "Observer: New Slider value: " << s.value << std::endl; });
The above sample code from xwidget docs is not showing any output. Not sure the way which I am using it is right or not.
Please help if you have found any solutions or alternatives.
Thanks,
Sreevishnu
Sreevishnu


BUG: endIndex usage with lineChart

I am using line chart with data and data1, when there is no endIndex1, endIndex2 there is no error on my chart when I added new value but when I activated endIndex1 and endIndex2 then add a new value I had a crash.
Steps to reproduce the behavior:

create line chart with data and data2 props with no endline1 endline2 prop or endline1=null endline2=null add new value to chart (there is no problem)
2.create line chart with data and data2 props with endline1 endline2 = some value then add a new value will have crash

Hi @dogancancelik12
Can you please share the code, so I can debug the issue?


Deprecating warning with Ruby with positional/keyword arguments

This warning can be seen on GitLab CI:
DEPRECATION WARNING: /builds/gitlab-org-forks/gitlab/vendor/ruby/2.7.0/gems/asciidoctor-2.0.15/lib/asciidoctor/extensions.rb:1398: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/builds/gitlab-org-forks/gitlab/vendor/ruby/2.7.0/gems/asciidoctor-kroki-0.4.0/lib/asciidoctor/extensions/asciidoctor_kroki/extension.rb:22: warning: The called method `initialize' is defined here

https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
It's related to:
https://github.com/Mogztter/asciidoctor-kroki/blob/ba0a88c31b606e955c3d26e7cb093cff9e121b87/ruby/lib/asciidoctor/extensions/asciidoctor_kroki/extension.rb#L22
Dan Allen suggested that we move the logger fallback assignment into the initialize method because we are mixing hash argument (config) with keyword argument (logger).

Downstream issue: https://gitlab.com/gitlab-org/gitlab/-/issues/328031

@Mogztter Thank you for fixing this! This hasn't made it in any release yet has it? Would it be possible to cut a new release that includes this fix? We are looking to support Ruby 3 in GitLab and are currently blocked by this issue: https://gitlab.com/gitlab-org/gitlab/-/issues/328031 (among many other similar issues :upside_down_face:)

@mttkay Sure, I just released version 0.5.0:

https://rubygems.org/gems/asciidoctor-kroki/versions/0.5.0
https://github.com/Mogztter/asciidoctor-kroki/releases/tag/ruby-v0.5.0

Thank you! :bow:


Cf-exporter not connecting to PCF

Hi Team,
I have deployed cf-exporter in my environment and need to get metrics from Pivotal Cloud Foundry.
I have provided the following Environmental Variables:
CF_EXPORTER_CF_API_URL : https://api.sys.adp.allianz/
CF_EXPORTER_CF_CLIENT_ID : <client-id >
CF_EXPORTER_CF_CLIENT_SECRET : <client-secret >
CF_EXPORTER_METRICS_ENVIRONMENT : pcf-adp

But with this environmental variables , I have found that , it is not connecting to pivotal cloud foundry that we are not getting the metrics for that . Please find the attached error we got in logs:

  | time="2018-02-19T07:01:22-05:00" level=info msg="Starting cf_exporter (version=, branch=, revision=)" source="cf_exporter.go:127"
-- | --
  | time="2018-02-19T07:01:22-05:00" level=info msg="Build context (go=go1.8, user=, date=)" source="cf_exporter.go:128"
  | time="2018-02-19T07:01:23-05:00" level=info msg="Listening on :9193" source="cf_exporter.go:221"
  | time="2018-02-19T07:02:17-05:00" level=error msg="Error while listing service instances: Error requesting service instances: cfclient: error (10000): CF-NotFound" source="service_instances_collector.go:142"
  | time="2018-02-19T07:02:17-05:00" level=error msg="Error while listing space quotas: Error requesting space quotas: cfclient: error (10000): CF-NotFound" source="spaces_collector.go:277"
  | time="2018-02-19T07:02:17-05:00" level=error msg="Error while listing stacks: Error requesting stacks: cfclient: error (10000): CF-NotFound" source="stacks_collector.go:142"
  | time="2018-02-19T07:02:17-05:00" level=error msg="Error while listing services: Error requesting services: cfclient: error (10000): CF-NotFound" source="services_collector.go:142"
  | time="2018-02-19T07:02:17-05:00" level=error msg="Error while listing security groups: Error requesting sec groups: cfclient: error (10000): CF-NotFound" source="security_groups_collector.go:142"
  | time="2018-02-19T07:02:17-05:00" level=error msg="Error while listing service planss: Error requesting service plans: cfclient: error (10000): CF-NotFound" source="service_plans_collector.go:142"
  | time="2018-02-19T07:02:18-05:00" level=error msg="Error while listing organization: Error requesting orgs: cfclient: error (10000): CF-NotFound" source="applications_collector.go:203"
  | time="2018-02-19T07:02:18-05:00" level=error msg="Error while listing organization quotas: Error requesting org quotas: cfclient: error (10000): CF-NotFound" source="organizations_collector.go:292"
  | time="2018-02-19T07:02:18-05:00" level=error msg="Error while listing routes: Error requesting routes: cfclient: error (10000): CF-NotFound" source="routes_collector.go:142"
  | time="2018-02-19T07:02:18-05:00" level=error msg="Error while listing service bindings: Error requesting service bindings: cfclient: error (10000): CF-NotFound" source="service_bindings_collector.go:142"

Could you please help us.
With Regards,
Aparna Reji

Hey,
Make sure you remove the proxies before running
export https_proxy=
export http_proxy=

Hi ,
Removing the proxies didn't resolved the problem and the error is still there as same. May i know what else could be the problem.
With Regards,
Aparna Reji

Hi,
Could you please provide me with an update.
With Regards,
Aparna Reji

Try removing the trailing slash from the CF_EXPORTER_CF_API_URL. It should be https://api.sys.adp.allianz.

Hi @frodenas ,
The exporter is now working fine after removing the trailing slash from the CF_EXPORTER_CF_API_URL
Thank you
With Regards,
Aparna Reji

Thanks @aparnareji for confirming is working fine after removing the trailing slash. This should be fixed at v0.6.2.


BOB.justlists

{
"BOB Coins":"JustSwap Default List",
"tokens":[
{
"symbol":"BOB",
"address":"TMVu7ikeLXCCw336HeA4dAi4zqm6TG6pwu",
"chainId":1,
"decimals":6,
"name":"BOB Coins",
"logoURI":"https://www.huobi.com/learn/wp-content/uploads/2021/09/tether-6334564_1280.png"
},
],
"logoURI":"https://justswap.io/favicon.ico",
"version":{
"patch":1,
"major":1,
"minor":0
},
"timestamp":1611147166000
}

Hello,ooloox3x, I hope you have a good day. Thanks for reaching out. Please note the following two points：
First, please create createExchange in SunSwap by youself. Specific methods can be referred to https://www.sunswap.com/docs/sunswap-interfaces_en.pdf.ans.
Second, We are currently very tight on development resources and adding new lists, If timing is a key issue for you, we recommend you join the existing community SUNSWAP list, for example: Tron Alliance List: https://github.com/listtronalliance/tronalliance.
Thanks
Note:
If the token satisfies the following four conditions, it will be automatically added to the "Tron Alliance List" :
1.The token page on Transcan has a official website
2.The token page on Transcan needs at least 1 social profile
3.In order of liquidity from most to least, select the top 10 tokens with 24-hour trading volume greater than $10,000.
4.If the tokens move back in the liquidity rankings or 24 hours trading volume less than $10,000 , the token will be removed

Go

https://github.com/justswaporg/justlists/issues/3691#issue-1717866750

Sorry, this issue will be colsed. If you want to apply for a new list, please resubmit.


_read_ready and _write_ready should respect _conn_lost

I think I reported this in the wrong place: http://bugs.python.org/issue27223. There's a patch with a description and a repro there.
Currently _read_ready and _write_ready callbacks do not respect _conn_lost, which makes them vulnerable to the following race condition:

the client protocol connects to a server
the client protocol sends some data
the server sends some data back
in the mean time, something causes the connection to be lost and that information gets handled by the client protocol first
the client transport receives _read_ready but now the connection is already marked as lost and cleared on the transport

This causes an ugly exception to be raised:
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/asyncio/selector_events.py", line 664, in _read_ready
	data = self._sock.recv(self.max_size)
AttributeError: 'NoneType' object has no attribute 'recv'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/asyncio/events.py", line 125, in _run
	self._callback(*self._args)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/asyncio/selector_events.py", line 668, in _read_ready
	self._fatal_error(exc, 'Fatal read error on socket transport')
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/asyncio/selector_events.py", line 587, in _fatal_error
	self._loop.call_exception_handler({
AttributeError: 'NoneType' object has no attribute 'call_exception_handler'

Fixed in 66b4ad71504f955ca0c6e8049788bbd852615c97. And in CPython https://hg.python.org/cpython/rev/d56b3e5ebfe2


errors.com.epicgames.accountportal.session_invalidated on login api

Hey, I get the error code errors.com.epicgames.accountportal.session_invalidated on the https://www.epicgames.com/id/api/login endpoint if I try to login with an account.
Someone know what they changed? It's since today

Check my fork that has the fixed flow: https://github.com/gzalo/fortnite-php


Joking Around: It shouldn't show the joke list and hint at the same time

Describe the bug
Joking Around: It shouldn't show the joke list and hint at the same time
Steps to reproduce the behavior
1.https://arcade.makecode.com/--skillmap#beginner
2.Joking Around----->START
3.Click step 2
4.Click click here to choose a joke from our list
Actual behavior
It shouldn't show the joke list and hint at the same time when clicking click here to choose a joke from our list . Otherwise the hint is overlapped with joke list.

Additional context
1.OS: Windows(rs6)
2.arcade version: 1.5.46
3.Microsoft MakeCode version: 7.1.25

This will be fixed with the new layout.  Fortunately, it's not a big deal, since the hint is just one of the jokes.


Provide a "themeChange" event and "currentTheme" property in LensRendererExtension

Right now, the only way to detect a change to the Lens theme in the JS layer is to use a MutationObserver to observe the  element's class attribute to see if the "theme-light" class gets added to it. If it's there, then the theme is LIGHT; otherwise, consider it DARK.
Right now, this requires a lot of boilerplate:
//
// page.tsx
//

import { ThemeProvider } from 'emotion-theming';
import { lightTheme, darkTheme } from './theme';

const lightThemeClassName = 'theme-light';

export const MyPage = function () {
  //
  // STATE
  //

  const [theme, setTheme] = useState(
    document.body.classList.contains(lightThemeClassName)
      ? lightTheme
      : darkTheme
  );

  //
  // EFFECTS
  //

  useEffect(function () {
    const observer = new MutationObserver(function (mutations: MutationRecord[]) {
      mutations.forEach((mutation: MutationRecord) => {
        if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
          if ((mutation.target as HTMLElement).classList.contains(lightThemeClassName)) {
            setTheme(lightTheme);
          } else {
            setTheme(darkTheme);
          }
        }
      });
    });

    observer.observe(document.body, {
      attributes: true,
      attributeFilter: ['class'],
    });

    return function () {
      observer.disconnect();
    };
  }, []); // run once on mount

  //
  // RENDER
  //

  return (
    <ThemeProvider theme={theme}>
      <View />
    </ThemeProvider>
  );
};

The requirement is to trigger a re-render whenever the theme changes, so some type of function call is needed.
We could handle this more elegantly/formally if the LensRendererExtension provided events that one could subscribe to, like a 'themeChange' event, as well as a property identifying the current theme:
//
// renderer.tsx
//

export default class ExtensionRenderer extends LensRendererExtension {
  globalPages = [
    {
      ...addRoute,
      url: getAddUrl(),
      hideInMenu: true,
      components: {
        Page: () => <MyPage extension={this} />,
      },
    },
  ];
}

//
// page.tsx
//

import { ThemeProvider } from 'emotion-theming';
import { lightTheme, darkTheme } from './theme';

export const MyPage = function ({ extension }) {
  //
  // STATE
  //

  const [theme, setTheme] = useState(
    extension.currentTheme === 'light' ? lightTheme : darkTheme
  );

  //
  // EFFECTS
  //

  useEffect(function () {
    const handler = (name: string) => setTheme(name === 'light' ? lightTheme : darkTheme);
    extension.addEventListener('themeChange', handler);

    return function () {
      extension.removeEventListener('themeChange', handler);
    };
  }, []); // run once on mount

  //
  // RENDER
  //

  return (
    <ThemeProvider theme={theme}>
      <View />
    </ThemeProvider>
  );
};

Lens could also pass-in an entire theme object if it wanted to, instead of just the name, but _make sure you have a mode or name property on that object so that it's possible to know what "mode" the theme is...

@stefcameron We don't need such a boilerplate for now. I will provide an example in styling samples (https://github.com/lensapp/lens/pull/1371). After https://github.com/lensapp/lens/pull/1371 will be merged and new types published, any extension will be able to get active theme from @k8slens/extensions:
import { Theme } from "@k8slens/extensions";

export class SampleExtension extends React.Component {
  render() {
    return (

{Theme.getActiveTheme().name}

    );
  }
}

getActiveTheme provides all metadata which is described here https://github.com/lensapp/lens/blob/master/src/renderer/theme.store.ts#L13

@aleksfront Does this satisfy the theme switching requirement/use case I'm mainly addressing here? When I look at the Emotion sample in https://github.com/lensapp/lens-extension-samples/pull/7, I don't see theme switching there. I see CSS-in-JS being use to style a component with some theme-based CSS variables (i.e. variables whose values will change when the Lens theme changes), but I don't see an example of subscribing to Lens to be notified when the theme changes.
Providing Theme.getActiveTheme().name satisfies one of the requirements: For any given render, find out what theme Lens is currently using.
The other (more important) requirement is to trigger a render when Lens changes its theme. For that to happen, we need a function to be called by Lens (i.e. an event handler), to which a component can subscribe (typically the main "app" renderer/page component) to be notified, to then call Theme.getActiveTheme() and then pass that into the <ThemeProvider theme={newTheme} />, thus triggering that re-render.
When you change the theme in the Lens settings, it does not always trigger a re-render.

@stefcameron There is a way to catch such a theme change event inside your component using observer functoin/decorator from mobx and mobx-react . Such dependencies are already injected into the extensions.
Example:
import React from "react"
import { observer } from "mobx-react"
import { App, Component, Theme } from "@k8slens/extensions";

@observer
export class SupportPage extends React.Component {
  render() {
    return (

Active theme is {Theme.getActiveTheme().name}

    );
  }
}

But there's probably no need for such an actions since theme currently gets changes with Preferences page only. So when you change the theme, you navigate away from Preferences and your component gets rerendered. But provided example is relevant for theoretical case when theme is switched by some explicit action without moving into /preferences.
Resources:
https://mobx.js.org/README.html
https://github.com/mobxjs/mobx-react#observercomponent
https://mobx.js.org/react-integration.html

There is a way to catch such a theme change event inside your component using observer functoin/decorator from mobx and mobx-react . Such dependencies are already injected into the extensions.

Aha! The Lens team really needs to document about this mobx stuff. I think @Nokel81 was going to write something up. I don't know anything about mobx or how it works, never mind the fact it's provided as a global! 😄
Thanks for the mobx docs links -- especially the one about ObserverComponent since it shows me how to use this with a functional component. Lens docs tend to favor classical components; I almost never use those anymore.

But there's probably no need for such an actions since theme currently gets changed with Preferences page only. So when you switch the theme, app navigates away from Preferences and your component gets rerendered.

That's not the case if you're depending on JavaScript code to pick a theme object, which is typically the case when using CSS-in-JS, or when you have to hard-code color values for the custom scroll bars because they aren't provided as themed CSS variables by Lens... (plug for #1337 ).  But if you need to choose between one theme object or another, when you re-render, you'll still choose the old theme object. You need that hook to know when things change.

Yes I plan on working on those docs today once I finish up with my previous PRs.

I guess we can close this issue right after improving the docs and merge described samples https://github.com/lensapp/lens-extension-samples/pull/7

Seems like @k8slens/extensions does not export the Theme type, at least not in beta.2. The typings don't include anything related to the Theme object that I can see.

I guess we can close this issue right after improving the docs and merge described samples lensapp/lens-extension-samples#7

Those are great samples, but I feel they're missing theme switching by monitoring changes to the theme object. They all rely on CSS variable changes for theme updates, but that's not always adequate.

Seems like @k8slens/extensions does not export the Theme type, at least not in beta.2. The typings don't include anything related to the Theme object that I can see.

Looks like it's coming in beta.3 based on release indication on #1371


Add TARA token

Official announcement:
Silicon Valley-based Taraxa announced the listing of its TARA token on leading digital asset trading platforms - KuCoin, BitMax, and Gate.io. TARA/BTC, TARA/ETH, TARA/USDT markets are now open for deposit, withdrawal, and trading. The listing follows the token sale that saw the investment interest of nearly $150 million, with the upcoming release of Taraxa’s incentivized testnet that will let token holders earn block rewards and stake their TARA.
Project basic information:
Taraxa is the first-ever public ledger built specifically for the audit logging use case. With a slew of innovative ledger features, such as extremely high logic processing throughput, low inclusion latency, and low finalization without sacrificing security or decentralization, it aims to put on the blockchain unstructured, informal transactions that constitute more than 80% of the world’s data and cause disputes and profit loss across a variety of business verticals. The company already has several customers using pilot versions of applications built on top of the Taraxa network in China, Japan, and the US. The next milestone on the technical roadmap is the rollout of incentivized testnet with staking for all token holders.
Media publications:
https://news.bitcoin.com/sv-based-taraxa-revolutionizes-legacy-data-auditing-with-mathematically-provable-audit-trails/
https://www.nasdaq.com/articles/blockchains-most-overlooked-use-case%3A-informal-everyday-transactions-2021-03-05
https://www.newsbtc.com/interview/taraxas-steven-pu-on-problem-with-informal-transactions-and-driving-slack-inspired-dapps-adoption/
https://www.newsbtc.com/press-releases/silicon-valley-based-taraxa-completes-the-public-sale-prepares-to-list-on-exchanges/
Tradeable exchanges:
Gate.io, KuCoin, BitMax
Recommended Gas Limit: 60,000

In order to ensure the authenticity of the information submitted, please publish an announcement on your website or official social media channels and attach the corresponding link in “Official announcement”. We recommended a format similar to the following:
#imToken #1636 We are providing XXX token’s information on imToken. After completion, you can see the logo and full information inside imToken’s Token Manager.
Note:

1636 is the PR number, as in: https://github.com/consenlabs/token-profile/pull/1636 This number is the key to verify yourself as the rightful editor of the information to imToken.
The token information can only be changed after the official verification

Thanks so much guys - just tweeted to Taraxa's twitter.
On Mon, 29 Mar 2021 at 06:30, sfsy520 @.***> wrote:

In order to ensure the authenticity of the information submitted, please
publish an announcement on your website or official social media channels
and attach the corresponding link in “Official announcement”. We
recommended a format similar to the following:
#imToken #1636 https://github.com/consenlabs/token-profile/pull/1636 We
are providing XXX token’s information on imToken. After completion, you can
see the logo and full information inside imToken’s Token Manager.
Note:

1636 is the PR number, as in:
https://github.com/consenlabs/token-profile/pull/1636 This number is
the key to verify yourself as the rightful editor of the information to
imToken.
The token information can only be changed after the official
verification

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/consenlabs/token-profile/pull/6842#issuecomment-809040567,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALH7T3VPSRROXYPNHPDY35LTF7X4TANCNFSM4ZQPXPNA
.

--
-- Olya GreenContent & Communications | Emerging tech & Blockchain Read
on: https://www.technomads.wtf/ https://www.technomads.wtf/


[FEATURE] Add resizable columns and resizable vertical areas

[FEATURE] Add resizable columns and resizable vertical areas
Summary
SourceGit is great, but many parts of the User Interface (UI) cannot be resized or customized to the user's preferred width or height. This causes large usability problems, because text is truncated, even if it's a small amount of text, and it's not possible to see all the words or sentences.

Steps to reproduce the bugs

Launch SourceGit and load a typical Git repository, for example, see the screenshot.
In the list of Git commits, try to view the full name and email address of a committer. Try to resize the column to be bigger or smaller.
In the list of Git commits, try to view the full SHA Git ID of each commit. I want to see more than 10 characters. Try to resize the column to be bigger or smaller.
In the MESSAGE area that shows the Git commit message, try to display 10 lines of the Git commit message, by resizing it.
In the list of file changes of a Git commit, at the bottom, try to show more than 10 files in the list, by resizing it.

Expected Result

I should be able to resize all the columns mentioned above. (Also shown in the screenshot)

Actual Result

In the list of Git commits, the full name and email address cannot be seen, because the column is too small and it cannot be resized. It can only show about 6-10 characters maximum.
In the list of Git commits, the full SHA Git ID cannot be seen, because the column is too small and it cannot be resized.
In the MESSAGE area that shows the Git commit message, it will only show 2 lines, and it cannot be resized bigger or smaller. It's also impossible to select text across multiple lines.
In the list of file changes of a Git commit, I can only see about 2-3 lines, even when the window is full screen. The file list cannot be resized.

Impact

Usability problems - truncated text, cannot see the full words.
Non-customizable UI.
The UI does not adapt to different screen sizes or different window sizes.
Space is wasted in some places.

The information page shows the details of selected commit. The solution shows in your picture above is more likely to result in incomplete information presentation, especially if you're using a horizontal layout:

The commit SHA in list is not displayed incomplete, but displayed in abbreviated way. This is a common way to display commits in list. For example, this is the histories of a branch on Github:

The information page shows the details of selected commit. The solution shows in your picture above is more likely to result in incomplete information presentation, especially if you're using a horizontal layout:

Thanks for responding.
There will always be incomplete information displayed for any layout used, whether it's the horizontal layout or the vertical layout. In the example screenshot above in the Git history list on the left, it shows very heavily truncated Git messages, where only 24 characters are displayed. That's not enough for most people.
The important thing is that every user has different preferences for how they want this data to be displayed. Sometimes a user wants to see the long Git messages. Other times, they want to see the full name + email address of the committer.
That's why all of these things should be resizable, so that the user can choose which columns they want to see more or less of, at any time.
Everything needs to be resizable so that the user can change the display of data at any time.
The sidebar on the left is resizable (the place that shows "WORKSPACE" , "LOCAL BRANCHES" and so on). Please add the resize ability to all the other places.

Thanks for adding these new features 👍. I tested them on SourceGit version 8.20 (from 8 July 2024) and they work great! Well done. 😎


Xamarin.Forms issue

Hi,
the library seems great, but I have some initial problems :-( I installed NuGet packages into PCL and Droid projects, put sample LottieLogo1.json file inside Asset directory (Droid version), place sample XAML code into PCL:
xmlns:forms="clr-namespace:Lottie.Forms;assembly=Lottie.Forms"
...
  <forms:AnimationView
    x:Name="AnimationView"
    Animation="LottieLogo1.json"
    Loop="True"
    AutoPlay="True"
    VerticalOptions="FillAndExpand"
    HorizontalOptions="FillAndExpand" />

But when opening the page, the following error message is shown:

System.TypeLoadException: Could not load type 'Lottie.Forms.Droid.AnimationViewRenderer' from assembly 'Lottie.Forms.Droid, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'.

Any idea how fix that and why is it happening?
thanks!
Pavel

It seems you might not have updated all nugets, not installed it in the native project as well, use the linker which might remove some classes.

Hi Martin, thanks for your feedback! I tried to install Com.Airbnb.Android.Lottie, but it gave me the error below. I updated Xamarin.Forms to the latest version, but it didn't update any Xamarin.Android.xxx packages, could this be a problem? Any idea how to solve that? Thanks for any hints!
Unable to find a version of 'Xamarin.Android.Support.v7.AppCompat' that is compatible with 'Com.Airbnb.Android.Lottie 1.5.2 constraint: Xamarin.Android.Support.v7.AppCompat (>= 25.1.1)', 'Xamarin.Android.Support.Design 23.3.0 constraint: Xamarin.Android.Support.v7.AppCompat (= 23.3.0)', 'Xamarin.Android.Support.v7.MediaRouter 23.3.0 constraint: Xamarin.Android.Support.v7.AppCompat (= 23.3.0)', 'Xamarin.Forms <IP_ADDRESS>-pre2 constraint: Xamarin.Android.Support.v7.AppCompat (= 23.3.0)'.

Your Android project need to target API lvl 24 or higher. Also you need to update all support packages to 25.1.1.

Bummer, as far as I can tell, Xamarin.Forms (even the latest pre-release) doesn't support > 23.3 yet.
Nuget reports older versions 1.0.x don't have any dependencies. Would that work Martijn?

As you can see on Nuget: https://www.nuget.org/packages/Xamarin.Forms/<IP_ADDRESS>
The limit on v23 has been lifted. Just make sure you are on <IP_ADDRESS> or higher and target Android v24 or higher and everything will work.

Hi @martijn00. I was wondering if i can use your library on versions bellow Androidv24. Can i run this on a device with android 6?
Thanks,
Marco

Yes you can run it on below v24. Your animations just need to be supported. Look at the native project to find out which are.


Enforce that adminContextPath is set to /system

If set to /system: Do nothing
If set to something else: Throw
If not set at all: Set it to /system

This removes the need for any config changes for services --
all they need is the bundle. This is an enabler towards having
an iZettle Dropwizard flavor, with all necessary config,
that works OOTB.

:+1:


Support regular expression group route in Kong and Kong ingress CRD?

At now, We need the regular expression group of route in Kong, Like following example:
location /api/(\d+)/version/(\d+){
    proxy_pass http://test.server:7979/test_v4/$1/$2;
}

In Linux terminal:
[root@localhost egwcnf]# curl http://localhost:7979/api/1/version/2
RequestPath: /test_v4/1/2

Hey @dayongi. Take a look at https://docs.konghq.com/2.1.x/proxy/#using-regexes-in-paths and https://docs.konghq.com/2.1.x/proxy/#capturing-groups. Would that be of any help in your use-case? If not, please add more details here.

Thanks for your reply, I have been review it at two weeks ago, if use the capturing-groups mode, maybe should need to write a corresponding plugin. It's not what i want.
nginx.conf:
Like following configuration of nginx.conf.

server{
    listen 7979;

    location /api/(\d+)/version/(\d+){
        proxy_pass http://<IP_ADDRESS>:7979/test_v4/$1/$2;
    }
}

In upper nginx location, the first  (\d+) is equal to $1 and the second (\d+) is equal to $2.
In terminal:
[root@localhost ~]# curl http://localhost:7979/api/1/version/2
RequestPath: /test_v4/1/2

Like the example, the final proxy address is  http://<IP_ADDRESS>:7979/test_v4/1/2.

Hi @dayongi, have you checked the request transformer plugin?

closing for lack of feedback.  please feel free to reopen if still needed.


Update instructions for indy-node 20.04

Update indy-node with version that fixes the indy-node-control crashing issue; https://github.com/hyperledger/indy-node/pull/1741
Addresses the issue reported here; https://github.com/hyperledger/indy-test-automation/issues/113

Signed-off-by: Wade Barnes<EMAIL_ADDRESS>

thanks, @WadeBarnes


account-compression-js: Set @project-serum/anchor as a peer dependency

resolves https://github.com/solana-labs/solana-program-library/issues/4791

@ngundotra @nickfrosty I assume this PR is no longer need after #4864 change.


Update resnet_v2.py

I've added "resnet_arg_scope = resnet_utils.resnet_arg_scope" line to make sure that user can call resnet_v2.resnet_arg_scope(is_training). It is also present in resnet_v1.py

Can one of the admins verify this patch?

@tensorflow-jenkins test this please

@harungunaydin while this PR is waiting for review, it would be great if you could sign the CLA.

I signed it!


Automation Best Practices

The request
Looking to obtain better automation details for controlling the Puras. A few things I've noticed:
Turning off using the device "Pura Switch" doesn't seem to work. I need to change the "Select Fragrance" to "Off"
alias: Loft Pura Off
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.tyle_2nd_floor_group_motion
    to: "off"
    for:
      hours: 0
      minutes: 20
      seconds: 0
condition: []
action:
  - service: light.turn_off
    data: {}
    target:
      device_id:
        - f8330d0b811b3346772835b955e3376d
    enabled: true
  - service: select.select_option
    data:
      option: "Off"
    target:
      device_id:
        - f8330d0b811b3346772835b955e3376d
mode: single

Same thing for turning on. But I must also choose the "Number Set" for the Intensity.
alias: Kitchen Pura On
description: ""
trigger:
  - type: motion
    platform: device
    device_id: e282806df8715c1589fbc8075bcf873f
    entity_id: 64af6c043184a1e3d6ddb23cf3b7c2b6
    domain: binary_sensor
condition:
  - condition: state
    entity_id: input_select.mode
    state: Home
action:
  - service: light.turn_on
    data:
      color_name: aqua
      brightness_pct: 100
    target:
      device_id:
        - f5768d206b8fbca08efba0736c39fab8
  - service: select.select_option
    data:
      option: "Slot 2: Volcano"
    target:
      device_id:
        - f5768d206b8fbca08efba0736c39fab8
    enabled: true
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - service: number.set_value
    data:
      value: "4"
    target:
      entity_id:
        - number.kitchen_pura_diffuser_intensity
mode: single

Doing so requires a manual field entry for the Scent and the slot. For this example, "Slot 2: Volcano". There's no way to simply  "turn it on" regardless of scent. If I change the scent - I need to update the automation.
For some reason - the "switch.turn_on" service with the Pura device doesn't actually have a "switch" entirety. (Just for Ambient mode and Away mode"
I also need to add a delay when turning on the switches because there's no scent selected when it's turned off (by selecting no scent"), And the automation will fail. Sometimes, it takes longer than 5 seconds (in my example).
Can a new service be added to your integration to handle these items? Or a recommended blueprint?
New Puras
Must reload the Device Integration for new Puras to show up.
Screenshots
No response
Which Pura device(s) is this request for?

[X] Pura 3
[X] Pura 4
[ ] Pura Car
[X] Other (please specify in the additional information field below)

Additional information
No response

Turning off using the device "Pura Switch" doesn't seem to work. I need to change the "Select Fragrance" to "Off"
...
For some reason - the "switch.turn_on" service with the Pura device doesn't actually have a "switch" entirety. (Just for Ambient mode and Away mode"

There is no "Pura Switch" entity to control the fragrances as the primary way to control this device is by utilizing the select entity.

Same thing for turning on. But I must also choose the "Number Set" for the Intensity.

This functionality is similar to the app in that a fragrance must be on before adjusting intensity. However, both this integration and the app will turn the fragrance on to the previous intensity setting. There is no need to set the intensity after selecting a fragrance unless you wish to adjust it.

Can a new service be added to your integration to handle these items? Or a recommended blueprint?

There is a service to start a timer pura.start_timer which actually allows for all of the things you've talked about. You can select the device, optionally select the slot regardless of fragrance (or leave blank and it will choose the bay with the most fragrance remaining), set an intensity and a duration for it to run.
Some of the issues you have brought up are related to the entity model available in Home Assistant, how it natively displays things and the ease of use controls it provides while the other is based on choices I made to bridge that gap based on my interaction with both the Pura app and Home Assistant and trying to simplify how it shows up in Home Assistant. For instance, in the Pura app, to start a fragrance you have to navigate to the desired fragrance and then click "Start". But because of that, you know which fragrance you are in and a few other things. In Home Assistant, that could have been done by adding "sub devices" for each bay/slot which have their own switch, intensity, etc. It gets a little convoluted though. And because they can't both be on at the same time, it can cause more confusion and nuances with the interaction within Home Assistant and building automations.

Must reload the Device Integration for new Puras to show up.

I need to look and see if Home Assistant has made it easier to add new devices that show up. But it's definitely much simpler to reload the integration than to code and test the whole process, haha.

Thanks for the details here. Ultimately, I want to use my motion sensors to turn on and off my Puras in each room when occupancy changes (with duration delays). The "Away Mode" doesn't suit this need as it uses your phone to determine proximity, and that's not useful for individual rooms or multiple people in the house.
Your timer service is nice because it allows you to choose a slot without defining a fragrance, which may work. I don't need the timer, but I could simply set that to a high number and still turn it off by deselecting the fragrance. But your timer may still turn off at the end of the duration, even if I want to keep it on because of recent motion. Or if I set it for 20 minutes, the motion will reset the duration.
I'll try this out and see if it accomplishes the same outcome that I'm looking for. I think it may! Thanks!

Thanks for the details here. Ultimately, I want to use my motion sensors to turn on and off my Puras in each room when occupancy changes (with duration delays). The "Away Mode" doesn't suit this need as it uses your phone to determine proximity, and that's not useful for individual rooms or multiple people in the house.

This is exactly what I do with my Pura devices. Away mode and schedules just isn't intuitive enough for my use case. Another reason I actually like the timer is that it should allow for the device to turn off automatically in case there is an issue with the API (I haven't actually tested this). Also, if you start another timer, it will replace the existing timer on the device so you can keep "extending" it.

Thanks! I moved everything over to the service, and it looks like it's doing what I want. The timer function on the Pura side helps now that I see it getting reset with every detected motion. It does replace the existing timer on the device.
All good!! Thanks!


Empty JSON File

Scanner seemingly successfully scans all artifacts, but only spits out an almost empty Jason file:
({"format":"GOOD","version":1,"kamera_version":"1.2.4","source":"Inventory_Kamera"})

Hi there, I know it's been a while since this issue was opened but V1.2.5 has been released. Hopefully fixes in this version fix your problem. Please let us know if they're resolved, thanks!

Hi there, I know it's been a while since this issue was opened but V1.2.5 has been released. Hopefully fixes in this version fix your problem. Please let us know if they're resolved, thanks!

I tested it out again but couldnt get to the point where it finished scanning Artifacts, so it doesnt export anythint whatsoever :/
(I made a new Bug report on it, hope it helps ^^)


Broken Nixops builds when documentation is enabled

Describe the bug
Configurations break when documentation is enabled.
Error:
building all machine configurations...
error: --- ThrownError --------------------------------------------------------------------------------------------------------------------------------------------- nix-build
Nextcloud v18 has been removed from `nixpkgs` as the support for it was dropped
by upstream in 2021-01. Please upgrade to at least Nextcloud v19 by
declaring

    services.nextcloud.package = pkgs.nextcloud19;

in your NixOS config.

[1] https://docs.nextcloud.com/server/18/admin_manual/release_schedule.html

Complete trace here
To Reproduce
Steps to reproduce the behavior:

Checkout https://github.com/cab404/nixpkgs-nextcloud-bug
nix-shell -p nixFlakes
nix develop / direnv to get correct environment
nixops create -n testconfig ./machines.nix; nixops deploy -d "output uuid of nixops create"

Notify maintainers

@Ma27
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
 - system: `"x86_64-linux"`
 - host os: `Linux 5.11.2, NixOS, 21.05.20210306.102eb68 (Okapi)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4pre20201205_a5d85d0`
 - channels(root): `"nixos-21.03pre269343.758b29b5a28"`
 - channels(cab): `"home-manager, nixos-stable-20.09.3087.2394284537b"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Since it's related to Nextcloud, I'll take a look tonight.

@cab404 can you please check if you didn't do an accidental mixup of multiple nixpkgs versions? My first attempt to nixops deploy --build-only failed during evaluation (with a different error though) because of my NIX_PATH. By running env NIX_PATH=nixpkgs=/nix/store/ki85w24ipk7czgqqr1n86h37y1by5hfx-source nixops deploy -d testconfig --build-only (according to nix develop -vv, that's the store-path points to the nixpkgs input you're using) I managed to build your deployment.
The store-path I got was /nix/store/5mvxgz2pjal8zyi7lvjy0qn146mlajab-nixops-machines btw.

Ran bisect on nixpkgs, points to nextcloud commit
git bisect start
# good: [a2040f58f31c6167fa3a877d49660420a0dfe71a] Merge pull request #114451 from adisbladis/libgccjit-darwin
git bisect good a2040f58f31c6167fa3a877d49660420a0dfe71a
# bad: [f137bcd5c92906ae0f924769a95b8c8e6602f90b] awscli: 1.19.27 -> 1.19.29
git bisect bad f137bcd5c92906ae0f924769a95b8c8e6602f90b
# bad: [f38b9b258f3f4db5ecf7dd27a7d5b48f23202843] Merge pull request #113714 from ilian/steam-firewall
git bisect bad f38b9b258f3f4db5ecf7dd27a7d5b48f23202843
# good: [28360094d87a15cfe9ef67c51380713a9bafec47] pythonPackages.sfepy: 2019.4 -> 2020.4
git bisect good 28360094d87a15cfe9ef67c51380713a9bafec47
# bad: [09cf3142e0d1a67830fdd39341bdac4f3a75f39b] Merge master into staging-next
git bisect bad 09cf3142e0d1a67830fdd39341bdac4f3a75f39b
# bad: [2c0e6a0e69af6c9a132f93d8500d50606e074f1f] Merge pull request #114586 from hjones2199/indi-full
git bisect bad 2c0e6a0e69af6c9a132f93d8500d50606e074f1f
# good: [2afe5198cdd1b7f59f07ddcb9ea4438119890c0c] Merge pull request #114283 from zseri/zs-apc-spdu-ctl
git bisect good 2afe5198cdd1b7f59f07ddcb9ea4438119890c0c
# bad: [f4bfd7512879573461f6b92ce8b2a826e5e5d27b] Merge pull request #115141 from TredwellGit/electron_12
git bisect bad f4bfd7512879573461f6b92ce8b2a826e5e5d27b
# good: [6402bee9d4ace8edb050b08d49fdc4b69f45f07e] Merge pull request #113203 from leonardp/ceph-fix
git bisect good 6402bee9d4ace8edb050b08d49fdc4b69f45f07e
# good: [4003206152592b239d8bd02dca4fdb3966a880d8] Merge pull request #115131 from adisbladis/emacs-pdf-tool-darwin
git bisect good<PHONE_NUMBER>592b239d8bd02dca4fdb3966a880d8
# bad: [b1ef946de6c436a3544bb19c0665a2622de8a06e] nextcloud19: update todo note
git bisect bad b1ef946de6c436a3544bb19c0665a2622de8a06e
# bad: [b1f65920c357b5cdde7123fabdc7a2af4d07f93e] nixos/nextcloud: add `defaultPhoneRegion` option for v21
git bisect bad b1f65920c357b5cdde7123fabdc7a2af4d07f93e
# bad: [f7011c70f30acf0fe5a229b77e4ad22041b8872e] nextcloud21: init at 21.0.0, set as default version
git bisect bad f7011c70f30acf0fe5a229b77e4ad22041b8872e
# first bad commit: [f7011c70f30acf0fe5a229b77e4ad22041b8872e] nextcloud21: init at 21.0.0, set as default version

@cab404 can you please check if you didn't do an accidental mixup of multiple nixpkgs versions? My first attempt to nixops deploy --build-only failed during evaluation (with a different error though) because of my NIX_PATH. By running env NIX_PATH=nixpkgs=/nix/store/ki85w24ipk7czgqqr1n86h37y1by5hfx-source nixops deploy -d testconfig --build-only (according to nix develop -vv, that's the store-path points to the nixpkgs input you're using) I managed to build your deployment.
The store-path I got was /nix/store/5mvxgz2pjal8zyi7lvjy0qn146mlajab-nixops-machines btw.

Looks promising, will try in a sec

@Ma27 Yup, your solution works!
I guess the only thing left to find out is why eval in nixops is done via system nixpkgs)

@cab404 I guess this happens because it looks up in NIX_PATH by default. IIRC you should be able to set e.g. network.nixpkgs = ....


ENH Mechanism for sign up instructions + privacy page (#456)

Backport of #456 to master. Partially addresses https://github.com/paris-saclay-cds/ramp-board/issues/440
Should have no immediate impact when deployed to ramp.studio instance, if only the links to slack would need to be put in the config.yaml, instead of them being hardcoded.

could the doc make explicit the way it is (should be) done ramp.studio as an example.
it's easy for me to update an example for my usecase. Filling blanks from scratch is harder.
my 2c
thanks so much @rth for taking the time to do this.

I think I have addressed all comments, and improved the documentation a bit more. LGTM is a false positive.


Issue with HG Converter indicator radiobutton

Issue:
The HG Converter Indicator radio button should have one of the radio buttons selected by default. Currently no selection is made
Testing Reference:
Radio buttons can be found on the following screens:

Loads - Second Normal Indicator
Location Attributes - Duct Indicator, Bypass Indicator
System Component - Hg Converter Indicator
Analyzer Range - Dual Range Indicator

Bug Fixed