Prometheus format changed in v2.0.0

I'm working on upgrading to v2.0.0 but I'm having some concerns.
When running my scenario the Prometheus scraping endpoint shows the following:
# HELP demo_queue_size Amount of active messages of the 'myqueue' queue # TYPE demo_queue_size gauge demo_queue_size 2895

While in the past it showed the following:
# HELP demo_queue_size Amount of active messages of the 'myqueue' queue
# TYPE demo_queue_size Gauge
demo_queue_size 2316

This feels like a bug as this is not according to the Prometheus format. (docs)
More details in tomkerkhove/promitor #153

The only thing that I do is this: ([source]):
app.UsePrometheusServer(prometheusOptions =>
{
    prometheusOptions.MapPath = scrapeEndpointPath;
    prometheusOptions.UseDefaultCollectors = false;
});

And writing via:
var gauge = Metrics.CreateGauge(metricDefinition.Name, metricDefinition.Description);
gauge.Set(foundMetricValue);

I checked Promitor code. Everything is fine.

I need more information for debug or some unit tests

You'll need to check the branch of the PR. Master is fine currently.
I'd love to give you more info, but that's all I have..

I can't reproduce this...
Maybe your browser wrong display '\n'?

That's exactly it - Edge is not showing it correctly and works fine in Chrome.
Sorry for this lame issue & your waste of time but thanks for having a look!
Closing issue.

hi guys, I don't know if this is the same issue but I'm seeing this when using Prometheus.Client.Owin and its related to the contentType defaulting to text/html instead of text/plain.
I have a PR to fix https://github.com/PrometheusClientNet/Prometheus.Client.Owin/pull/6

A-ha, that explains a lot. Thanks!


how can download video in .mp4 format?

I am able to download Youtube video in .WebM format.
But I need video to be downloaded in .MP4 format.
I am unable to find a way to specify the response format for GetVideo method.
I am using this in Xamarin.iOS,it only downloads in .WebM format,but I need in .Mp4 to ply video in iPhone.

You need to use GetAllVideosAsync and filter the results according to your liking:
var allVideos = await YouTube.Default.GetAllVideosAsync("...");
var mp4Videos = allVideos.Where(_ => _.Format == VideoFormat.Mp4);

Thanks, @i3arnon.
Harikrishnav, does this work for you?

I  am checking,let you know once it  worked for me.
On Nov 11, 2015 6:40 AM, "James Ko"<EMAIL_ADDRESS>wrote:

Thanks, @i3arnon https://github.com/i3arnon.
Harikrishnav, does this work for you?
—
Reply to this email directly or view it on GitHub
https://github.com/jamesqo/libvideo/issues/22#issuecomment-155621486.

@i3arnon,
Thank for your suggestion.
it is working good for me,i am able to play video's in iPhone.

Awesome! :smile:


how to show an angel mark？

like this:

and if i want to highlight the area formed by the sides of the angel and the mark, what should i do...

See this

angle.set_fill(GREEN,0.7)
angle.set_stroke(GREEN,4)

Play with the numbers

Thanks a lot


Out of date quota behaviors for Google API

The Google geocoding method seems to have a limit set at 2500 API calls. Presumably this is in order to enforce Google's old 2500 QPD limit. Seeing as that limit has since been removed, it seems the library should be updated to stay up to date by removing its enforcement of that limit.

Yeah, I also met the same problem. Hope it fixed soon!

Google now requires an API key and enabled billing for each project. link
Extend the range of 'key' parameter values to accept manual input for API keys, then commit.

Hi there, i think the module already provide this feature. In the file "keys.py" it's trying to pull from the environment the folling vars:
google_key = os.environ.get('GOOGLE_API_KEY')
google_client = os.environ.get('GOOGLE_CLIENT')
google_client_secret = os.environ.get('GOOGLE_CLIENT_SECRET')

arcgis can be finished.
import geocoder
g = geocoder.arcgis('San Francisco, CA')
print g.latlng
[37.777120000000025, -122.41963999999996]
[Finished in 2.1s]


perf(velocity_smoother): decrease the processing time

Description
cherry-pick several changes for the performance improvement of velocity_smoother

https://github.com/autowarefoundation/autoware.universe/pull/8028
https://github.com/autowarefoundation/autoware.universe/pull/8030

not related changes

https://github.com/autowarefoundation/autoware.universe/pull/8161
https://github.com/autowarefoundation/autoware.universe/pull/8029

Related links
Parent Issue:

Link

How was this PR tested?
Notes for reviewers
None.
Interface changes
None.

Effects on system behavior
None.

I will merge this after XX1 v0.46.0 release today.


Font support

https://threejs.org/docs/#manual/en/introduction/Creating-text
https://github.com/Jam3/three-bmfont-text
http://www.angelcode.com/products/bmfont/

This was partially implemented in https://github.com/dimensionalpocket/3d-client-three/pull/11.
The full implementation still includes text that can be rendered as a sprite, for HUDs and stuff.


Can't retry migration signing if cancelled

If i cancel the first transaction, i have to refresh the page to retry and loader state stays the same:
https://github.com/kodadot/nft-gallery/assets/36627808/6b247fd0-33cd-48d4-9029-eed39c6eebfd

@kodadot/internal-dev Hi, in that video, prury cancelled the talisman popup. Is there a way to capture that state? I only get the same status with Unknown. Would be good if I can get other than Unknown https://github.com/kodadot/nft-gallery/blob/0e16eb15a72909df15b5671d1803acf7a5839fda/composables/useTransactionStatus.ts#L9
At the moment, I added a "try again" button when the tx threw an error https://github.com/kodadot/nft-gallery/pull/9139

We can extend with cancelled, the signer returns that as far as i know

We can extend with cancelled, the signer returns that as far as i know

can anyone show me the code example? or help me to extend useTransactionStatus and add cancelled status?

can anyone show me the code example? or help me to extend useTransactionStatus and add cancelled status?

useMetaTransaction line 74
const isCancelled = e.message === 'Cancelled'

most probably you would have to extend useTransactionStatus to give you optimal response

Tried again on canary, 15m after PR got into prod and problem persists

can anyone show me the code example? or help me to extend useTransactionStatus and add cancelled status?

useMetaTransaction line 74
const isCancelled = e.message === 'Cancelled'

most probably you would have to extend useTransactionStatus to give you optimal response

thank you 🙏

Tried again on canary, 15m after PR got into prod and problem persists

sorry, for cancelled action I just added here https://github.com/kodadot/nft-gallery/pull/9302


The question of view

I upgraded the PyTorch version to 1.12.0, so I successfully tested the model, but when I used snow_visualize. py to view the lidar points in toy_snowyKITTI, error is "could not find config/semantic-kitti-mos.yaml."
the reason is  in README.md, ### Visualize:   python3 snow_visualize.py -d root/toy_snowyKITTI/dataset/ -dc root/networks/train/tasks/semantic/config/labels/snowy-kitti.yaml -p /your/predictions/folder/ -s 22
-dc should be -c.  then i successfully viewed the effect of denoising.
I just came into contact with the research on noise reduction in bad weather. Your research surprised me. I hope that one day I can propose a good algorithm and open source it .

Thank you, README.md is now fixed


Filtering, sorting and paging on nested entities?

I'm attempting to use apollo to tie together a number of rest endpoints, and I'm stuck on how to filter, sort and page the resulting data.  Specifically, I need to filter and/or sort by nested values.   I've come up with a solution using formatResponse, but am wondering if there is a better way.
To illustrate, I've boiled down the solution to the most minimal set of files that i could think of:
data.js represents what would be returned by 2 fictional rest endpoints:
export const Authors = [{ id: 1, name: 'Sam' }, { id: 2, name: 'Pat' }];

export const Articles = [
  { id: 1, title: 'Aardvarks', author: 1 },
  { id: 2, title: 'Emus', author: 2 },
  { id: 3, title: 'Tapir', author: 1 },
]

the schema is defined as:
import _ from 'lodash';
import {
  GraphQLSchema,
  GraphQLObjectType,
  GraphQLList,
  GraphQLString,
  GraphQLInt,
} from 'graphql';

import {
  Articles,
  Authors,
} from './data';

const AuthorType = new GraphQLObjectType({
  name: 'Author',
  fields: {
    id: {
      type: GraphQLInt,
    },
    name: {
      type: GraphQLString,
    }
  }
});

const ArticleType = new GraphQLObjectType({
  name: 'Article',
  fields: {
    id: {
      type: GraphQLInt,
    },
    title: {
      type: GraphQLString,
    },
    author: {
      type: AuthorType,
      resolve(article) {
        return _.find(Authors, { id: article.author })
      },
    }
  }
});

const RootType = new GraphQLObjectType({
  name: 'Root',
  fields: {
    articles: {
      type: new GraphQLList(ArticleType),
      resolve() {
        return Articles;
      },
    }
  }
});

export default new GraphQLSchema({
  query: RootType,
});

And the main index.js is:
import express from 'express';
import { apolloExpress, graphiqlExpress } from 'apollo-server';
var bodyParser = require('body-parser');
import _ from 'lodash';
import rql from 'rql/query';
import rqlJS from 'rql/js-array';

import schema from './schema';
const PORT = 8888;

var app = express();

function formatResponse(response, { variables }) {
  let data = response.data.articles;

  // Filter
  if ({}.hasOwnProperty.call(variables, 'q')) {
    // As an example, use a resource query lib like https://github.com/persvr/rql to do easy filtering
    // in production this would have to be tightened up alot
    data = rqlJS.query(rql.Query(variables.q), {}, data);
  }

  // Sort
  if ({}.hasOwnProperty.call(variables, 'sort')) {
    const sortKey = _.trimStart(variables.sort, '-');
    data = _.sortBy(data, (element) => _.at(element, sortKey));
    if (variables.sort.charAt(0) === '-') _.reverse(data);
  }

  // Pagination
  if ({}.hasOwnProperty.call(variables, 'offset') && variables.offset > 0) {
    data = _.slice(data, variables.offset);
  }
  if ({}.hasOwnProperty.call(variables, 'limit') && variables.limit > 0) {
    data = _.slice(data, 0, variables.limit);
  }

  return _.assign({}, response, { data: { articles: data }});
}

app.use('/graphql', bodyParser.json(), apolloExpress((req) => {
  return {
    schema,
    formatResponse,
  };
}));

app.use('/graphiql', graphiqlExpress({
  endpointURL: '/graphql',
}));

app.listen(
  PORT,
  () => console.log(`GraphQL Server running at http://localhost:${PORT}`)
);

For ease of reference, these files are available at this gist.
With this setup, I can send this query:
{
  articles {
    id
    title
    author {
      id
      name
    }
  }
}

Along with these variables (It seems like this is not the intended use for the variables, but it was the only way I could get the post processing parameters into the formatResponse function.):
{ "q": "author/name=Sam", "sort": "-id", "offset": 1, "limit": 1 }

and get this response, filtered to where Sam is the author, sorted by id descending, and getting getting the second page where the page size is 1.
{
  "data": {
    "articles": [
      {
        "id": 1,
        "title": "Aardvarks",
        "author": {
          "id": 1,
          "name": "Sam"
        }
      }
    ]
  }
}

Or these variables:
{ "sort": "-author.name", "offset": 1 }

For this response, sorted by author name descending and getting all articles except the first.
{
  "data": {
    "articles": [
      {
        "id": 1,
        "title": "Aardvarks",
        "author": {
          "id": 1,
          "name": "Sam"
        }
      },
      {
        "id": 2,
        "title": "Emus",
        "author": {
          "id": 2,
          "name": "Pat"
        }
      }
    ]
  }
}

So, as you can see, I am using the formatResponse function for post processing to do the filtering/paging/sorting.   I cannot do the filtering on the rest endpoints in all cases because they are separate microservices with separate databases.  (i.e. I could filter on title in the rest endpoint for articles, but not on author.name). Likewise with sorting.  And without filtering and sorting, pagination cannot be done on the rest endpoints either.
So, my questions are:

Is this a valid use case?
Is there a more canonical way to do filtering on deeply nested properties, along with sorting and paging?

This isn't really an issue with the Apollo GraphQL Server, so GitHub issues is maybe not the right place to have the discussion. Perhaps try Slack or Stack Overflow?
However, I am pretty sure that sorting and filtering should be done in arguments on fields, for example the articles field in this case. I think the formatResponse function shouldn't be used for application concerns like this.
I don't know if this matters to you, but most GraphQL caching mechanisms like Apollo Client and Relay won't be able to handle this at all because they expect the result of the query to be specified entirely by the query fields and arguments, as combined with variables.


Docs overhaul

Still got a lot more to do, but it's a start

My LSP has been broken for a few weeks, so format on save has been hit or miss :upside_down_face:

Alright. I'm thinking:

Merge this as-is
Do a final pass over the API tomorrow to cleanup any last minute things
Publish a beta
People can test out while I finish docs
All of the steps for going for an official release


RNN to model  lowpass filter

I would like to simulate lowpas filter IIR Infinite impulse response with high time delay.
I know input values X(n), X(n-1), X(n-2)  ...   and  output valuesY(n), Y(n-1), Y(n-2) because I recorded it's from physical device
Y(n)=a1 x Y(n-1)+a2 x Y(n-2)+...+ak  x Y(n-k)+b0 x X(n)+b1 x Y(n-1)+...+bk x X(n-k)
X and Y are one dimensional, I will be grateful for suggestions what is the best order of recurent layers?
What is the best way to split data for training and validation set? Maybe someone solved similar problem.
Practically, I would like to make RL controler for temperature bath and I need to prepare simulator at first. X values are {0 - heater off, 1 - heater on}, Y values are measured temperatures.
Delay is the time between turning on/off the heater and  changing the measured temperature (delay is about 70 second, sampling 5 s).
I found something similar  but I need to use IIR filter not FIR, and I thing RNN can be beter than only dense layers.

@PeterPirog Thanks for the issue.
I suggest you to go these places for help.
Here is only for bug reports and feature requests.


errorprone :: suppress HidingField

only occurs when testing classes use import ch.qos.logback.classic.Logger; against UnitTest's slf4j logger

only occurs when testing classes use import ch.qos.logback.classic.Logger; against UnitTest's slf4j logger

Occurs when testing classes that extend UnitTest declare their own logger field that hides UnitTest's existing protected logger field.  Might be able to remove the masking fields and use the inherited one rather than suppressing the warning.

only occurs when testing classes use import ch.qos.logback.classic.Logger; against UnitTest's slf4j logger

Occurs when testing classes that extend UnitTest declare their own logger field that hides UnitTest's existing protected logger field. Might be able to remove the masking fields and use the inherited one rather than suppressing the warning.

The logger could be removed in LogbackTesterTest and allow it to use the UnitTest logger if wanted. In the other three tests, since logger.addAppender() & logger.detachAppender() are called, the loggers in those testing classes cannot be removed


UX enhancement

when I explore a blog first time, I don't know the author using utterance and need to click the green button to link to GitHub fist, the TEXT AREA just show nothing when I try to click on it many times.
Is there any possibility that when I click textarea, it can auto pop out  or show anything different that tell what I should do first since I didn't see any change, I may think lag of network, or Browser Dumping...

this is fixed


Improved source code readability

Corrected position of œị, it was with the Other Extensions monads instead of the Other Extensions dyads.

This pull request is useless compared to the major advancements Jelly has recently had, so I'm closing it.


Babel error when updating to version 0.2.15

I am getting the below error after upgrading from version 0.2.12 to version 0.2.15:

I am not using Babel so not sure why this is happening
I am currently using:
node v6.3.0
npm v4.0.2
webdriverio v4.5.1
wdio-allure-reporter v0.1.2
wdio-selenium-standalone-service v0.0.7
wdio-visual-regression-service v0.5.0
cucumber v1.3.1
All tests are run directly on my computer through the commandline and the only thing that has changed was webdriverio from version 4.4.0 to 4.5.1 and since reverting wdio-cucumber-framework back to the version i was using previously, my framework is working as expected.

This now seems to be no longer occuring therefore closing this ticket


Add Board.node method

It will allow developers to create their own nodes from functions:
board.node((input) => {
  ...
  return outputs;
});

TODO:

[x] Implementation
[x] Documentation
[ ] Tutorial Chapter

Random question: Why not use runJavascript (or a small modification of it) and then it's serializable?
Of course, that's not the same in that this version here shared the JS context with the board and so can read/write other variables, reuse imports, etc., but is that a feature or a bug?

OMG. What if a Kit is just a kind of a Board that has lots of node nodes placed on it? It might even have wires to contain demos! Then, the board.toKit method turns it into a ready-to-publish kit or something?

I am going to move this issue out of M0, so that we have time to cook this node.


fix loader on the enablePayments page

Details

Fixed Issues

$ Fixes #4392
Tests | QA Steps

Navigate to staging.new.expensify.com/enable-payments.
Refresh the page

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[ ] iOS
[ ] Android

Screenshots

Web

https://user-images.githubusercontent.com/24370807/128567424-4989d78b-be82-4165-94b3-510ff79a3fdb.mp4
Mobile Web

Desktop

iOS

Android

Closing this PR in favor of another solution which I patched in the ONYX.


Dropdown - unable to select option when click event suddenly gives a vscrollbar based on container div

Hi Paul,
I'm using jExcel v4 and placed jExcel spreadsheet inside a DIV. Spreadsheet contains dropdown column.
My site is themed using a bootstrap template and hence the DIV  is styled as bootstrap "box" having class = "box-body".
Observation is as long as DIV's bottom edge is not visible on browser everything is working fine, i.e. clicking the dropdown shows me it's options nicely.
But the problem starts the moment I scroll down (using browser scrollbar) and bottom edge of DIV box comes into view.
Then double clicking the same cell dropdown suddenly creates a vertical scrollbar(overflow) and then I had to scroll it down to get to option, but on click on that "strange" scrollbar my options disappears ... so it becomes hard to select an option.
Please see attached screenshot what I meant. In this image I've shown all 3 states

dropdown not clicked
dropdown clicked and working fine (Container DIV bottom edge not visible on browser window)
dropdown clicked with strange scrollbar (Container DIV bottom edge is

visible on browser window)

Additional Comment:
Issue observed on both Chrome (v 83.0.4103.61) and IE 11.1992

This also happens on Firefox 87.


Redis internal URLs cause build errors

Is there an existing issue for this?

[x] I have searched the existing issues

Describe the bug
When attempting to use a Redis internal URL, with both the Redis image and the app image running on the same docker network, I get a getaddrinfo ENOTFOUND [Internal IP] error:

To reproduce
Using coolify, create a Redis container and get an internal URL.
Example of internal URL:
redis://:4bZB02N1qAYxzuCq23TfPtnV0hIOU3Ls5293UzzswWCflojrwGpTS9VHgzzDFmzB@137a13k4d3zd:6379/0
Plug this URL into an env variable and attempt to build your web-app (that's on the same network) using nixpacks.
Expected behavior
No response
Environment
Coolify v4
VPS runs Ubuntu 22.04 and is fully updated as of today.
Nixpacks image is ubuntu-1707782610

I'm not too sure this would be an issue with nixpacks, is the builder on coolify part of the private network?

I'm not too sure this would be an issue with nixpacks, is the builder on coolify part of the private network?

If I'm not wrong, the builder is part of the network. When I asked about this issue in the Coolify support server, they said that the issue came from nixpacks.

Can you please provide an example repo/code to reproduce this. Are you unable to connect to a separate Redis container during the build process?

Can you please provide an example repo/code to reproduce this. Are you unable to connect to a separate Redis container during the build process?
Sadly I can't necessarily reproduce the code as a github repo, but I can provide step-by-step instructions on how to do it. And no, I am not able to connect to a seperate Redis container.

Several users have ran into the issue of not being able to connect to databases while building with nixpacks on coolify, so this could very well be a coolify issue. Sadly their server / github is no help, and I've gotten nearly no help in the past month.
One alternative I see would be to somehow prevent the usage of Redis during build time, and somehow delay it to be used after the app is built. I dont have much Redis experience so I have no idea if thats even possible.
To recreate this issue on ubuntu, follow these steps:

Install coolify using: curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Spin up a Redis instance through the coolify dashboard
Attempt to build any app that uses Redis. In my case it's a SvelteKit web app which uses the "redis" node library.

We can try ruling out nixpacks, can you try to build your app with a Dockerfile instead? if you get the same error then this would solely be a coolify issue.

But I still think that the issue is with coolify itself, not nixpacks. Others have said that this issue arises specifically when using nixpacks on coolify.

Okay I finally got a response and Coolify said they're working on it. I'm closing this issue because it's not a nixpacks issue.


[github-actions] test_plat_udp_accessiblity.py fails intermittently

Describe the bug
tests/scripts/thread-cert/border_router/test_plat_udp_accessiblity.py fails intermittently.
Console/log output

logs_65181.zip
thread-border-router-results.zip

logs_9004.zip
thread-1-2-backbone-results.zip

logs_9249.zip
thread-1-2-backbone-results.zip

logs_97509.zip
thread-border-router-results.zip

logs_12317.zip
thread-1-2-backbone-results.zip

https://github.com/openthread/openthread/runs/5544983242?check_suite_focus=true

Closing stale issue.


Add wbali to Contributors list

@wbali, I'm quite elated about your PR. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a PR and learned that I merged it?


New Xarray accessor for DEMs through xDEM

Hi all,
(Co-opening in rioxarray due to the raster nature of the accessor: https://github.com/corteva/rioxarray/issues/687)
Following what is asked in the doc, I'm letting you know that we intend to write an xarray accessor to enable functions specific to digital elevation models in our package xDEM! :slightly_smiling_face:
The accessor would mirror all the functionalities we have (and future ones):

Vertical CRS transformation (not yet supported by rasterio so built on top of pyproj directly, would build on top of rioxarray in the accessor),
Terrain attributes (I see a bit of overlap with xarray-spatial in "Surface": https://xarray-spatial.org/user_guide/surface.html for some of these; we have more published versions which can be parametrized, so I guess that's OK? I could start a discussion there to coordinate future development),
3D registration,
Terrain corrections,
Error estimation and propagation (may be moved to GeoUtils as not specific to DEMs but all rasters, see https://github.com/pydata/xarray/issues/8041; eventually using ObsArray).

I was thinking of using the accessor name dem, e.g.:  ds.dem.to_vcrs(), ds.dem.profile_curvature() or ds.dem.coregister(). I didn't catch any overlap with other efforts. Would that work fine?
Thanks! (and for the great work on xarray!)

Feel free to also include this project to https://docs.xarray.dev/en/stable/ecosystem.html#ecosystem via a PR.
Seeing that finding out which accessor namespaces are occupied is not a trivial task, maybe we should add a section about that in the above doc?

Thanks @headtr1ck! Will do this soon.
Agreed, a little table with accessor names would be useful, especially when many Xarray-related projects listed don't actually use any accessor, which is also good info. I think some projects are migrating to the accessor logic, it could be the occasion to tag them in a common PR and ask for an update?


Version 0.6.3 fails under Windows under VS Code: Error file:///c%3A//... could not be converted back to a URL

From vscode logs:
[Trace - 12:41:10 PM] Sending notification 'textDocument/didOpen'.
Params: {
    "textDocument": {
        "uri": "file:///c%3A/work/bazel_plain/sample.bzl",
        "languageId": "starlark",
        "version": 1,
        "text": "x = 7;\n\ny = hello();\n"
    }
}

Error: `file:///c%3A/work/bazel_plain/sample.bzl` could not be converted back to a URL
[Info  - 12:41:10 PM] Connection to server got closed. Server will restart.

(one may enable logs using: https://github.com/bazel-contrib/vscode-bazel/pull/425)
Similar, slightly different error under neovim:
[DEBUG][2024-11-29 16:44:21] .../vim/lsp/rpc.lua:286	"rpc.send"	{
  jsonrpc = "2.0",
  method = "textDocument/didOpen",
  params = {
    textDocument = {
      languageId = "bzl",
      text = "x = 7;\n\ny = hello();\n",
      uri = "file:///C:/work/bazel_plain/sample.bzl",
      version = 0
    }
  }
}
[ERROR][2024-11-29 16:44:21] .../vim/lsp/rpc.lua:770	"rpc"	"bazel-lsp"	"stderr"
"Error: `file:///C:/work/bazel_plain/sample.bzl` could not be converted back to a URL\n"

Here is what neovim sends under Linux where it works:
[DEBUG][2024-11-29 16:56:25] .../vim/lsp/rpc.lua:286	"rpc.send"	{
  jsonrpc = "2.0",
  method = "textDocument/didOpen",
  params = {
    textDocument = {
      languageId = "bzl",
      text = "x = 7;\n\ny = hello();\n",
      uri = "file:///tmp/bazel_plain/sample.bzl",
      version = 0
    }
  }
}

Looks like this error comes from here: https://github.com/facebook/starlark-rust/blob/7dd526ad8f2f0e275aa1575a845038544e24bfee/starlark_lsp/src/server.rs#L237

Can this be closed now after merging #64?

Yes, double checked right now that it works under Windows.
For some reason was not able to build bazel-lsp on current HEAD though, running git-bisect shows this PR as culprit: https://github.com/cameron-martin/bazel-lsp/pull/69
I am getting an errors like:
error[E0432]: unresolved import `winapi::shared::winerror`
   --> ../rules_rust~~_crate~~~crate~crates__dirs-sys-next-0.1.2/src/lib.rs:131:9
    |
131 |     use winapi::shared::winerror;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^ no `winerror` in `shared`
    |

I have downloaded also bazel-lsp.exe from release PR job (https://github.com/cameron-martin/bazel-lsp/actions/runs/12307052626/job/34349973144?pr=80) and it works as expected.


Remove docker CI for old swift versions

@yim-lee can you remove the 5.4 and 5.5 docker CI for vscode-swift, thanks

@adam-fowler CI for Swift 5.4 and 5.5 have been removed

@adam-fowler CI for Swift 5.4 and 5.5 have been removed

Thank you


Add fourQueen problem in cpp

please assign me this issue @CostGranda

pls assign me this issue @1dharode

Please assign this issue to me

Hi @1dharode , Kindly please assign me this issue.

Hello, Please assign this issue to me.


Update README to deal with multiple examples

After #395 and resulting PR #396, some exercises will have multiple examples. We should add instructions for that in the README once we finalise how that will look.
We may want to defer this until after we decide how to deal with #397.

We still need to rewrite the section "Running the tests" in the README.md file.


Update create document

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: jeffsee55:x: tina-cloud-app[bot]You have signed the CLA already but the status is still pending? Let us recheck it.

I just create a new repository from the starter template, and I'm getting empty template when trying to add a new blog post:


Loading home page takes too long

Currently, https://next.datahub.io/ is taking ~3s to load - we should get this under 1s. Right now, I think we should just hard code the info for the front page into the app (so no look ups etc ...).
Acceptance criteria

[ ] front page loads significantly quicker than the current one

Tasks

[ ]

Whilst this can be annoying for local dev and we could improve performance, this is low on priority list for now IMO.

Closing for now as WONTFIX. We will reopen in the future if necessary.


Adopt PEP 563, PEP 585, and PEP 604

Proposed refactor
We've dropped support for Python 3.6, which means we can use the new annotations format.
Motivation
New shiny things are nice
Pitch
Adopt PEP 585, PEP 604, and PEP 563.
We can do this automatically with the following sequence of commands:
# adds the future import to all files
isort -a "from __future__ import annotations" --append-only pytorch_lightning

# lets pyupgrade do its thing and use the new notation
pre-commit run pyupgrade --all-files

# remove the unused `from typing import ...` imports
autoflake -ir --remove-unused-variables pytorch_lightning

# format everything
pre-commit run black --all-files

Although some manual cleanup will be necessary because isort will add the import to all files, even those who don't need the __future__ import
Additional context
In regards to non-quoted annotations, there are talks of replacing PEP 563 with PEP 649. I don't think it impacts our project, but depending on the resolution of the latter the import statement might change.
Also, we might want to delay this until 1.6 will be released, to avoid conflicts with the bug-fix branch.

If you enjoy Lightning, check out our other projects! ⚡

Metrics: Machine learning metrics for distributed, scalable PyTorch applications.

Lite: enables pure PyTorch users to scale their existing code on any kind of device while retaining full control over their own loops and optimization logic.

Flash: The fastest way to get a Lightning baseline! A collection of tasks for fast prototyping, baselining, fine-tuning, and solving problems with deep learning.

Bolts: Pretrained SOTA Deep Learning models, callbacks, and more for research and production with PyTorch Lightning and PyTorch.

Lightning Transformers: Flexible interface for high-performance research using SOTA Transformers leveraging Pytorch Lightning, Transformers, and Hydra.

cc @justusschock @awaelchli @akihironitta

Looks like this would break the LightningCLI so will have to wait for a while

I tired the isort and pyupgrade with https://github.com/omni-us/jsonargparse/pull/294. Then ran the test_cli.py tests in python 3.8. Fails because pydantic doesn't do backporting of 585 and 604 types.
ImportError while loading conftest 'tests/tests_pytorch/conftest.py'.
tests/tests_pytorch/conftest.py:29: in <module>
    import lightning.fabric
src/lightning/__init__.py:20: in <module>
    from lightning.app import storage  # noqa: E402
src/lightning/app/__init__.py:26: in <module>
    from lightning.app import components  # noqa: E402, F401
src/lightning/app/components/__init__.py:3: in <module>
    from lightning.app.components.database.client import DatabaseClient
src/lightning/app/components/database/__init__.py:4: in <module>
    from lightning.app.components.database.server import Database
src/lightning/app/components/database/server.py:31: in <module>
    from lightning.app.core.work import LightningWork
src/lightning/app/core/__init__.py:3: in <module>
    from lightning.app.core.app import LightningApp
src/lightning/app/core/app.py:41: in <module>
    from lightning.app.core.work import LightningWork
src/lightning/app/core/work.py:31: in <module>
    from lightning.app.utilities.app_status import WorkStatus
src/lightning/app/utilities/app_status.py:23: in <module>
    class WorkStatus(BaseModel):
../../../.local/lib/python3.8/site-packages/pydantic/main.py:178: in __new__
    annotations = resolve_annotations(namespace.get('__annotations__', {}), namespace.get('__module__', None))
../../../.local/lib/python3.8/site-packages/pydantic/typing.py:399: in resolve_annotations
    value = _eval_type(value, base_globals, None)
/usr/lib/python3.8/typing.py:270: in _eval_type
    return t._evaluate(globalns, localns)
/usr/lib/python3.8/typing.py:518: in _evaluate
    eval(self.__forward_code__, globalns, localns),
E   TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

I guess this could be done for the rest of the code that does not depend on pydantic. Though it might be a much more manual process.

There might be newer ways to upgrade the codebase. The instructions in the top post are quite old by now.
I searched but didn't find anything different.

I tried to upgrade only lightning/pytorch as:
isort -a "from __future__ import annotations" --append-only src/lightning/pytorch
pyupgrade --py37-plus $(find src/lightning/pytorch -name '*.py')

Then I had to manually fix the future import in src/lightning/pytorch/loggers/neptune.py.
With this, there is a different error. Upgrading the code does not seem like a simple task.
ImportError while loading conftest 'tests/tests_pytorch/conftest.py'.
tests/tests_pytorch/conftest.py:27: in <module>
    import lightning.fabric
src/lightning/__init__.py:27: in <module>
    from lightning.pytorch.callbacks import Callback  # noqa: E402
src/lightning/pytorch/__init__.py:28: in <module>
    from lightning.pytorch.callbacks import Callback  # noqa: E402
src/lightning/pytorch/callbacks/__init__.py:31: in <module>
    from lightning.pytorch.callbacks.pruning import ModelPruning
src/lightning/pytorch/callbacks/pruning.py:30: in <module>
    from lightning.pytorch.core.module import LightningModule
src/lightning/pytorch/core/__init__.py:18: in <module>
    from lightning.pytorch.core.module import LightningModule
src/lightning/pytorch/core/module.py:64: in <module>
    from lightning.pytorch.trainer import call
src/lightning/pytorch/trainer/__init__.py:19: in <module>
    from lightning.pytorch.trainer.trainer import Trainer
src/lightning/pytorch/trainer/trainer.py:45: in <module>
    from lightning.pytorch.loops import _PredictionLoop, _TrainingEpochLoop
src/lightning/pytorch/loops/__init__.py:16: in <module>
    from lightning.pytorch.loops.evaluation_loop import _EvaluationLoop  # noqa: F401
src/lightning/pytorch/loops/evaluation_loop.py:31: in <module>
    from lightning.pytorch.loops.utilities import _no_grad_context, _select_data_fetcher, _verify_dataloader_idx_requirement
src/lightning/pytorch/loops/utilities.py:29: in <module>
    from lightning.pytorch.loops import _Loop
E   ImportError: cannot import name '_Loop' from partially initialized module 'lightning.pytorch.loops' (most likely due to a circular import) (src/lightning/pytorch/loops/__init__.py)

If you open a PR with the changes, I might be able to help with fixing the circular import

Created #17779.


update to dfx 11

Reminder to consolidate and rename cleanDeploy and large_wasm_deploy into a single deploy function that can take args as needed. Thanks!


Fetch secrets from two different vault KV2 mount points

Is your feature request related to a problem? Please describe.
Is it possible to fetch secrets from 2 separate mount points using vault provider so as to be able to inject both secrets into a template file?
So, I have 2 secret mount points of KV2 type.
vault secrets list
Path                                                                                Type            Accessor                 Description
----                                                                                ----              --------                 -----------
mount1/                                                                              kv              kv_abcd123              n/a
mount2/                                                                             kv              kv_abcdefg              n/a

Describe the solution you'd like
I want to be able to inject secrets at path mount1/secret1 and mount2/secret2 into same K8s secret created by ExternalSecret.
using ExternalSecret.spec.target.template
Describe alternatives you've considered
I tried setting SS.provider.vault.path to "" empty
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
  name: vault-backend
spec:
  provider:
    vault:
      server: https://my.vault.com
      path: "" # Set this to empty
      version: v2
      namespace: ""
      auth:
         ...

and then using full path in External Secret
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: example-secret
spec:
  refreshInterval: "15s"
  secretStoreRef:
    name: vault-backend
    kind: SecretStore
  target:
    name: combined-secrets
  data:
  - secretKey: username1
    remoteRef:
      key: mount1/secret1
      property: username
  - secretKey: username2
    remoteRef:
      key: mount2/secret2
      property: username

Additional context

This is not supported nor should you even want because than you have to assume that every secret backend in your Vault instance has the same KV version. The KV version makes the API URI differ from each other. In your case you should create a dedicated SecretStore for each backend you want your secrets from and then define that mountpath + KV version in the secretStore manifest.

Thanks. I was able to fulfil my use case by creating separate SecretStore for each mount point and a single ExternalSecret which reference multiple secretstores using spec.data.sourceRef.storeRef.name and then use templating in that ExternalSecret to inject those secrets to single secret file.


Support for Spark 2.0

DataFrame has be replaced with DataSet Looking at the change set for Apache Spark https://github.com/apache/spark/commit/1d542785b9949e7f92025e6754973a779cc37c52
From the commit comments
This PR unifies DataFrame and Dataset by migrating existing DataFrame operations to Dataset and make `DataFrame` a type alias of `Dataset[Row]`.

Most Scala code changes are source compatible, but Java API is broken as Java knows nothing about Scala type alias (mostly replacing `DataFrame` with `Dataset<Row>`).

There are several noticeable API changes related to those returning arrays:

1.  `collect`/`take`

    -   Old APIs in class `DataFrame`:

        ```scala
        def collect(): Array[Row]
        def take(n: Int): Array[Row]
        ```

    -   New APIs in class `Dataset[T]`:

        ```scala
        def collect(): Array[T]
        def take(n: Int): Array[T]

        def collectRows(): Array[Row]
        def takeRows(n: Int): Array[Row]
        ```

    Two specialized methods `collectRows` and `takeRows` are added because Java doesn't support returning generic arrays. Thus, for example, `DataFrame.collect(): Array[T]` actually returns `Object` instead of `Array<T>` from Java side.

    Normally, Java users may fall back to `collectAsList` and `takeAsList`.  The two new specialized versions are added to avoid performance regression in ML related code (but maybe I'm wrong and they are not necessary here).

1.  `randomSplit`

    -   Old APIs in class `DataFrame`:

        ```scala
        def randomSplit(weights: Array[Double], seed: Long): Array[DataFrame]
        def randomSplit(weights: Array[Double]): Array[DataFrame]
        ```

    -   New APIs in class `Dataset[T]`:

        ```scala
        def randomSplit(weights: Array[Double], seed: Long): Array[Dataset[T]]
        def randomSplit(weights: Array[Double]): Array[Dataset[T]]
        ```

    Similar problem as above, but hasn't been addressed for Java API yet.  We can probably add `randomSplitAsList` to fix this one.

1.  `groupBy`

    Some original `DataFrame.groupBy` methods have conflicting signature with original `Dataset.groupBy` methods.  To distinguish these two, typed `Dataset.groupBy` methods are renamed to `groupByKey`.

Other noticeable changes:

1.  Dataset always do eager analysis now

    We used to support disabling DataFrame eager analysis to help reporting partially analyzed malformed logical plan on analysis failure.  However, Dataset encoders requires eager analysi during Dataset construction.  To preserve the error reporting feature, `AnalysisException` now takes an extra `Option[LogicalPlan]` argument to hold the partially analyzed plan, so that we can check the plan tree when reporting test failures.  This plan is passed by `QueryExecution.assertAnalyzed`.


Passing through multithreaded queue can cause keyerror

odd anomaly seen once, needs more testing passing through queues.

Adding test for it, think it might had something to do with other pickling issue. Closing unless seen again.


Add requests logging

Hi Folks I started using the simulator and it works great, but it would be nice to have some requests / response logging for example using morgan.
This would be useful for debugging incorrect endpoint path configuration or unimplemented paths.
Would you be interested in pulling contribution with addition of logging?

I would love this! I found mockai for a use case in integration testing, so I need some way to confirm that certain calls took place, and one simple way to do this would be to watch logs. Metrics could work too!

This makes sense. I'm thinking of adding more observability into the system in general. So metrics and logs are a good use case. Let me work on it


README setup.cfg typo

Under the "Configuring pyflakes options per project and file](https://github.com/fschulze/pytest-flakes#configuring-pyflakes-options-per-project-and-file) section, it mentions "setup.cfg" twice:
"You may configure pyflakes-checking options for your project by adding an flakes-ignore entry to your setup.cfg or setup.cfg file like this:" Reference
Is it supposed to say "pytest.ini" instead?

Likely yes, I copied that typo from pytest-pep8 on which this plugin was based. There the typo is also still present.

Please see PR https://github.com/asmeurer/pytest-flakes/pull/35.


Chapter 11: like the phoenix…

Bringing Chapter 11 back:

extra notebook removed
files given natural names (which can help TOC/build)
images fixed (ostensibly)
copy-editing

@amandakube: hope this looks good to you as well :+1:
FYI: A good reference for the Markdown standard used by this textbook (including for images, figures, etc.).

Chapter deployed/published as part of release 0.3.0.


Checkpointing support

@LarryRuane
Zcashd needs a new RPC to return the sapling tree. This should be an easy thing to move through zcashd since it's only informational and doesn't change the behavior of zcashd.
Lightwalletd implements gRPC to call that zcashd RPC, get the data, and return it in as a grpc response. Wallets will not be sent this, but the wallets will manually pull this.

After more discussion and research, @LarryRuane was able to get this to work as a proof of concept.
What remains is to formalize it as an RPC on zcashd and then expose that call through lightwalletd. The lightwalletd call should accept a blockheight as input and return, at least the tree. We may want it to also return the block height, block hash, block time and network to match the current checkpoints.
Optionally, we might consider putting other features in to prevent abuse or misuse, like maybe

rounding down to the nearest 5,000 block height
only returning the sapling tree so that it's harder to use this gRPC call directly in apps
returning JSON instead of gRPC so it's harder to use directly in apps
only exposing it on the darksidewalletd so it's harder to use directly in apps

See https://github.com/zcash/zcash/issues/4721. This ticket will cover the creation of the new gRPC.

The primary issue with checkpoints is that the user’s wallet needs to “trust” these checkpoints, so that a rougue lightwalletd can’t mislead it. If a checkpoint is fetched from lightwalletd, then it doesn't enhance the safety of the light client, since it still has to trust whatever lightwalletd is saying the sapling root is.
On the other hand, an up-to-date checkpoint reduces the bootstrap time for new wallets, so it is very desirable.
So, my proposal is:
Fetch the latest sapling root, blockhash and blocknumber from the zcash p2p network
That is,

The light client will connect to the zcash p2p network (on port 8233, just like a regular zcashd would)
All this info is basically already available - We could just fetch the block header, which has all this info, so probably don’t need any changes in zcashd at all.

This approach has a lot of positive side effects:

The lightclient will basically get the latest checkpoint to a block, so the wallet can get started only with 1 compactblock from lightwalletd.
The lightclients can use the p2p network to broadcast transactions, plugging a huge privacy hole where today the lightwalletd learns a users outgoing txids
We can also use the p2p network to fetch memos (via fetching the full blocks that have a users transactions), which plugs yet another privacy hole with lightwalletd.

The cons of this approach are:

There is additional work to implementing this p2p network capability in librustzcash or in the lightclient SDK itself.

I think this shouldn’t be too complex, if we can find a way to share the code we build across all the lightclient developers.

The p2p network is slower than lightwalletd.

However, this is somewhat mitigated, since the instances where we’ll use the p2p network, the user can afford a small delay. The main wallet’s operation will still be blazing fast.

Although it’s my own idea, I kinda love it because it kills many birds with one stone. This will be hugely privacy improving, and it will allow wallets to start faster.
I’m curious to see what people think.

I like the general thrust of Aditya's proposal, because often we find ourselves wanting something between a light wallet and a full node. For us the main advantages of using a lightwallet in Zbay are:

No huge disk space requirement
No multi-hour initial sync
Zcashd isn't stable enough to watch many addresses and run locally on a user's computer. It needs babysitting. Keeping it running properly on machines outside of our control has been a challenge. The lightwallet makes this somebody else's problem (thank you Aditya!)
Easier-to-understand privacy properties when adding Tor to the mix, since a lightwalletd is more analogous to connecting to a website via Tor.

However the downsides are:

Huge changes to privacy when receiving transactions
Risk of lightwalletd downtime
Centralization
Increased latency for receiving messages, even once we have a 0-conf API.
Actually an increase in CPU usage relative to full node when watching many addresses. I think this is because with a full node we could check some addresses more frequently than others, but the light client is checking all addresses each time (This is probably something that can be improved.)
Trickiness when we have to rescan back in time before our initial checkpoint e.g. when we import a viewing key

If we had a full node that a) was stable b) could start with a "checkpoint" and c) didn't have a huge diskspace requirement, we'd use that.
I don't know how helpful this is!

My specific questions about Aditya's proposal are:

How do we verify that what we're getting from the p2p network is correct?
What are the attacks that open up when we connect to the p2p network? It seems to raise the stakes.
Does connecting to the p2p network work in the mobile app context? (Curious)

My questions about the ECC proposal are:

Why not ship a checkpoint with the latest version of the app, and release often?
How does this change what a malicious lightwalletd can do to the user?

Just a quick response on this:

Why not ship a checkpoint with the latest version of the app, and release often?

Good question and that's exactly what we do (with the minor nuance that we don't "release" externally. We release internally every 2 weeks.) Currently, producing checkpoints takes about 2-4 hours per sprint and this RPC will help reduce that down to milliseconds.

How does this change what a malicious lightwalletd can do to the user?

I really like this question. As proposed, the RPC changes nothing because we intend to use it to simply create the files that we package with the app. This RPC also opens the door to doing that as part of a CI/CD process in the future. But this question really makes me think about a world with numerous lightwalletd servers. Could we improve privacy enough by simply connecting to multiple instances and using the consensus values? Then, for example, an attacker would have to take control of multiple servers just to send a malicious checkpoint and have it be accepted.
A malicious checkpoint can DoS a wallet--preventing it from being able to spend shielded sapling notes. So that's a critical risk to keep in mind with checkpoints.

Does connecting to the p2p network work in the mobile app context?

Yes and no. From discussing this topic with Aditya yesterday, I understand that the p2p network uses a custom TCP protocol. I doubt a library exists that does this well on mobile but maybe we could, for instance, leverage some of the rust code that Zebra uses for this or maybe even port it. Henry mentioned that they created a special method for that use case.

What are the attacks that open up when we connect to the p2p network? It seems to raise the stakes.

This is something I also want to explore and understand better because ligthwalletd, at least, uses TLS and certificate authorities so I have some level of trust that I'm connecting to the machine I expect. By definition, the p2p network is trustless so I wonder what attacks or privacy leaks would be enabled when going that route.

It would be really hard to get reliable information from the p2p network. There are several points of weakness:

Node discovery: how does the light client find out the IPs of some p2p network nodes, and what stops an attacker from hijacking this process so that the client always chooses their (malicious) node?
Plaintext, unauthenticated protocol: even assuming the client is connected to an honest p2p node, the protocol is in plaintext so their ISP or whoever else might be intercepting their traffic can modify the responses.

Light clients should validate information provided by lightwalletd using the proof of work -- given that there's enough proof of work on the block, assuming miners are honest, and given that all of the information is cryptographically tied to the block and its proof of work, then the information can be trusted.

1. Node discovery:

I thought we could do exactly what the full node does - Start with a list of seed nodes, use the DNS lookup to get a list of IPs, and connect to a random one. Won't this have the same security properties as a full node?

Plaintext, unauthenticated protocol:
What's the difference between a light client doing this and a full node doing the same thing? Aren't the same issues present for the full node?

The llight client, for purposes of connecting to the p2p network, will do exactly what a full node does - Since it is getting the full blocks, it can check the PoW and the header.

Yes, peer discovery is an issue for full nodes as well. If an attacker can intercept the DNS lookups then they can eclipse attack the node, nodes are particularly vulnerable when they first sync because of this. This is somewhat mitigiated by the fact zcashd remembers its peers' IPs and does not need to re-seed its peer list every time, but it's still an issue that we would not want to introduce into light clients unless we absolutely had to.
The protocol being plaintext and unauthenticated isn't an issue for full nodes because they have the full chain state and validate everything themselves. If the light client is going to start checking headers and PoW, there's no need to reach out to p2p nodes for the checkpoint data, they could just get it from lightwalletd and validate it the same way. That way there's no need to increase the attack surface by talking to p2p nodes.
Regarding the other proposed benefits of talking to p2p nodes:

The lightclients can use the p2p network to broadcast transactions, plugging a huge privacy hole where today the lightwalletd learns a users outgoing txids

We can also use the p2p network to fetch memos (via fetching the full blocks that have a users transactions), which plugs yet another privacy hole with lightwalletd.

This would stop lightwalletd from learning everyone's outgoing transactions and memo requests, but it actually makes the privacy problem much worse because every wallet's ISP will be able to see all of the transactions they're broadcasting and which memos they're fetching (all in plain text). Additionally, given the issues around peer seeding it may not end up helping at all, for example if wallets all end up connecting to a few nodes, or if an attacker can create hundreds of Sybil nodes and have most wallets connecting to them.

because every wallet's ISP will be able to see all of the transactions they're broadcasting

Isn't this an issue for full nodes as well? The ISP learns all outgoing txns for full nodes. Does this imply using a lightclient today is more private than using a full node? (i.e., you trust the lightwalletd more than your ISP)

There's a lot of tradeoffs here that we'll need to think through.

Centralization of the lightwalletd vs the decentralized p2p network
Should lightclients inherit the privacy properties of the full node zcashd? Does it need to be more private? Less private?
Can we just encrypt traffic between nodes on the p2p network? (this is a zcashd change, though)
If a lightclient can be eclipsed, the same arguments apply to lightwalletd as well - i.e., an attacker, instead of eclipsing a lightclient can simply eclipse a lightwalletd and achieve a much bigger attack. Shouldn't we make it harder for an attacker ?

because every wallet's ISP will be able to see all of the transactions they're broadcasting

Isn't this an issue for full nodes as well? The ISP learns all outgoing txns for full nodes. Does this imply using a lightclient today is more private than using a full node? (i.e., you trust the lightwalletd more than your ISP)

For outgoing transactions, yes. https://github.com/zcash/zips/pull/391 is some progress towards fixing that. For incoming transactions, no, because none of zcashd's network traffic reveals which transactions belong to it. An attacker watching the traffic just sees the zcashd receiving the entire blockchain, so they don't learn anything about which transactions belong to that node.

Strictly on the topic of light clients trusting lightwalletd, there seems to be an assumption that their interaction has similar security requirements as P2P, and of course in P2P there's no trust (and shouldn't be). But can lightwalletd be more analogous to amazon.com? Could ECC or the foundation run an instance that has a registered TLS certificate? Yes, ECC or the foundation could be evil, just as amazon.com could be evil, but we trust amazon.com today, and doing so seems to work out okay.

Strictly on the topic of light clients trusting lightwalletd, there seems to be an assumption that their interaction has similar security requirements as P2P, and of course in P2P there's no trust (and shouldn't be). But can lightwalletd be more analogous to amazon.com? Could ECC or the foundation run an instance that has a registered TLS certificate? Yes, ECC or the foundation could be evil, just as amazon.com could be evil, but we trust amazon.com, and doing so seems to work out okay.
It's true that an organization (like Ledger) may want to run their own instance so they don't have to trust ECC or ZF, and of course that should be possible. Can they create their own certificate (avoiding paying the expense of registering with a global CA) that their light clients use to verify that they're talking to the intended instance (not being eclipsed)? I don't have the technical knowledge to know, so that's a genuine question.
To state this differently, do we have to assume that light clients have no choice but to connect to lightwalletd instances that they cannot trust?

There's a lot of tradeoffs here that we'll need to think through.
* Centralization of the lightwalletd vs the decentralized p2p network

I'm not too concerned about this. In the long term, it would be best if the wallet did not need to trust lightwalletd at all for privacy or security, so that no risk would come from using centralized providers. What matters most in my opinion are the actual privacy and security properties we can achieve for the user. I would not support weakening any privacy properties in order to achieve a vaguely-defined notion of "decentralization".

* Should lightclients inherit the privacy properties of the full node zcashd? Does it need to be more private? Less private?

We should have the best privacy properties we can reasonably obtain! If we can avoid zcashd's flaws then we should.

* Can we just encrypt traffic between nodes on the p2p network? (this is a zcashd change, though)

This would be difficult. The problem is that encryption requires cryptographic authentication (otherwise an attacker can just pretend to be the node you're trying to connect to and see all the traffic). Maybe each node could have its own domain name with a Let's Encrypt certificate, but there's still the problem of Sybil attacks: an attacker could create 1,000 nodes so that wallets would likely connect to those nodes, so they can see the traffic even though it's encrypted and authenticated.

* If a lightclient can be eclipsed, the same arguments apply to lightwalletd as well - i.e., an attacker, instead of eclipsing a lightclient can simply eclipse a lightwalletd and achieve a much bigger attack. Shouldn't we make it harder for an attacker ?

Yes, production lightwalletd operators should be monitoring it for signs of an eclipse attack (e.g. compare its latest block hash with the latest block hash obtained from various other instances of zcashd). Thanks for bringing that up, I'll make sure it's documented somewhere.

@LarryRuane Right now we're assuming lightwalletd is run by a trusted operator (like amazon.com). If the wallet connects to a malicious lightwalletd, the lightwalletd can do things like send their wallet fake transactions and monitor their activity. So at present nobody should be using a lightwalletd they don't trust.


[BUG] Tables are collapsed

Rendering document with tables. But they are all collapsed.
I tried fixing the source code and it didn't help:
const tableCellOpts: Mutable<ITableCellOptions> = {
  children: this.children,
  width: { size: Math.floor(100 / rowContent.childCount), type: WidthType.PERCENTAGE },
};

Example, how it looks:

Would this be related to this: https://github.com/dolanmiu/docx/issues/1457

Yeah, exactly this, thanks!


Create score table

id
score
dateUpdated

@dbfinal/developers Do we just want to have a score or should we keep track of individual upvotes/downvotes? I think the latter. That would make schema:

id
upvotes
downvotes
dateUpdated


FAQ updates

This contains a variety of changes from a full pass over the FAQ.

Here are my notes about problems I still have with this. We don't need to address this now, just noting it for future reference.

Ord / Eq problem is not clear
How can I understand the borrow checker is kinda unfulfilling - if it was that easy everyone would get it
How do deref coercions work doesn't actually explain it but links to the book
How do I return a borrow to something I created from a function - does not give a very actionable answer. Needs examples
When are lifetimes required to be defined, explains the answer in terms of when they are not required. This answer should be structured to not just repeat the elision rules
HKT explanation doesn't explain anything to me:

"higher-kinded types are types that take other types as parameters" sounds like generics
"Type constructors, like Vec are examples" - if Vec is an HKT then why doesn't Rust have HKT? What's a type constructor?
the example introduces new syntax but doesn't explain which is the new syntax and what it means

Why doesn't Rust have exceptions? This needs to be more convincing. Especially 'they interoperate poorly with multithreaded code'.
Can I use static values across threads without an unsafe block?

I don't understand this question or answer -'static declarations can be accessed anywhere.

What is the relationship between a module and a crate?

"Crates do not have global names, only a set of non-unique metadata tags." does not make sense to me

Does Rust allow non-constant-expression values for globals?

why is it ok for thread_local! to have non-static initialization but not for statics? they both have initialization order problems? does this just distract from the main point

Another point we need to consider. This draft no longer tries to answer the question 'What does the name Rust mean?'. While I think we need to not promote the fungus idea, it is a FAQ and probably should be tackled.

Okay. Except for a few typos, this looks good. I'm going to merge it, fix the typos, and then go over the suggestions you made above.

Okay, so here are my thoughts on the problems you outlined above:

The Ord / Eq problem

We currently have two questions about Eq vs. PartialEq and Ord vs. PartialOrd, but you're right that neither tackles it directly. I'll go ahead and add a more direct question / answer for this.

Understanding the borrow checker

You're right that the question makes it seem simpler than it usually is in practice. In my experience, most of the problems from the borrow checker come from two issues: 1) how to avoid multiple mutable references, 2) how to get the lifetimes of your borrows correct. I'll go ahead and expand the answer to clarify that although the rules are simple, the program design implications are more complicated than expected, particularly since programmers new to Rust are often unaccustomed to considering lifetimes and borrows explicitly.

Deref corcions

You're right. I'll expand the answer.

Returning borrows to things created in functions

Same.

Lifetime elision rules

I'll take a swing at rewriting the answer. I wouldn't be surprised if it takes a couple drafts to get right.

Higher kinded types

You're right. I've rewritten the answer to clarify the points of confusion.

Exceptions

I'll work on this.

Static values across threads

The question is specifically about variables declared with the static keyword, not references with the 'static lifetime, which should be clarified.

Crates vs. Modules

I believe this answer was copied over from an older document. I'll clean it up.

@AndrewBrinker thanks for addressing my comments here! I wasn't even expecting you too since these are some of the hardest FAQs. We'll get the core team to review and deploy soon.

Sounds good! I'll swing back around to the remaining suggestions (and I have some changes of my own in mind too) after the initial document is published. Thanks for all the help during this process.


cmd/compile: different results between inferred generic type argument and explicit generic type argument

What version of Go are you using (go version)?

$ go version
go version go1.21rc3 darwin/arm64

Does this issue reproduce with the latest release?
It is currently reproducing on the latest gotipplay
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE='on'
GOARCH='arm64'
GOBIN=''
GOCACHE='/Users/kyle.lemons/Library/Caches/go-build'
GOENV='/Users/kyle.lemons/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/kyle.lemons/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/kyle.lemons/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/Users/kyle.lemons/sdk/go1.21rc3'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/Users/kyle.lemons/sdk/go1.21rc3/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.21rc3'
GCCGO='gccgo'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
GOMOD='/Users/kyle.lemons/dev//infrared-generator/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/t8/cjh0whg91cz4xv7fqwhx374r0000gp/T/go-build2237738850=/tmp/go-build -gno-record-gcc-switches -fno-common'
GOROOT/bin/go version: go version go1.21rc3 darwin/arm64
GOROOT/bin/go tool compile -V: compile version go1.21rc3
uname -v: Darwin Kernel Version 22.5.0: Thu Jun  8 22:22:20 PDT 2023; root:xnu-8796.121.3~7/RELEASE_ARM64_T6000
ProductName:		macOS
ProductVersion:		13.4.1
BuildVersion:		22F82
lldb --version: lldb-14<IP_ADDRESS>
Apple Swift version 5.8.1 (swiftlang-<IP_ADDRESS>.5 clang-14<IP_ADDRESS>.100)

What did you do?
https://gotipplay.golang.org/p/sUrlIpN1rLa
Given a generic interface+function pair:
type FileCodec[T any] interface {
	Encode(w io.Writer, data T) error
}

func WriteFile[T any](path string, codec FileCodec[T], data T) error

and a valid implementation of the above interface:
type RuntimeObject interface {
	GroupVersionKind() string
}

type KubeCodec struct{}

func (KubeCodec) Encode(w io.Writer, data RuntimeObject) error

and the two calls below:
type Object struct{}

func (Object) GroupVersionKind() string { return "object" }

func main() {
	WriteFile[RuntimeObject]("works", KubeCodec{}, Object{})
	WriteFile("fails", KubeCodec{}, Object{}) // type Object of Object{} does not match inferred type RuntimeObject for T
}

The generic type inference can correctly infer the type for WriteFile in the second case, and it matches the explicit type argument from the first call, but it still gives an error.
What did you expect to see?
I expect both of these lines to work:
	WriteFile[RuntimeObject]("works", KubeCodec{}, Object{})
	WriteFile("fails", KubeCodec{}, Object{})

What did you see instead?
type Object of Object{} does not match inferred type RuntimeObject for T

CC @griesemer

Simplified repro:
package p

func f[T any](interface{ Encode(T) }, T) {}

type RuntimeObject interface{}

type KubeCodec struct{}

func (KubeCodec) Encode(RuntimeObject) {}

type Object struct{}

func _() {
	f[RuntimeObject](KubeCodec{}, Object{})
	f(KubeCodec{}, Object{}) // type Object of Object{} does not match inferred type RuntimeObject for T
}

Inference trace:
== infer : [T₂](interface{Encode(T₂)}, T₂) ➞ [<nil>]
== function parameters: (interface{Encode(T₂)}, T₂)
-- function arguments : [KubeCodec{} (value of type p.KubeCodec) Object{} (value of type p.Object)]
.  interface{Encode(T₂)} ≡ p.KubeCodec  // assign
.  .  func(T₂) ≡ func(p.RuntimeObject)  // assign, exact
.  .  .  (T₂) ≡ (p.RuntimeObject)       // assign, exact
.  .  .  .  T₂ ≡ p.RuntimeObject        // assign, exact
.  .  .  .  T₂ ➞ p.RuntimeObject
.  .  .  () ≡ ()        // assign, exact
.  T₂ ≡ p.Object        // assign
.  .  p.RuntimeObject ≡ p.Object        // assign
.  .  p.Object ≡ p.RuntimeObject        // swap
.  T₂ ≢ p.Object
=> [T₂] ➞ []

This is a (known) limitation of the current implementation: T₂ has been correctly inferred to be a RuntimeObject. But at the moment we require both types to be interfaces to avoid an order dependency. Related to #60933.

Even simpler reproducer:
package p

func f[P any](P, P) {}

func _(a any, i int) {
	f[any](a, i)
	f(a, i) // ERROR: type int of i does not match inferred type any for P
	f(i, a) // ERROR: type any of a does not match inferred type int for P
}

We can't address this with the current, relatively simple (but still plenty complex!) type inference approach. It's not clear that we should. There's always the option to provide an explicit type argument.
Cases like these appear when the type argument is an interface. In many such cases, not using generic code in the first place may be the right choice (we already have polymorphism through the interface).
Closing as not planned.


final_target_logit = torch.where(target_logit > self.threshold, cos_theta_m, target_logit - self.mm)

In MV-softmax, the released code use easy_margin like following:
final_gt = torch.where(gt > 0, cos_theta_m, gt)

but the official arcface implement does not use easy_margin, like following:
final_gt =  cos(θ + m)

I try mv-softmax using own dataset without easy_margin, but suffering from divergence issue(NAN). I fix divergence issue using easy_margin.
Compared with mv_softmax , there are two diffs, first is the thresh, CurricularFace use self.threshold = math.cos(math.pi - m),  this is understandable， second is  final_target_logit = torch.where(target_logit > self.threshold, cos_theta_m, target_logit - self.mm),  what is intuitive understanding of target_logit - self.mm , where self.mm = math.sin(math.pi - m) * m

My understanding is that , the arc length of margin radian degrees is calculated as L = mr  where  r = 1,  so the L = m ,  so the approximate calculation of
final_gt =  cos(θ + m)

is
final_gt = cos(θ) - L*sin(m) =  cos(θ) - m * sim(m) =  cos(θ) - sim(math.pi - m) * m

Is above right? if right, what is the advantages of this implements.

Hi, same question here, did you find the meaning of self.mm later? Thanks a lot. @powermano


Create test.md

This is just for testing the pull request action

This comment should trigger the action

This comment should trigger the action

This comment should trigger the action

This comment should trigger the action

This comment should trigger the action

This comment should trigger the action

This comment should trigger the action

Another test

Another test

Another test

Another test

This test should be OK


Create a way to publish drafts

Needs a way for people to publish posts that aren't visible on any of the channels

Resolved with https://github.com/StackExchange/blog/commit/fa40d591499993c10f15a2d29152201bbd6fb431
Contributors can now add a drafts parameter at the top of their profile, setting it to either true or false. Not including a drafts parameter will default the value to false


Dark/Light mode support, with option to autodetect

https://stackoverflow.com/questions/56393880/how-do-i-detect-dark-mode-using-javascript might help
Light mode is probably the best default

https://github.com/Benny121221/dashboard-widgets#dark-mode-detect is about as much as I think is appropriate for this package


Parameter 'class_or_builder' unfilled

class Test(Consumer):
@returns.json
@json
@patch("orders/address/pickup")
def task_updatePickupLoc(self, **body: Body):
"""Updates Pickup Location of a given order"""
When the method is called using required parameters the code runs and performs a patch request but gives me a warning to provide 'class_or_builder' why?

@prkumar care to weigh in? This looks like it affects anything that inherits from decorators.MethodAnnotation. I'm getting this warning from pyright, so you'll probably be able to easily reproduce using pylance in vscode as well.

You can also reproduce with a toy example like this:
from uplink import Consumer, returns

@returns.json
class MyAPI(Consumer):
    """Reproduces"""

my_api = MyAPI(base_url="https://example.com/")

That one gets the same error because @returns.json is decorating the __init__ method, which is probably a bug in itself, as it means you can't use the trick of putting method decorators on the class as a shortcut as described in the docs.

Hey @bjornsnoen - I'm unable to reproduce this on the latest version of uplink, What version are you using?

@prkumar I made a small repo that reproduces it, here https://github.com/bjornsnoen/uplink-toy

@bjornsnoen - Thanks for providing the helpful sample repo. I was able to reproduce locally using it! A couple quick thoughts:

If I understand correctly, this sounds like an issue that only happens when running a type checker (specifically pyright) against code that uses the library, right? In other words, your example should run fine without type checking, right?

As far as I'm aware, we don't boast any support for pyright or mypy in the docs, right? Regardless, it makes sense why you would expect this to work. I'm just making sure that we are not advertising support, since we clearly don't support those type checkers.

IIUC, to fix this issue, we would need to provide a type hint that helps pyright understand how to interpret the usage of MethodAnnotation subclasses as class decorators. More specifically, in your example, it seems like pyright is interpreting the type of MyAPI incorrectly: it believes that MyAPI is not a class, since it was wrapped by returns.json.

@prkumar yes, you understand correctly, the code works as expected and the only reason to expect static typing to work is because things like the returns.from_json decorator actively use type annotations. If you search the docs for "typing" some things do come up, the top hit seeming to be a core python module for PEP 484?
I want to make clear that the @returns.json decorator isn't only broken when used to decorate classes, it does the same when decorating class methods, like this:
from uplink import Consumer, get, returns

class MyAPI(Consumer):
    """Reproduces"""

    @returns.json
    @get("test")
    def test():
        """Also reproduces"""

my_api = MyAPI(base_url="https://example.com/")
my_api.test()

The call to my_api.test()  gives the same error in pyright, as it now expects the test method to have a class_or_builder argument passed to it. This is much more annoying to deal with, as we don't get any help from autocomplete/intellisense with knowing which parameters an endpoint wants. IMO it would be perfectly OK to only fix this basic use case, and say flat out that if you use the decorators on a class level it will break static type checkers, if that ends up being an option.

@bjornsnoen - Gotchu. As you mentioned, I think it makes sense to assume that the package supports type checking, considering the usage of type annotations throughout the docs. IIUC, to fix this, we need to add type annotations to the library. Notably, we've avoided adding these because of our advertised support for Python 2.7. However, version 0.9.* will be the last minor version to support Python 2.7. Starting with version 0.10, we can start adding type annotations in the library, which should address this issue.


all dataset style and all templates duplicated in datavalidator

I just tried to change a simple css property on the dataset page. I cannot get it to work. Turns out that it is because that the exact same naming and styles are copied as is to the data validator. I cannot see any reason for this.
@thomasstjerne could you please help clean this?

changes done in datasets (e.g. https://github.com/gbif/portal-feedback/issues/1869) will not show on validation reports. At some point we might wanna consider putting this in a directive instead of duplicating all code?


[bug] Dashboard not rendering

I've opened Dashboard as admin, I am not seeing any charts or numbers. Only blanks numbers are appearing. Please investigate this.

@sidharthshah please check one more time, all charts are rendered properly and i can see all counts. Please check screenshot attached.

@sidharthshah can i close this issue ?

@yspanchal, there still seems to be issue with Dashboard render. I am attaching a secreenshot. Please investigate


cargo-watch dependency quarantined

I am in a corporate environment and while trying to update cargo-watch, i see this error
Error while handling Cargo download request for path cargo-proxy:crates/nix/nix-0.22.3.crate : -------------------->>> REQUESTED ITEM IS QUARANTINED

Issue is with nix : 0.22.3 : crate, recommended solution is Upgrade to 0.23.0.
I didn't see an open issue to bump nix dependecy version.

I didn't see an open issue to bump nix dependecy version.

Some of our dependencies use that version, and the biggest one (watchexec) isn't going to be updated for some time.

I am in a corporate environment...

Ultimately this project is not responsible nor interested in complying with whatever insane rules some arbitrary 'corporate' software is applying. You may have better luck using the binary releases.


Not a real issue, just a kind question

This is not a issue at all, I just saw the pictures in the /backgrounds folder of this repository and would really like to use them as my desktop wallpaper. Unfortunately they all have a resolution of only 1920x1080. So my question is if you can be so kind to provide them in a higher resolution, maybe even 4k? That would be greatly appreciated. :)

@BenKerry  Welcome to the project! Thank you for taking the time to share your idea!
We will add a Dropbox link to 4K backgrounds over at the Description section asap 😄

Thank you very much. :)


[Autocomplete] Improve unstyled demo

Make the demo truly unstyled. Any use of @mui/material is a red flag IMHO.

Looks like the code owners logic fails on this one 😁


implemented add custom date to spent time

Implemented issue #16841

there are two option to handle it in the backend: either allow the user to optional specify arbitrary creation timestamps to be inserted into db (not fan of it) or to add a new column who would be either NULL or specify when the spent time should be "proposed" be be happened

there are two option to handle it in the backend: either allow the user to optional specify arbitrary creation timestamps to be inserted into db (not fan of it) or to add a new column who would be either NULL or specify when the spent time should be "proposed" to be happened

Thank you for your review and proposals.
I have several opens to share:

I suppose that tracked_time is for time which has been spent already. Not for estimation. For accounting purpose. Estimation is for planning future work. So estimation should be added for planning and balancing spendings.
There is "created_unix" field In the tracked_time table. I try to find any reference to this field in code or documentation and think this field isn't used anywhere. So I utilise this field. Don't think adding another field with date is necessary.

Any thoughts regarding this?


KeyVault entities management not supported

There is no way at this moment to manage KeyVault entities using Azure NextGen Provider.
Entities:

[x] Key
[x] Secret
[ ] Certificate
[ ] Access Policy (as a separate resource)

Terraform-based Azure provider has support of these entities:
https://www.pulumi.com/docs/reference/pkg/azure/keyvault/

Adding Access Policies to the list

Key Vault secret and key resources are released as part of 0.3.0

@mikhailshilkov  The documentation doesn't compile with 0.3.0. Adding
Keys =
{
    "encrypt",
},

results in

cannot convert from 'string' to 'Pulumi.Input<Pulumi.Union<string, Pulumi.AzureNextGen.KeyVault.Latest.KeyPermissions>>'

Is Union a new type?

@MisinformedDNA Good catch. Union is not new but its usage here as an enum-like type is new.
As a workaround, you should be able to do
Keys =
{
    (Union<string, KeyPermissions>)"encrypt"
}

Could you please file a separate issue to track an improvement to this?

@mikhailshilkov Was experimenting with these new types to see if I can consolidate usage to Azure NextGen provider for vaults and secrets provisioning. I performed a preview and it indicated it was going to delete the existing Secret on the Azure provider and create it in the new provider. This sounds right conceptually but deleting secrets would trigger the Soft Delete feature of Key Vault and I imagine the subsequent create will fail.
Was thinking of deleting the existing Secret in the Azure provider from pulumi state and then proceeding with the preview/update. Does this sound like a proper sequence of steps?

@andrewdmoreno You should first delete the secret from the state (pulumi state delete <id>), remove the old code, add new code with import: <id> option, and then run pulumi up. Then you can remove the import option.

Thank you. I will give that a go.

@mikhailshilkov I tried the above and I'm not sure what I am getting is the expected behavior. I deleted the secret from state without issue, however, when I try to use the new code with import: <id> as suggested I get a warning:
azure-nextgen:keyvault/latest:Secret (secrets:cosmos-conn-string):     warning: inputs to import do not match the existing resource; importing this resource will fail
Here is the code I am running:
            // prior code removed for brevity
var cosmosConnectionString = account.Name.Apply(name => Output.Create(GetCosmosConnectionString(_resourceGroupName!, name)));

new Secret("secrets:cosmos-conn-string",
    new SecretArgs
            {
                SecretName = "CosmosConnectionString",
                VaultName = vault.Name,
                ResourceGroupName = _resourceGroup,
                Properties = new SecretPropertiesArgs
                {
                    Value = cosmosConnectionString,
                    Attributes = new SecretAttributesArgs
                    {
                        Enabled = true
                    }
                }
            },
    new CustomResourceOptions
            {
                ImportId = _config.Require("cosmos-conn-string-import-id")
            });

The interesting part is that when I look at details it states that I am adding the value of the secret.
  ~ properties: {
      + value: "AccountEndpoint=<redacted>/;AccountKey=<redacted>"
    }

If I comment out the setting of the Value, the preview command runs without warnings. I know for certain that the existing secret in key vault has it's value set to the expected value. Is this expected?

@andrewdmoreno That's interesting. Could you open a separate issue to track this?
For now, you should be able to work around it by a) Leave the value in your code b) Add IgnoreChanges = { "properties.value" } c) Import.

https://github.com/pulumi/pulumi/issues/5947

https://github.com/pulumi/pulumi/issues/5947

I'll close this issue in favor of https://github.com/pulumi/pulumi-azure-nextgen/issues/267 which is more focused on access policies


Add support for CloudEvents 1.0

Closes #264

Can we get a changelog entry?

Tested with our simple sse html demo -- works without any problem. However, I searched for 0.2 (0.1 has similar search results) to see where we are using ce versions and there are couple of places that might need an update:

lib/rig_inbound_gateway_web/v1/sse.ex:184
lib/rig_inbound_gateway/events.ex:33
lib/rig_inbound_gateway/request_logger/kafka.ex:50
lib/rig_kafka/client.ex:59
lib/rig/sources/http/handler.ex:44
test/support/clients.ex:115


A lot copy and paste in gcc arm exporters (with possible solution)

Hello,
since i cannot post to the google group, i raise this here. It is not really a bug.
I think the exporters (at least for gcc arm) can be improved by using template inheritance from jinja2: http://jinja.pocoo.org/docs/templates/#template-inheritance
I did a very rough sample implementation for four exporters:
https://github.com/chrta/mbed/compare/exporter_template_refactoring
What do you think?

With #1204 all gcc arm exporters are refactored. Two common templates are used. One for all EFM32 targets and one for all other targets.
No other exporters are refactored as suggested in https://github.com/mbedmicro/mbed/issues/370#issuecomment-46876921
But since this issue is only related to the gcc arm exporters, this issue could be closed (after #1204 is merged) or the title should be changed to include all exporters.

Seems like this isn't truly going to be fixed until yotta is being used by folks?

its close but planned to replaced by https://github.com/project-generator.

oh, that's interesting.

I am closing this as it was resolved thanks to @chrta.


Using middlewares with GraphQLServerLambda

Hi,
How can I use middlewares along with  GraphQLServerLambda?
I want to use a shield middleware, which works perfectly using GraphQLServer, but middlewares is not a known property from GraphQLServerLambda.
Examples:
new GraphQLServerLambda({
            middleware: [permissions], // <-- unknown property
            context: (ctx => ({
                ...
                })),
            resolvers,
            typeDefs
        })

Working with GraphQLServer:
new GraphQLServer({
    middlewares: [permissions], // <-- working
    context: (ctx => ({
            ...
          })),
    typeDefs,
    resolvers
})

Ahh, @valentinebe thanks for noticing this. I must have forgoten to add it to lambda as well. Will add it over the weekend! 💪🏻


All platform : What's hot confuses Portuguese with Spanish

It looks like that when you selected Spanish in your content languages, it get confuses with Portuguese.
I'd never seem an Spanish post in my what's hot feed but usually see Portuguese (and English but that one it's expected)

Fixed?
Today when opening the Bluesky app (on iOS) saw a message indicating that I should change my content language settings as there's was not enough content in my desired languages to show me something.
When refreshed there was enough content as I'd English selected too, maybe a couple of hours ago we didn't have content no even in English.
Thank you.

This will get fixed when we introduce the ability to declare a post's language


Fracker resource dropping prevention

Frackers shouldn't harvest minerals when this action would overflow their carry.
This change is tested and backward compatible.

Should boosts be taken into account?
Also, what’s with the package-lock.json file?

Should boosts be taken into account?

Currently not 😉

Also, what’s with the package-lock.json file?

That one was generated by npm... I'll remove it.


Group Number

Hi all,
Have you checked on the task 1 of homework 6. It says group number in the range of interval. Are we supposed to use our homework group number or some other number there?

I believe this is referring to the homework group number


new: Support for new field types in plugins

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature
Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area plugin-sdk
/area tests

What this PR does / why we need it:
This adds support for the main types described in the issue below.
Which issue(s) this PR fixes:
Umbrella: Adding support for new field types in plugins

Special notes for your reviewer:
This is still a WIP: it will need a lot of improvements for performance and clean up for sure!
Does this PR introduce a user-facing change?:

action required: update plugins to use new sdk version
action required: add the new plugin types in libs

Welcome @therealbobo! It looks like this is your first PR to falcosecurity/plugin-sdk-go 🎉

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: therealbobo
Once this PR has been reviewed and has the lgtm label, please assign leogr for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Hi @therealbobo. Thanks for your PR.
I'm waiting for a falcosecurity member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/hold

I was thinking that could be a good idea to add some helpers: that way the final user will use directly, for example, net.IP instead of populating the buffer manually. WDYT? @jasondellaluce
/unhold


Confusion about sp_gat's bias_mat

Hi, Petar
Thanks for your great works!
I have some questions about sp_gat model's bias_mat input.
I notice that it is process from utils/process.py
function preprocess_adj_bias()
indices = np.vstack((adj.col, adj.row)).transpose()  # This is where I made a mistake, I used (adj.row, adj.col) instead
I just don't understand your comment here: the return values of the function is feed to tf.sparse_placeholder then, and (adj.row, adj.col)  is standard input for tf.SparseTensor , So why you use (adj.col, adj.row) instead ? In other words, I will make the same mistake with you! Could you explain? Many thanks!

I have the same confusion about this. Do you understand now?


Add Refreshing Secrets to the Secret Manager Sample

Add code demonstrating how to refresh the latest secret in the secret manager sample.

Hey @dzou , what do you mean by refresh the latest secret?

Hey @kioie ! It means when a secret is updated in Google Secret Manager, a user's application will be able to pick up the updated secret without needing to restart their application.
Currently our sample still requires to be restarted if the secret values get updated upstream.
I have been told that this is possible with spring actuator? Will need to investigate more...

See https://github.com/spring-cloud/spring-cloud-gcp/issues/2485
Looks like the solution requires implementing the spring.config.import style for secret manager. This is tracked in the new repo. https://github.com/googlecloudplatform/spring-cloud-gcp


Demo only in http://

Hi all! I noticed that the demo does not work in HTTPs :)

http://sintef-9012.github.io/Leaflet.MapPaint/

Are you aware of that?
Thank you so much for your work here. I've gived a star. Found your plugin just by curiosity from this list:

https://leafletjs.com/plugins.html

Hi, this is an old unmaintained project and I see that http resources are hardcoded. Thanks for telling us. It should probably be modernised a lot.


docs(README.md): add scope/status badge and simply doc structure

What type of PR is this?
/kind cleanup

/kind design

Any specific area of the project related to this PR?

What this PR does / why we need it:
See https://github.com/falcosecurity/evolution/pull/273
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: incertum, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: incertum, jasondellaluce, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jasondellaluce,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, incertum, jasondellaluce, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,jasondellaluce,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

I'd move this to 0.36 because it makes no sense to cherry pick it for release branch.
/milestone 0.36.0

/milestone 0.35.0
Even if it is just a documentation, it is part of the release. I think it is better to cherry pick on the release branch to avoid confusion (wrong package table on the release readme).


RemovedInDjango19Warnings

With Django 1.8 there are several RemovedInDjango19Warning warnings triggered by django-cms:

RemovedInDjango19Warning: The django.contrib.admin.util module has been renamed. Use django.contrib.admin.utils instead.

via:
cms/admin/placeholderadmin.py
8:from django.contrib.admin.util import get_deleted_objects

cms/admin/pageadmin.py
15:from django.contrib.admin.util import get_deleted_objects

cms/tests/permmod.py
6:from django.contrib.admin.util import unquote

And django.utils.importlib will be removed in Django 1.9. via:
  …/django-cms/cms/utils/django_load.py(15)<module>()
     13 import traceback # changed
     14
---> 15 from django.utils.importlib import import_module
     16 from django.utils.six.moves import filter, map
     17

@blueyed which django CMS version are you using? With django CMS 3.1.2 there should be no warning regarding 1.9

@yakky
I was using the develop branch, but it's the same with 3.1.2.
cms/utils/django_load.py is using from django.utils.importlib import import_module, for example.

@blueyed #4255 should remove any deprecation warning in the django CMS codebase.
Thanks for sharing this

Fixed in #4255

I'm still seeing a couple of RemovedInDjango19Warning's after upgrading to CMS 3.1.3:
cms/models/permissionmodels.py:7: RemovedInDjango19Warning: django.utils.importlib will be removed in Django 1.9.

cms/utils/compat/forms.py:11: RemovedInDjango19Warning: django.db.models.get_app is deprecated.


Only back faces are selected with an orthographic camera.

Using a perspective camera in the mouse_picking example, the debug cursor points towards the camera when the sphere is hovered over. Using an orthographic camera (OrthographicCameraBundle::new_3d()), the cursor is instead placed on the side facing away from the camera. Here's a screenshot of what this looks like:

This issue also seems to affect bevy_mod_picking.

Thanks for the report. I'll take a look.


active tab

It is not necessary for components to pass in a hardcoded active tab attribute. Neither Book or Chapter selector make use of it, and it makes things complicated for CollectionSelector. If the active tab is set to 'Single Pane' but the 'Single Pane menu is disabled, it will still display the contents since all tabs are being passed to the tab menu despite their visibility:
showSinglePane: false, showSideBySide: true, showVerseByVerse: true

It is possible to set the active tab prop to be the 'default layout option' value but Scripture App Builder allows the user to select a disabled layout option as the default.

Instead, have the tab component menu initialize the active tab to the first available visible tab.

@chrisvire

@jakedcolbert I am fine with using this as the default. The caller should still be able to override the default (i.e. it is an export let instead of just let).
With the collection selector, it should set this to the current layout.mode.


Shadow DOM Suport

Hi,
I have this plugin working just fine when rendering my React app in to the main DOM but styles are not moved to the Shadow DOM when I render my app in a shadow root.
Could that be an option on the plugin maybe?
It looks like it might be something here? https://github.com/HorusGoul/vite-plugin-stylex/blob/main/packages/vite-plugin-stylex/src/index.mts#L368
Or would it make more sense to use another vite plugin that takes the outputted CSS and moves it in to the shadow root?
thanks for your help

I'm curious why you need to render the styles within a shadow root. Styles generated by StyleX are atomic and shouldn't need isolation :thinking:


PP-1562 github-release script to create releases and publish on GitHub

The command line script github-release allows you to easily build an artifact containing the generated static site and publish it on GitHub in a format that makes it suitable for use as a Node.js dependency.
Using the GitHub API, the script creates a new release from master with an associated tag. On your local machine, it then builds a static version of the site (using middleman) from your working copy, adds a package.json file (which makes it a Node.js module) inside the resulting build directory, tars and gzips the build directory, then attaches the gzipped tarball as a binary to the release in GitHub, where it appears alongside the source code downloads on the releases page. This artifact is available over HTTPS and can be used as a dependency in a Node.js project.

Looks fine despite a comment. Be interested to run this once a fix has been be done.

@joshmyers Addressed code review comment. Feel free to merge anytime. Cheers

👍