using wifi with async/await (AsyncEventBus)

I try to use the wifi wait_status_with_timeout() function in an async task. As I understand, the experimental feature as_async() can be used to archive this.
So, to get an event change asynchronously, I use it like so:
wifi.set_configuration(...);

{
    let mut wifi = wifi.as_async();
    let mut sub = wifi.subscribe().unwrap();
    sub.recv().await?;
}

let status = wifi.get_status();

But, after running this, it waits forever at sub.recv().await?;.
Do I have to use it differently, or do I have to configure something to use it? Are there any plans to provide wait_status_with_timeout() as an async version?

sub.recv().await? will indicate you that the Status instance of the Wifi trait had changed, but not necessarily that the Wifi is connected. You still need to call wifi.get_status() afterwards to inspect if the Wifi is connected, or else await again.
You can also use the above to cover other use cases as well, like when the Wifi gets disconnected for example.
What executor are you using to spin the above await btw?

Oh and by the way:

in between wifi.set_configuration and your call to subscribe, the status might had changed already, so if you just unconditionally await it could be forever, yes
Moreover, once you call subscribe, you have to read messages in a loop from the subscription, or else you'll block the whole system event loop

Perhaps my problem is that I'm not sure what you are actually trying to achieve in general, with the async call?

Closing - feel free to reopen with additional details.

In general, I want to wait for status change but with not blocking the whole thread like I would do with wait_status_with_timeout().
As an executer I use smol as it is in the example esp32-demo-app.

But if you go async you have to go async for everything or at least for all the workload you schedule on that particular thread. Can you share a bigger sample of what you are trying to accomolish?

I want to do nearly the same as described in #73. I try to have all my functionality in one thread. This means I want to handle the wifi configuration, I host a rest interface and serve a small configuration web page.
For the hosting part, I use crates routerify and hyper. This works well with async. Now I need the async behavior for the wifi handling on the esp. Can you provide me with some info on what's the status of this crate using async. I need for example the scan, the wait_on_status_change as I said and the configuration methods.
Unfortunate, the functionality I want to have is implemented in a larger project in a private repo. But I plan to write a small test, for the async behavior of the wifi.
Thanks for your help.


Add two new button styles

Added two new button styles with hover states.

Great Work!!
Thanks for Contribution!


GoogleGenerativeAIError: [400 Bad Request] Invalid JSON payload received.

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain.js documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain.js rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
The following code
`import { BaseMessage } from "@langchain/core/messages";
import {
ChatPromptTemplate,
MessagesPlaceholder,
} from "@langchain/core/prompts";
import { RunnableConfig } from "@langchain/core/runnables";
import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
import { END, START, StateGraph } from "@langchain/langgraph";
import { githubTool, invoiceTool, weatherTool } from "./tools";
interface AgentExecutorState {
input: string;
chat_history: BaseMessage[];
/**

The plain text result of the LLM if
no tool was used.
/
result?: string;
/*
The parsed tool result that was called.
/
toolCall?: {
name: string;
parameters: Record<string, any>;
};
/*
The result of a tool.
*/
toolResult?: Record<string, any>;
}

const invokeModel = async (
state: AgentExecutorState,
config?: RunnableConfig
): Promise<Partial> => {
const initialPrompt = ChatPromptTemplate.fromMessages([
[
"system",
You are a helpful assistant. You're provided a list of tools, and an input from the user.\n Your job is to determine whether or not you have a tool which can handle the users input, or respond with plain text.,
],
new MessagesPlaceholder({
variableName: "chat_history",
optional: true,
}),
["human", "{input}"],
]);
const tools = [githubTool, invoiceTool, weatherTool];
const llm = new ChatGoogleGenerativeAI({
apiKey: process.env.GOOGLE_API_KEY,
model: "gemini-1.5-flash",
streaming: true,
maxConcurrency: 2,
temperature: 0,
apiVersion: "v1beta",
}).bindTools(tools);
const chain = initialPrompt.pipe(llm);
const result = await chain.invoke(
{
input: state.input,
chat_history: state.chat_history,
},
config
);
if (result.tool_calls && result.tool_calls.length > 0) {
return {
toolCall: {
name: result.tool_calls[0].name,
parameters: result.tool_calls[0].args,
},
};
}
return {
result: result.content as string,
};
};
const invokeToolsOrReturn = (state: AgentExecutorState) => {
if (state.toolCall) {
return "invokeTools";
}
if (state.result) {
return END;
}
throw new Error("No tool call or result found.");
};
const invokeTools = async (
state: AgentExecutorState,
config?: RunnableConfig
): Promise<Partial> => {
if (!state.toolCall) {
throw new Error("No tool call found.");
}
const toolMap = {
[githubTool.name]: githubTool,
[invoiceTool.name]: invoiceTool,
[weatherTool.name]: weatherTool,
};
const selectedTool = toolMap[state.toolCall.name];
if (!selectedTool) {
throw new Error("No tool found in tool map.");
}
const toolResult = await selectedTool.invoke(
state.toolCall.parameters,
config
);
return {
toolResult: JSON.parse(toolResult),
};
};
export function agentExecutor() {
const workflow = new StateGraph({
channels: {
input: null,
chat_history: null,
result: null,
toolCall: null,
toolResult: null,
},
})
.addNode("invokeModel", invokeModel)
.addNode("invokeTools", invokeTools)
.addConditionalEdges("invokeModel", invokeToolsOrReturn)
.addEdge(START, "invokeModel")
.addEdge("invokeTools", END);
const graph = workflow.compile();
return graph;
}
`
Is exacly the same as the repo https://github.com/bracesproul/gen-ui
But I'm trying to use ChatGoogleGenerativeAI.
Error Message and Stack Trace (if applicable)
This runs the error
⨯ unhandledRejection: GoogleGenerativeAIError: [400 Bad Request] Invalid JSON payload received. Unknown name "default" at 'tools[0].function_declarations[1].parameters.properties[1].value.items.properties[0].value': Cannot find field.
Invalid JSON payload received. Unknown name "exclusiveMinimum" at 'tools[0].function_declarations[1].parameters.properties[1].value.items.properties[2].value': Cannot find field.
Invalid JSON payload received. Unknown name "exclusiveMinimum" at 'tools[0].function_declarations[1].parameters.properties[1].value.items.properties[3].value': Cannot find field.
Invalid JSON payload received. Unknown name "default" at 'tools[0].function_declarations[2].parameters.properties[2].value': Cannot find field. [{"@type":"type.googleapis.com/google.rpc.BadRequest","fieldViolations":[{"field":"tools[0].function_declarations[1].parameters.properties[1].value.items.properties[0].value","description":"Invalid JSON payload received. Unknown name "default" at 'tools[0].function_declarations[1].parameters.properties[1].value.items.properties[0].value': Cannot find field."},{"field":"tools[0].function_declarations[1].parameters.properties[1].value.items.properties[2].value","description":"Invalid JSON payload received. Unknown name "exclusiveMinimum" at 'tools[0].function_declarations[1].parameters.properties[1].value.items.properties[2].value': Cannot find field."},{"field":"tools[0].function_declarations[1].parameters.properties[1].value.items.properties[3].value","description":"Invalid JSON payload received. Unknown name "exclusiveMinimum" at 'tools[0].function_declarations[1].parameters.properties[1].value.items.properties[3].value': Cannot find field."},{"field":"tools[0].function_declarations[2].parameters.properties[2].value","description":"Invalid JSON payload received. Unknown name "default" at 'tools[0].function_declarations[2].parameters.properties[2].value': Cannot find field."}]}]
Description
I'm just trying to use Gemini instead of OpenAI
System Info
"@langchain/community": "^0.2.10",
"@langchain/core": "^0.2.6",
"@langchain/google-genai": "^0.0.20",
"@langchain/langgraph": "^0.0.23",

CC @bracesproul

I'm trying to use ChatGoogleGenerativeAI.withStructuredOutput(zodSchema) to convert result to my desire json structure as in the example on Langchain JS here via function calling approach and facing the same issue.
My observation is that .withStructuredOutput(zodSchema) method consume the zodSchema and use zod + zod-to-json-schema package internally to convert to json and use it to describe parameters in function declarations.
The problem is that the internal utils that they are using only stripping off own properties.
Function declarations should follow this interface from @google/gen-ai and the json schema should have "type" key with all upper case letters as in this enum
which is also described in the google genai doc for example function declaration.
It could be case-sensitive condition for this particular value for "type" key on the server.
I've tried to create literal function declaration objects which used this enum and bound it to the model and its works.
Addition to this, there's another issue to parse json output function call in the response from gemini. Gemini return function calls info to invoke in message.kwargs.tool_calls, which is different from what is supported by JsonOutputToolsParser with method parseResult, it try to find function call args in message.additional_kwargs.tool_calls which is not where these argument being return when using gemini.
With your case, you could check wheter the tools in import { githubTool, invoiceTool, weatherTool } from "./tools"; that you are using is declare to not using zodSchema - just for this case - and follow StructuredToolInterface or FunctionDeclaration and the example from google ai I have mentioned earlier.
Hope the team could to something with the zodSchema transformer that they use and for an adapter to parse arguments in response a map it to OpenAI so that langchain could handle it later with pipe without further change in core module.

refer to this issue


Allow for root configuration within rclone

Allowing rclone to have a subdir configuration by setting the root path would make transferring to subdir paths easier.
An example:
[google]
type = drive
client_id =
client_secret =
token = {"access_token":"ASDFSAFAASD"}

[g_t]
type = drive
remote = google:DIR/SUBDIR WITHSPACE/
client_id =
client_secret =
token = {"access_token":"ASDFSAFAASD"}

[g_m]
type = drive
remote = google:DIR/SUBDIR/
client_id =
client_secret =
token = {"access_token":"ASDFSAFAASD"}

We have made the alias feature in #1049 which I think is probably sufficient for your needs.
You can find it in the latest beta.
I'm going to close this now.


Error: no implicit conversion of nil into String

Error: no implicit conversion of nil into String
Please report this bug:
    https://github.com/caskroom/homebrew-cask/issues
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/digest.rb:44:in `initialize'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/digest.rb:44:in `open'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/digest.rb:44:in `file'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/digest.rb:29:in `file'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/download.rb:39:in `block in _check_sums'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/download.rb:37:in `each'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/download.rb:37:in `_check_sums'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/download.rb:30:in `perform'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/installer.rb:56:in `download'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/installer.rb:33:in `install'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli/install.rb:20:in `block in install_casks'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli/install.rb:17:in `each'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli/install.rb:17:in `install_casks'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli/install.rb:6:in `run'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli.rb:80:in `run_command'
/usr/local/Cellar/brew-cask/0.38.1/rubylib/cask/cli.rb:120:in `process'
/usr/local/bin/brew-cask.rb:42:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Library/brew.rb:58:in `require?'
/usr/local/Library/brew.rb:141:in `<main>'

I ran audit and it spit this out
Error: : syntax error, unexpected tCONSTANT, expecting :: or '[' or '.'
class 010Editor < Cask
^
:11: syntax error, unexpected keyword_end, expecting end-of-input while loading '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/010-editor.rb'

You have an outdated version of brew-cask. Run brew update && brew upgrade brew-cask  && brew cleanup && brew cask cleanup, then try again.
On Sun, Jan 25, 2015, 5:12 PM Ernie Casilla<EMAIL_ADDRESS>wrote:

I ran audit and it spit this out
Error: : syntax error, unexpected tCONSTANT, expecting :: or '[' or '.'
class 010Editor < Cask
^
:11: syntax error, unexpected keyword_end, expecting end-of-input while
loading '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/010-editor.rb'
—
Reply to this email directly or view it on GitHub
https://github.com/caskroom/homebrew-cask/issues/9238#issuecomment-71396459
.

Thanks @jawshooah it worked i saw the README to late


Update metalog and allow 'json' parameter

[x] tests and linter show no problems (npm t)
[x] tests are added/updated for bug fixes and new features
[x] code is properly formatted (npm run fmt)
[x] description of changes is added in CHANGELOG.md
[x] update .d.ts typings

Landed in https://github.com/metarhia/impress/commit/85fd1f056556238851cbe1910d4ba5192e10a599


ion-slides and ion-slide-page in ionic : 1.2.4

Ion slides do not show, due to height being set to 0px!
Override it by setting this in CSS:
div.swiper-container-horizontal{
height: 100px;
width: 100px;
}

Thanks for submitting an issue to us! We just need a little more info from you so that we can better help you with this issue! Would you mind providing a codepen for us to test with? Also if you could can you run ionic info and post the output here please?

Hello! Thanks for opening an issue with us! Since it has been a little while since there was any activity on this issue i will be closing it, but feel free to reopen this issue if needed!

I'm experiencing the same issue. the only way ion-slides show up is if i define a fixed height in px. Is there a way of ion-slides fit their ion-slide-pages' height?

Hey @rjgpereira ! Would you please open a new issue that describes your issue and provides a code example for us please? Thanks!


feat: Offline support

I close this since it's been really long. And I don't remember is this was fully tested, I don't want to break things because I don't have time to spend fixing them rn.


Example captions

Examples in WFS_FES are captioned. There is no provision for title captions in Metanorma to date (because examples are not captioned in ISO), and example captions are currently ignored. @ronaldtse  Are you ok for me to add support for title captions to OGC? And to Metanorma in general? If so, the caption might look a little odd in HTML CSS.

Please review instance of example in 5.6.4.
It does look bad, but I don't want to change the ISO-based presentation of examples in the Metanorma stack. Suggestions welcome.
17-069.html.zip

It looks quite weird now:

Can we make the rendered structure more reasonable, like this? I never liked using a table for EXAMPLEs.

    EXAMPLE: URL of the OpenAPI definition

      If the OpenAPI Server Object looks like this:

      servers:

        - url: https://dev.example.org/

          description: Development server

        - url: https://data.example.org/

          description: Production server

      The path “/mypath” in the OpenAPI definition of a WFS would be the URL <tt>https://data.example.org/mypath</tt> for the production server.

Do you want this changed just for OGC, or in general? I thought this rendering was ISO's.

In ISO Word the rendering style of a table has no borders. In ISO HTML it is our own style.
So I’d say we should change the Example design for all the styles we control, I.e. all non ISO-Word styles.


[PW-7981] 500 error with Klarna afterpay Payment - not working

Describe the bug
When i want to pay with Klarna afterpay it triggers the following error:
[vendor/adyen/adyen-shopware6/src/Handlers/AbstractPaymentMethodHandler.php ](line 593)

if (!is_null($product->getSeoUrls())) {
                 $hostname = $salesChannelContext->getSalesChannel()->getDomains()->first()->getUrl();
                 $productPath = $product->getSeoUrls()->first()->getPathInfo();
                 $productUrl = str_replace('//', '/', $hostname . $productPath);
} else {
                   $productUrl = null;
}

Versions
Shopware version: <IP_ADDRESS>
Plugin version: 3.8.1
To Reproduce
Steps to reproduce the behavior:
Video because the url is behind private environment

Go to  a product
Add product to cart
Login or create account
Scroll down to payment
Choose Klarna payment
Click on Create Order
In the network tab you get a 500 error

Expected behavior
I expect to go to the payment portal of Adyen to finish the payment.
Screenshots

Desktop (please complete the following information):

OS: Ventura 13.2
Browser: Chrome
Version 109

Additional context
I found out that the following returns a empty array
$product->getSeoUrls()
this means that $product->getSeoUrls()->first() is NULL and $product->getSeoUrls()->first()->getPathInfo() will trigger the 500 error
To me it looks like that this if (!is_null($product->getSeoUrls())) {   should be something like this if (!is_null($product->getSeoUrls()) || !empty($product->getSeoUrls())) {
Ps. this is a variant product

Hello @bitfactory-michel-lubbers,
Thank you for creating this issue. We created an internal ticket for the solution.
Best Regards,
Can


Make deploy service account optional for GCP

Resolves: https://github.com/privacysandbox/coordinator-services-and-shared-libraries/issues/12

closed as per related issue


Initial implementation of a breakpoint for migration rollback.

See https://github.com/robmorgan/phinx/issues/494 for the issue.

waiting to see if theres further support from the community

This is a really good feature and I would love to see if incorporated into phinx! It means you can have a "safety net" so you don't accidentally roll back all your database changes. It also means that when you start a new task, you can put a breakpoint in on the "current" change, and it's really easy to roll back to that point while you're working on that task.

Thank you for contributing! The branch you made this PR against is no longer accepting patches. This probably happened because we didn't merge your changes fast enough. :sob:
Please create a new PR against the current default branch if you want to see these changes merged.


Support for incremental compression

Hi Craig,
I noticed that the library exposes APIs for "incremental" compression but does not actually implement them.
It would be great if it was implemented.
Thanks!

Do you mean the C library or the Python code?

Yes correct, the C API.

I'm happy to implement this in-principle. But I need to find the time in life to do it. At this point, I'm not sure when I might be able to, sorry to say.

I completely understand.
It's just something that would be a nice to have.

I've added an implementation of lzs_compress_incremental() et al. It works on one test file; I haven't done more thorough testing yet.

That's great! Looking forward to using it :)

I'm satisfied with the initial implementation. Other issues cover additional follow-up work such as unit tests, hash table.


what did you expect, it is a "butterbrot"

hfcskf.w,mqaulkfkeahfas

About the

PR
Media

[ ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

add: Added butterbrot!

wrong repo
smh


Self-learning classifier .kmodel link doesn't work

The URL to download the .kmodel from the following README doesn't lead to a .kmodel file:
https://github.com/sipeed/MaixPy_scripts/tree/master/machine_vision/self_learning_classifier
The URL:
https://www.maixhub.com/index.php/index/index/detail/id/225.html

Try using https://www.maixhub.com/ and register there to get models.


Credit card token is no longer available

This is the error that I receive
Midtrans Error (411): Credit card token is no longer available. Please create a new one

Code
Sent data to back-end
address: 4
courier: "pos"
courierService: "Paket Kilat Khusus"
note: null
shippingPrice: 328000
token_id: "L40liCDOPCh8WY6Cns1QOd0kaoePOLi48RxwWLRL" // assume that "token_id" is CSRF Token from my page
totalPrice: 15918000
weight: 8

controller
        $token_id = $request->input('token_id');

        // Transaction data to be sent
        $transaction_data = array(
            'payment_type' => 'credit_card',
            'credit_card'  => array(
                'token_id'      => $token_id,
                'authentication'=> true,
                // 'bank'          => 'bni', // optional to set acquiring bank
                // 'save_token_id' => true   // optional for one/two clicks feature
            ),
            'transaction_details' => $transaction_details,
            'item_details'        => $items,
            'customer_details'    => $customer_details
        );

Hi @robertnicjoo token_id is the representation of customer's card data, not your CSRF token, that will be used during a transaction. token_id should be retrieved using MidtransNew3ds.JS library on merchant's website frontend, card data will be securely transmitted by frontend javascript to Midtrans API in exchange of card token_id, to avoid risk involved if card data being transmitted to merchant's backend. Please read our docs carefully to get a more cleary step guide.
Thank you

Closing the issue due to no activity, please comment if you still encounter the issue. Thanks


[Voteparty] Fails to disperse key

Vote party hit on Orion and no keys were given out to any player.

Vote via /vote
hit the /vp Goal
Get no keys
See error

for all players who voted and are online to get a key. (limited keys rn, solar during normal ""seasons"")
Orion
A discord support ticket was made showing all users who were online during the voteparty.

A fix for this has been tested on beta, and pushed to the live servers!  Config was reloaded on all servers, so it should be good to go!  Thanks Death!


Views

Dear reviewer,
In this part of the project. I put the erb code in the files I already created and styled them.
Regards,

Thank you for your review @emmanuellekamwa


Change test case name formatting for clarity of code.

Codecov Report
Base: 28.52% // Head: 28.52% // No change to project coverage :thumbsup:

Coverage data is based on head (b0fb4bb) compared to base (ddf1741).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##           stable     #901   +/-   ##
=======================================
  Coverage   28.52%   28.52%
=======================================
  Files          72       72
  Lines        5872     5872
  Branches      314      314
=======================================
  Hits         1675     1675
  Misses       4112     4112
  Partials       85       85

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fix request header being pinned after pd profiling

/cc @baurine @breeswish @YiniXu9506
PTAL, thanks!

/merge


feat: introduce modifier attribute to near_bindgen

Was an idea I had that I wanted to try out to see if it was feasible and what the API would look like. This is intended to be like Solidity function modifiers https://www.tutorialspoint.com/solidity/solidity_function_modifiers.htm. Currently, this is a stateless version of this. This allows creating assertions that happen before or after the method logic (as opposed to only being able to create assertions
Very rough, so just feel free to share high-level ideas about what this could look like. Here are my ideas:

Allow passing variables into the modifiers to make them stateful (maybe this should be done automatically and just force your macro to have the correct signature? This comes with negative that they might not be easily re-usable)
Allow passing in multiple modifiers ie #[modifiers(one_modifier, other_modifier)] possibly?
Maybe apply the modifiers within the current function instead of just on wasm32 codegen

This might lead to a better unit testing experience, but might come at the cost of poor formatting that comes with wrapping code with a macro, not sure.

Possibly also include the serialization tokens within another variable, so you can add assertions before anything is done for stateless things like if the state is already set

This not only provides a more standard way of checking, but also would save gas when able to short circuit on the failed criteria

I can see some serious benefits for DevX but also functional benefits for developers that don't want to hand-write methods outside the SDK to achieve these same things. The tricky part is this API is very unclear what the best direction is or the semantics of how it would be applied. If expanded on, this eliminates the need for adding modifiers for every use case, for example https://github.com/near/near-sdk-rs/issues/194. This also means that these modifiers could be composable and can be initiated by the community.
I probably won't touch this unless just hacking on or having fun with, unless others think there might be a value add here.

This was just exploratory to replicate solidity function modifiers. Unfinished with no plans to continue and opinionated, so closing


⚠ Bofrost.at has degraded performance

In b293c13, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1076 ms

Resolved: Bofrost.at performance has improved in aedda4f after 6 minutes.


Release version v0.1.0

Use the 0.1.0 release milestone to track burndown.

[x] All OWNERS must LGTM the release proposal.
[x] Update the job template to use the new tagged container image (PR #53)
[x] An OWNER runs git tag -s $VERSION and insert the changelog into the tag description.
[x] Build and push a container image with the same tag to quay.io.
[x] Update the :latest virtual tag in quay.io to track the last stable (this) release.
[x] An OWNER pushes the tag with git push $VERSION.
[x] Write the change log into the Github release info.
[x] Add a link to the tagged release in this issue.
[x] An announcement email is sent to<EMAIL_ADDRESS>with the
subject [ANNOUNCE] node-feature-discovery $VERSION is released
[ ] Close this issue.

Proposed release notes:

Use kubernetes-incubator.io in label namespace instead of intel.com.
Graceful failure if discovery from a source fails.
Use client-go instead of the unversioned client.
Separate discovered features from logs in output (stdout/stderr).
Delete non-discovered feature labels.
Version string no longer part of published label key.
Configure bots for repo management automation.
Investigate and fix a number of issues from the quay.io vulnerability report.

LGTM

LGTM

The tagged release is: https://github.com/kubernetes-incubator/node-feature-discovery/releases/tag/v0.1.0

Announcement on kubernetes-dev: https://groups.google.com/forum/#!topic/kubernetes-dev/eOT43IU275w

Checklist complete, closing.


The image on this page is impossible for me to read

The image is fixed. I can't copy it into another application to zoom-in. Zooming-in with the browser increases the font size of everything but the image. I used the Magnifier app on my machine for the very first time, and the resolution of the image made the majority of the words unreadable.
It looks like the creator of this image took a lot of care to be thorough. It's too bad I could only maybe read it if my eyes were 20 years younger.

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

ID: d740d43f-a1c2-e806-63cb-f8b6c7c4f4e7
Version Independent ID: b3f34e06-f3dd-74df-79c7-4bfbf8f9670e
Content: WCF Configuration Schema
Content Source: docs/framework/configure-apps/file-schema/wcf/index.md
Product: dotnet-framework
Technology: dotnet-wcf
GitHub Login: @HongGit
Microsoft Alias: wcfsrvt

If you open the image url directly from here does it look good?

Much better. Much appreciation. Thanks!
Paul Harris
PerByte, Inc.

From: Youssef Victor<EMAIL_ADDRESS>Sent: Wednesday, September 23, 2020 3:40 PM
To: dotnet/docs<EMAIL_ADDRESS>Cc: Paul Harris<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [dotnet/docs] The image on this page is impossible for me to read (#20757)
If you open the image url directly from herehttps://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/wcf/media/index/windows-communication-foundation-configuration-schema.gif does it look good?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/dotnet/docs/issues/20757#issuecomment-697960688, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFPWQ2AXBNHMKBWUEFL7FV3SHJMK3ANCNFSM4RXGSIBQ.


Refactor application list components

What this PR does / why we need it:

Extract application table row as a component
Add tests

Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

/lgtm

/lgtm

🚀
/approve

🚀
/approve


Bump dartdoc to 5.1.1

See https://pub.dev/packages/dartdoc/changelog#510 for changes, most notably:

Fixed the {@youtube} directive to respect the provided width and height. (https://github.com/flutter/flutter/issues/3030)

Fixes https://github.com/flutter/flutter/issues/90302.
Supersedes https://github.com/flutter/flutter/pull/104010.

Dartdoc is still crashing: https://github.com/dart-lang/dartdoc/issues/3039#issuecomment-1130245416
Closing this until there is a new dartdoc version.


Log upsert progress

This logs upserts every 50,000 instructions to make it easier to debug/track progress for both ingress and compute routes.

soda-fountain #420 SUCCESS
This pull request looks good


SHA1 Update Checker Fails With Error

Using GitHub Enterprise and also using the Hex package manager, (unsure if either are relevant for this). Using 0.107.6 but it was also failing on the 0.106 releases I was experimenting with yesterday in the same fashion.
When running the generic update script, it creates the PRs I would expect it to (I believe), but then the script fails with the following stacktrace.
Traceback (most recent call last):
	15: from generic-update-script.rb:116:in `<main>'
	14: from generic-update-script.rb:116:in `each'
	13: from generic-update-script.rb:133:in `block in <main>'
	12: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-common-0.107.6/lib/dependabot/update_checkers/base.rb:38:in `can_update?'
	11: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-common-0.107.6/lib/dependabot/update_checkers/base.rb:160:in `version_can_update?'
	10: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-common-0.107.6/lib/dependabot/update_checkers/base.rb:189:in `sha1_version_can_update?'
	 9: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-common-0.107.6/lib/dependabot/update_checkers/base.rb:70:in `preferred_resolvable_version'
	 8: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.6/lib/dependabot/hex/update_checker.rb:30:in `latest_resolvable_version'
	 7: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.6/lib/dependabot/hex/update_checker.rb:79:in `latest_resolvable_version_for_git_dependency'
	 6: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.6/lib/dependabot/hex/update_checker.rb:136:in `latest_git_tag_is_resolvable?'
	 5: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.6/lib/dependabot/hex/update_checker/file_preparer.rb:29:in `prepared_dependency_files'
	 4: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.6/lib/dependabot/hex/update_checker/file_preparer.rb:29:in `map'
	 3: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.6/lib/dependabot/hex/update_checker/file_preparer.rb:32:in `block in prepared_dependency_files'
	 2: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.6/lib/dependabot/hex/update_checker/file_preparer.rb:61:in `mixfile_content_for_update_check'
	 1: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.6/lib/dependabot/hex/update_checker/file_preparer.rb:80:in `relax_version'
/usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.6/lib/dependabot/hex/file_updater/mixfile_requirement_updater.rb:24:in `updated_content': Expected content to change! (RuntimeError)

Hmmm, can you share your mixfile and the dependency name being updated when the error occurs? You can email to<EMAIL_ADDRESS>and please redact anything sensitive.

It actually happens on just every project I have tried it on internally, but I will get sharing that information cleared internally and get back to you.

I think this should be fixed in 0.107.9, but I'm not sure - can you give it a try?

(The fix was very cowardly, so it might not catch every case.)

Seems to catch more of them, but it still fails with the same stack trace. It doesn't print diagnostic information about what dependency is failing, though, so I'm not sure which one is tripping it.
Traceback (most recent call last):
	15: from generic-update-script.rb:116:in `<main>'
	14: from generic-update-script.rb:116:in `each'
	13: from generic-update-script.rb:133:in `block in <main>'
	12: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-common-0.107.10/lib/dependabot/update_checkers/base.rb:38:in `can_update?'
	11: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-common-0.107.10/lib/dependabot/update_checkers/base.rb:160:in `version_can_update?'
	10: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-common-0.107.10/lib/dependabot/update_checkers/base.rb:189:in `sha1_version_can_update?'
	 9: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-common-0.107.10/lib/dependabot/update_checkers/base.rb:70:in `preferred_resolvable_version'
	 8: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.10/lib/dependabot/hex/update_checker.rb:30:in `latest_resolvable_version'
	 7: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.10/lib/dependabot/hex/update_checker.rb:79:in `latest_resolvable_version_for_git_dependency'
	 6: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.10/lib/dependabot/hex/update_checker.rb:136:in `latest_git_tag_is_resolvable?'
	 5: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.10/lib/dependabot/hex/update_checker/file_preparer.rb:29:in `prepared_dependency_files'
	 4: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.10/lib/dependabot/hex/update_checker/file_preparer.rb:29:in `map'
	 3: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.10/lib/dependabot/hex/update_checker/file_preparer.rb:32:in `block in prepared_dependency_files'
	 2: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.10/lib/dependabot/hex/update_checker/file_preparer.rb:61:in `mixfile_content_for_update_check'
	 1: from /usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.10/lib/dependabot/hex/update_checker/file_preparer.rb:81:in `relax_version'
/usr/local/lib/ruby/gems/2.6.0/gems/dependabot-hex-0.107.10/lib/dependabot/hex/file_updater/mixfile_requirement_updater.rb:24:in `updated_content': Expected content to change! (RuntimeError)

Seems that it's when a private repository dependency is not in the format {:dependency, tag: "1.2.3", git<EMAIL_ADDRESS>that it fails. It does not seem to like dependency: [tag: "1.2.3", git<EMAIL_ADDRESS>though they're equivalent in elixir-ese. Converting to the former format causes the script to succeed.

Yeah, it's definitely that! I need to update our regexes to be able to cope with the later format (hence my previous fix being cowardly).

If you have mix installed, you can ask the project about itself using Mix.Project. May help you have that be less fragile.
https://hexdocs.pm/mix/Mix.Project.html

Yeah, the trouble is doing the updating, rather than the parsing - we already shell out to Mix for the former, but need to update the mixfile ourselves.

👋 this is a really old issue. I suspect it still repro's, but wanted to check... are you still seeing it?


Flex layout extension overload

Description of Change

Added an overload method for Basis<T>, and updated all summaries for FlexlayoutExtensions
Linked Issues

Fixes #48

PR Checklist

[x] Has a linked Issue, and the Issue has been approved(bug) or Championed (feature/proposal)
[X] Has tests (if omitted, state reason in description)
[x] Has samples (if omitted, state reason in description)
[X] Rebased on top of main at time of PR
[X] Changes adhere to coding standard
[x] Documentation created or updated: https://github.com/MicrosoftDocs/CommunityToolkit/pull/53

Additional information

/azp run


chore: update advanced example to integrate ICL with multiple EN instances

Description
Update advanced example to integrate ICL with multiple EN instances to see if we reproduce https://github.com/IBM-Cloud/terraform-provider-ibm/issues/5734
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

Upgrade test failed since I changed the module name in the example. No impact to module code, so skipping

/run pipeline

:tada: This PR is included in version 3.1.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Suggestion : Jukebox support

Greeting, my suggestion is to add jukebox support because :

I want to prevent some player to take cd's from a jukebox block
I want to prevent some player to put cd's to a jukebox block

At first I tested two event like on player interacts with JUKEBOX & on player right clicks JUKEBOX and search for other solution

Does the right clicks jukebox event not work? 0.o

The event fire when you right click a jukebox but you cannot determine cancelled it for the cd's in and out

Works fine for me:
test_event:
    type: world
    events:
        on player right clicks jukebox:
        - narrate "nope"
        - determine cancelled

Properly cancels the event when I try to put a disk in, and properly cancels the event when I try to take a disk out or swap it with another.
To prevent players from doing one or the other action, you can just detect the item they're clicking with and handle that logic yourself. I do see an opportunity here to add some blockdata properties and a mec to force the jukebox to play. But the event works fine.

I can confirm that the event for jukebox work fine now


Test result key should be implemented as enum, not a string

This is a leftover from transitioning to enums in the past.
Pull Request Checklist

[x] implement the feature

Seems we have a little regression:
:: [ 08:12:17 ] :: [  BEGIN   ] :: Running 'tmt tests show mini'
/tests/mini
                    test ./test.sh
                    path /tests
               framework shell
                  manual false
                     tty false
                duration 5m
                 enabled true
                  result ResultInterpret.RESPECT
       restart_max_count 1
     restart_with_reboot false

:: [ 08:12:18 ] :: [   FAIL   ] :: File '/var/tmp/rlRun_LOG.H4A4Jrdi' should contain 'result respect'

Seems we have a little regression:
:: [ 08:12:17 ] :: [  BEGIN   ] :: Running 'tmt tests show mini'
/tests/mini
                    test ./test.sh
                    path /tests
               framework shell
                  manual false
                     tty false
                duration 5m
                 enabled true
                  result ResultInterpret.RESPECT
       restart_max_count 1
     restart_with_reboot false

:: [ 08:12:18 ] :: [   FAIL   ] :: File '/var/tmp/rlRun_LOG.H4A4Jrdi' should contain 'result respect'

Addressed in bad555bd

Failing test is an unrelated Unrecognized package manager. error, merging.


icons: use new updates to libraries

Is your feature request related to a problem? Please describe.
Bitcoin Icons and Hardware illustrations have been updated and added GitHub repos.
Describe the solution you'd like
Use the GitHub repos
https://github.com/GBKS/bitcoin-hardware-illustrations
https://github.com/BitcoinDesign/Bitcoin-Icons
Additional context

[ ] Do I need to remove a layer on all new icons like I did with Figma files?
[ ] Remove old bitcoin icons
[ ] Remove old hardware icons
[ ] Add new bitcoin icons
[ ] Add new hardware icons
[ ] Make sure Previews still work (old icons had 3 sizes, make sure to constrain Image size now)
[ ] Make sure MyMattress still works (dot icons might not be in bitcoin/hardware icons)

Would it be easier for you if the icons were available as npm libraries (or via some other package management system)?

Thats a good question and good potential idea. The package management system for Swift would be Swift Package Manager. It might be more involved than npm, so just holler at me if its something you want to test out in the future and I can help out in any way.


(Task) Add arrow accelerator quickstart

Closed by: https://github.com/spiceai/quickstarts/pull/218


Winget reporting the wrong version for some apps

Brief description of your issue
Winget shows the wrong version for some apps and trys to upgrade when they are fully up to date as showen below
Steps to reproduce
Download Safing Portmaster than run "winget upgrade"
Expected behavior
It to show the correct version
Actual behavior
It shows the wrong version and trys to upgrade even when up to date

Environment
Windows Package Manager v1.3.2691

Windows: Windows.Desktop v10.0.22621.963
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.18.2691.0

Safing Portmaster v1.0.4

The version displayed by WinGet is what is displayed in Windows Apps & Features.
The "installer" is responsible for setting the registry keys for those values.
The functionality for 1.3 is described in the blog:
https://devblogs.microsoft.com/commandline/windows-package-manager-1-3/#new-version-reporting

Oh, @denelon I have that problem with these VC++ redists.
Is that also something wrong in the registry, or am I just doing something wrong?
I have run those updates dozens of times, and they just keep coming back.

What is that UI coming from? It doesn't look like Windows Apps & Features.
In general, we currently have challenges with many of the VC redists due to the various architectures being installed. We have work in progress to improve the situation. We have a set of heuristics that truncate architecture and other things listed in parenthesis at the end of the "displayName". We need to improve the logic for manifests with the correct "AppsAndFeatures" entries.

@denelon it is the winget UI.

How do you use winget ui

Install and run. Super easy.
Perhaps even available in the Store.
https://github.com/marticliment/WingetUI

What is that UI coming from? It doesn't look like Windows Apps & Features.
In general, we currently have challenges with many of the VC redists due to the various architectures being installed."

From my point of view winget already does a good job on c++ Redist and recognizing outdated versions.
Thankfully with 2015-2022 (named 2015+ in winget-pkgs) the side-by-side Installation of Redist has come to an end after nearly a decade.

This also seems to happens for standalone executables?
for example:
Name                             Id                       Version        Available      Source
----------------------------------------------------------------------------------------------
Carapace                         rsteube.Carapace         0.23.0         0.24.4         winget

This refuses to go away...
https://github.com/microsoft/winget-pkgs/blob/378cbdd2da94fe64ab662ca192639781004b122b/manifests/r/rsteube/Carapace/0.24.4/rsteube.Carapace.installer.yaml#L14
I have also several others apps that always show as outdated, and while https://github.com/microsoft/winget-cli/issues/1439 is not implemented, this is very annoying
Name                             Id                       Version        Available      Source
----------------------------------------------------------------------------------------------
FACEIT                           FACEITLTD.FACEITClient   1.31.5         1.31.13        winget
Carapace                         rsteube.Carapace         0.23.0         0.24.4         winget
EA app                           ElectronicArts.EADesktop <IP_ADDRESS>05  <IP_ADDRESS>21  winget
Microsoft .NET SDK 6.0.203 (x64) Microsoft.DotNet.SDK.6   6.0.203        6.0.408        winget

I have the same issue with powershell. My installed version is 7.3.4, though winget shows it as 7.3.1

@aadithya96 Can you share output of winget list "PowerShell", I'm wondering if there are multiple versions installed

@mdanish-kh You were right, there are 2 versions shown. Any idea on how to remove those?

You'll have to manually remove the older version from Apps&Features or appwiz.cpl

Regarding the original issue, this is a problem with the Portmaster package not updating the DisplayVersion string in the registry and should be brought up to the publisher to resolve. Related issue in the portmaster repo: https://github.com/safing/portmaster/issues/1050

I have same issue on 2024


[BUG] Audio paused accidentally when the app is launching on Android

Linked to https://github.com/florent37/Flutter-AssetsAudioPlayer/issues/112 .

Fixed with 1.6.2+5.


Define non-integer type

Fixes #120.
Defines the Decimal non-integer type as a rational number.

@liamsi is there anything to worry about w.r.t. overflowing on the multiplication? I assume that a simple "if it overflows, the tx is invalid" check is sufficient?


Building for 2.0 branch fails

https://github.com/NordicPlayground/nrf-docker/runs/7815429816?check_suite_focus=true

I've been getting these in my pipelines as well.
It seems to be a problem with the few latest setuptools package which makes it unable to install an old version breathe (arguably not a requirement because it's for Sphinx in Zephyr documentation, but I digress).
I'll open a PR if I find a solution for my pipelines, although this has to do with dependencies outside of Zephyr.

Current workaround I'm using is replacing these:
https://github.com/NordicPlayground/nrf-docker/blob/saga/Dockerfile#L96-L97
with these:
    python3 -m pip install -r zephyr/scripts/requirements-base.txt && \
    python3 -m pip install -r zephyr/scripts/requirements-compliance.txt && \
    python3 -m pip install -r zephyr/scripts/requirements-extras.txt && \
    python3 -m pip install -r zephyr/scripts/requirements-run-test.txt && \
    python3 -m pip install -r zephyr/scripts/requirements-build-test.txt && \
    python3 -m pip install -r nrf/scripts/requirements-base.txt && \
    python3 -m pip install -r nrf/scripts/requirements-build.txt && \
    python3 -m pip install -r bootloader/mcuboot/scripts/requirements.txt && \

In theory some of these are optional too. Probably can get away with just base and extras for the zephyr script.
I do not know if someone uses the docker image to build their docs, so I haven't made a PR.

Sounds like a reasonable change. This image focuses on building firmware so we can ignore the doc building for now.

Seems like it's going to be ncs version dependent too, then.
Maybe we can offer build args for which requirements to download? Then people can customize what they want when building alongside the version they need. Could also help in speeding up builds that don't call for every optional requirement.
The other way to go about it is... to find out what exactly is going on with that version of breathe (which is by all means not a requirement for the purpose of this image). I could also ask the setuptools folk if they have any ideas. Although this most likely would involve downgrading certain packages that will result in a break down the line, or following a rabbit hole of packages that broke upstream with the current configuration.

In the past I have fixed issues like this by pinning dependencies to certain versions.

Maybe we can offer build args for which requirements to download? Then people can customize what they want when building alongside the version they need. Could also help in speeding up builds that don't call for every optional requirement.

But build-time is done in this repo, so it doesn't really matter? I am not the Docker expert, so I'm open for suggestions how to solve that.

In the past I have fixed issues like this by pinning dependencies to certain versions.

Maybe we can offer build args for which requirements to download? Then people can customize what they want when building alongside the version they need. Could also help in speeding up builds that don't call for every optional requirement.

But build-time is done in this repo, so it doesn't really matter? I am not the Docker expert, so I'm open for suggestions how to solve that.

I see.
You already have an arg for dealing with different versions, no? With the sdk_nrf_revision build arg?
In that case there can be different configurations procedures for each branch, based on the arg, which produces images that are tagged differently. In this case, we could make it so pip installs only the necessary build requirements for each branch.
Would be something akin to this approach:
https://stackoverflow.com/a/60820156
I'm not saying this is the best idea. But it's current the solution I have for this, and would allow for customization/corrections for specific branches. I could compose an example. Otherwise I'm not sure how else to fix this, seems like a dependency hell issue (where choosing only what's necessary would help with).

Fixed upstream: https://github.com/nrfconnect/sdk-nrf/commit/432e661ba8169f9ff7b2b6c3d0ebed103064f715

Decided to exclude the requirements that pull in breathe (as suggested by @lucasgcbkhomp) because this image does not promise the ability to build the docs.

Thanks for your help @lucasgcbkhomp!


Exclude private pages from sitemap

Feature Request
Is your feature request related to a problem? Please describe.
I love your theme. I already adopted it for my personal webpage. However, it requieres some urgent SEO tweakings. The most  important are:

The possibility to add robots metatags to post and pages.
The theme generates automatized canonicalization to the post or page url. This is not useful if you want to reproduce the content of other website informing at the same time to search engine robots that the canonical url is other than local url. It is urgent the possibility of rel=canonical link tag customization;
The theme, as it is by now, generates duplicated content when using the "about" widget in front page, because the same content is published in home page and in author's page. Check my webpage as an example:

https://danielgimenez.me/en/
https://danielgimenez.me/en/authors/daniel-m.-gimenez/
Duplicated content is one of the most SEO harming factor as stated by Google. It's urgent to avoid it, and this theme doesn't do that. On the contrary.

The theme creates some completly unuseful pages, thin-content pages, which it is impossible to exclude from sitemaps or to apply a "noindex" robots metatag to it. For instance:

https://danielgimenez.me/en/authors/
As the theme code is by now, this page will be indexed by search engines robots. But since it has no content, search engines  will penalize the entire site by its fault. Here's an explanation why "thin content" is SEO harming.
Describe the solution you'd like
I already dealt with the two first issues. And since I am abble now to add noindex robot metatags, the third issue is solved too.
However, I didn't find the way to add same metatags to domain.com/authors/ url, since it's content folder has no .md file to edit. I tried to add an _index.md file to content/authors folder with  a robots metatag, but it throws an error when site is building. So, the fourth issue is not solved.
By now, the only solution to avoid the robots indexing this page and a SEO penalization will be the .htaccess file edition, which is a completly suboptimal and dangerous solution.
So, it will be great if the theme could avoid the generation of thin content pages, or at least give the possibility to add a robot metatag to it.
Describe alternatives you've considered
.htaccess edition

Duplicate of #2464

I disagree. It's not duplicated.


Harassment by another member of the community

I would like ot report abusive behavior by @ugexe using insults and expletives directed to another member of the community, that would be me.
This has been happening for a long time, and I've tried to just bear with it and keep on doing my best.
However, I draw the line here. You can follow pretty much the whole interchange in that PR, as well as here
Using words like "do nonsense" and "fucking things up" directed to another member of the community is not something we should bear with. I feel deeply offended, even more so when this is a continued pattern of behavior that goes back at least 1 year. His comments are almost always abusive (also almost always right), but never constructive or helpful.
We don't have a comprehensive code of conduct for the whole community, so I couldn't think of any other way to bring this up. This is for problem solving, so I guess that's the way to go.

I asked @lizmat to take care of this ticket because I'm clearly not a role model when it comes to issues like this. I hope we can resolve this peacefully.

I've chatted with ugexe in private, have not done so yet with JJ.  Since I'm still definitely not working on all cylinders, I'm calling it a day for now.  Will try to chat with JJ tomorrow.

A headsup: I've chatted with JJ and ugexe yesterday and am mulling on how to go forward on this.  But first I will need to do the Rakudo Weekly today.

This does not seem like the right forum to handle personal grievances.

@tony-o well, we don't have any proper place to resolve such issues, I think? Also, I personally feel like there is sometimes tension coming from the way developers interact with each other (I'm also part of the problem), so doing it in public is perhaps not the worst idea. I hope we can all learn and become better.
But I'd like to know, if this is not the right place, then how should it be done? Maybe this should be discussed as well, so that we can handle it nicer next time.

It's my 2¢ that this kind of thing should be handled directly and in a more real time format than airing grievances for the world and everyone look to hack on raku to see. Has there been an attempt for a hangouts or some kind of face to face?  Has there been a private message in IRC or some other forum?  Has there been an ask from anyone to ugexe to mediate the situation in any more private channels prior to this?
It's great that people want to be nice but part of doing so requires direct communication, even if the situation is untenable and requires a mediator, a problem solving repo is the wrong forum.  It also posits that either JJ or ugexe is a problem (and if it doesn't, then it's invalid to claim that ugexe calling something fucked up translates to him calling that person the same, which is what is being said in the main bit of this thread).
I'm not defending either party but it's meaner and, frankly, detrimental to contributors and to the community to let wrong things go unchecked because you're afraid of hurting someone's feelings.  Being wrong is a great method for learning and shouldn't be taken personally.

El mar., 26 nov. 2019 a las 1:20, tony-o<EMAIL_ADDRESS>escribió:

It's my 2¢ that this kind of thing should be handled directly and in a
more real time format than airing grievances for the world and everyone
look to hack on raku to see. Has there been an attempt for a hangouts or
some kind of face to face? Has there been a private message in IRC or some
other forum? Has there been an ask from anyone to ugexe to mediate the
situation in any more private channels prior to this?
It's great that people want to be nice but part of doing so requires
direct communication, even if the situation is untenable and requires a
mediator, a problem solving repo is the wrong forum. It also posits that
either JJ or ugexe is a problem (and if it doesn't, then it's invalid to
claim that ugexe calling something fucked up translates to him calling
that person the same, which is what is being said in the main bit of this
thread).
I'm not defending either party but it's meaner and, frankly, detrimental
to contributors and to the community to let wrong things go unchecked
because you're afraid of hurting someone's feelings. Being wrong is a great
method for learning and shouldn't be taken personally.

If you consider that is the issue, you are probably part of the problem.
I could have stopped there. Telling you you're wrong, in a harsh way, and
just be done with it, right? If you ask any follow up question about that,
well, "Not my duty to tell you what's the right way to do it", right? If
you simply say that "There are more polite ways to say that, without
getting personal" (because you feel offended because I've told you "you're
part of the problem"), well, I could get back to you saying that my duty is
to call a spade a space, and not "dance around" what you do, couldn't I?
The English language, not being my mother tongue, BTW, is a infinitely
flexible and beautifully nuanced language. Most languages are, BTW. There's
a book by Queneau that's basically 99 (or some such) ways of telling the
same story, in different tones and styles. But let's give this one a try.

"Excuse me, but I would like to draw your attention to the fact that
reviewing errors and pointing them out is not the problem. The problem is
the way it's done, and also the fact that that criticism is never
constructive and never points in the right direction. So learning might
come eventually, but not through that quipping back"

"May I point out that you are using the logical argument called a
strawman fallacy. By deviating the attention from the main point, which is
the way criticism is constructed and its main point, you're raising a
strawman "Hey! Look at this person that does not want his work criticised!
Bad person!" and even hinting that might be prejudicial to the community.
That's probably not a good thing"

I could to al the way to... Well, I ain't gonna, because I would become
part of the problem. You probably get the point.

Has there been an attempt for a hangouts or some kind of face to face? Has there been a private message in IRC or some other forum? Has there been an ask from anyone to ugexe to mediate the situation in any more private channels prior to this?

@tony-o, in her role as a mediator, discussing the issue privately is what @lizmat++ has been doing. It's important to give her time to find a solution, and use her experience as pointers on how to handle this in the future.
The "problem-solving" part of the issue here, is because:

we don't have any proper channels to handle this (yet), as @AlexDaniel points out.
an other reason to use this repo is probably because this may not be solely an interpersonal problem, but also a request for community guidelines on how to communicate.

2c etc.

No pressure  :-)
These are my views so far.  If you have a problem with them, please blame me :-)
First of all, I believe that both members who are the subject of this issue, only have good intentions towards the Rakudo project.  They are both driven to create value.  Albeit in different ways perhaps: one focused more on technical correctness, the other focusing more on growing the Rakudo community and teaching.
Secondly, the fact that not everybody has the same command of the English language, should not be underestimated.  What one side interpreted as a (negative) comment on the content of the action, intended as a (rather blunt) teaching tool, the other side interpreted as an attack on the person doing the action.
Thirdly: not everyone is sharing the same sense of urgency in the community.  What one side intended as a way to be supportive of a new member of the Raku community (who appeared to have their PR warnocked, and thus potentially be lost to the Raku community if not addressed in time), was interpreted by the other as an overeager action causing / hiding / not fixing a bug that needed deeper investigation.
I will now return to mulling mode for now.

@jj:

If you consider that is the issue, you are probably part of the problem. I could have stopped there. Telling you you're wrong, in a harsh way, and just be done with it, right?

Yes, then we wouldn't be having an issue and we'd both continue to contribute in the ways we think meaningful.  The difference is yours is of opinion and the matters referenced aren't.  Why would I take any of that statement personally?
@nxadm:

@tony-o, in her role as a mediator, discussing the issue privately is what @lizmat++ has been doing. It's important to give her time to find a solution, and use her experience as pointers on how to handle this in the future.

I take no issue with what is being discussed; the manner it's being approached and brought up is passive and the channel is inappropriate.  Creating a github issue because you're taking personal issue with someone is not private.  This has nothing to do with @lizmat or the way she is handling the issue, she's at the mercy of the way this was approached.  The point of the repo is that it's not entirely up to one person, she just happens to be the one asked to mediate in this case.

* we don't have _any_ proper channels to handle this (yet), as @AlexDaniel points out.

IRC, where all parties involved are active is more appropriate.  A direct message between parties: also more appropriate.  Email: more appropriate.  Public request for help dealing with a personal offense taken when nothing else has been tried: inappropriate.

* an other reason to use this repo is probably because this may not be solely an interpersonal problem, but also a request for community guidelines on how to communicate.

Then, in accordance with the README in this repo the issue should've brought up the request for a code of conduct and not a complaint that someone was technically right but not nice about it.  Perhaps the title of the issue should've reflected that request instead.  The README in this repo reads:

Anyone is welcome to create a new issue. The ticket should only contain the description of the actual problem (X of the XY). It is advised that you start your ticket with a short description of the problem and include more details afterwards.

This GH issue does not do this.

Secondly, the fact that not everybody has the same command of the English language, should not be underestimated. What one side interpreted as a (negative) comment on the content of the action, intended as a (rather blunt) teaching tool, the other side interpreted as an attack on the person doing the action.

This is probably a rather large part of it.

@tony-o, I will respectfully refrain from further commenting on this (sub-) thread, not because of a lack of agreement and/or disagreement, but because I feel we're moving away from the original issue.

@tony-o, I will respectfully refrain from further commenting on this (sub-) thread, not because of a lack of agreement and/or disagreement, but because I feel we're moving away from the original issue.

Perhaps IRC would be a more appropriate place for actual discussion

This particular set of interactions serves as an example of why a Code of Conduct is needed. The larger issue of a CoC requires addressing - even if it is possible for the the two community members to resolve the particular issue cited here, a framework should exist. This is the sort of thing the Raku community can reach out to the TPF board for guidance on.

Regarding TPF, here's the CoC for the latest conference: https://perlconference.us/tpc-2020-hou/standards-of-conduct/ ; Here's the standards for p5porters: https://perldoc.perl.org/perlpolicy.html#STANDARDS-OF-CONDUCT

We already drafted a Community Code of Conduct; I contributed to it in both initial brainstorming and the drafted form.
Perhaps it is finally time to take a look at that again?

Maybe there is a need to discuss a CoC. However it was a mistake for a submitter to appropriate "community" for themselves and to use my name to bring this up. If I were to bring up discussion for how to handle negligent contributors would I be correct in naming individuals?

(NOTE: I AM NOT TRYING TO WORK AROUND lizmat!  The following is only about separating this case from our general path forward, not the facts and resolution of this particular case.)
In the above discussion there seems to be general consensus to at least discuss a SoC/CCoC document, but if I understand you correctly ugexe you're (at least partly) upset that this particular case and the general discussion are mixed together.  I thus propose that we simply create a new issue, focused on the general question of SoC/CCoC, procedure for drafting/approving it, and process for handling future cases, and leave this case to lizmat's mulling/arbitration/decision.

@japhb I think a separate issue on finalizing the CoC draft makes total sense. Would you open one?

Re p5porters CoC: "The official forum for the development of perl is the perl5-porters mailing list, mentioned above, and its bugtracker at rt.perl.org."
Since rt.perl.org is dead, I guess this will need to be changed.

@vrurg: OK, creating one.

Well, thanks for re-linking my name to the discussion I guess.

@lizmat thanks, I will work on getting that updated.

@ugexe: Gah, I forgot that GH issues would do that sometimes-annoying bidirectional linking.  I have edited the above, but I doubt GH's bug will undo itself.  :-(

I will get back to this tomorrow.

With these remarks I hope to close this issue.
First of all, I would like to thank both Nick Logan as well as JJ Merelo for chatting with me in private to try to resolve this issue.
I'm afraid closing this Github issue will not resolve the issues that exist between them: but I hope it will be the start of a better mutual respect for their respective roles in the Raku community.
What this issue made very clear, is that we, as the Raku community, do not currently have a preferred way of solving inter-personal conflicts.  Unfortunately, heading out to a bar for some socializing, is not really an option when you're as geographically dispersed as the Raku community is.
Perhaps starting a #raku-bar IRC channel for strictly relaxing and handling personal issues, would be a way to at least mimic the local bar where you could hang out with your mates (of whatever gender).
Getting back to the cause of the issue: it's become clear to me that the two people involved in this issue, have very different views on how they can contribute / are contributing to the development of Raku in Rakudo.  Which can be explained from their respective backgrounds.  And that these views have caused friction for a number of years already (examples have been provided by both, but will not be repeated here as this is not a trial needing proof for conviction).
Apart from their different views, in a way this is also a clash of cultures.  Which should remind us all that not everybody in the world has grown up in a culture where being blunt to a person is not necessarily a judgement of that person.  Some cultures find it very impolite, even not done to use the word "no" or derivatives thereof.  So, please be more polite than you would normally be if you're used to being very straightforward.  And please be more straightforward if you're used to being very polite.  And realize that what you consider "normal" may be misconstrued by the other side at any time.
In the Raku community, well in every on-line community really, we have to realize that the background of the person at the other end, may cause a different interpretation of words said than were intended by the speaker.  This can be hard, because many of us in the Raku community lead a busy life with only so much time to devote to Raku.  And then you want every moment to count.
Please remember we are all volunteers, even if you're working on a grant.  You work on a grant because you want some feature implemented and cannot find enough free time to do so.  Not to be making tons of money.
The closing of this ticket will not undo all of the interactions that have happened in the past.  In the age of git and GitHub, all interactions become part of the permanent record.  We have to learn to live with that.  But moving forward I hope that the opponents in this issue, will learn to work together better and learn to appreciate each other's zeal and each other's value in the Raku community.


Return View

I made a return view method in base Controller that looks for a folder, that should be named as the controller itself, then gets the file with the same name as the method
Code for the base Controller: https://pastebin.com/RxMjVVmz
Architecture should look like this:

Great, thank you! Could you please open a Pull Request so that I can merge it?

I think I did it right. If there is any problem just DM me.

Implemented.


Add sprints management with burndown/velocity charts

Be able to create a sprint

Select tasks to include in the sprint
Select working days

Reporting for each sprint

Burndown chart
Velocity chart
Stats by user (story points, timesheet)

exactly what I need for my projects


Relay touchscreen / pen input from Android screen back to PC (turn Android device into a pen tablet for PC)

[X] I have checked that a similar feature request does not already exist.

Is your feature request related to a problem? Please describe.
The Android device (phone or tablet) screen could act as a pen or digitizing/display tablet (e.g. see wacom cintiq or intuos) to capture pen input (moves, press/release, strokes) to aid in drawing or sketching activities on the PC.
Describe the solution you'd like
Scrcpy to forward input events captured on the Android device to the Windows / Linux / Mac host. Input events here are gestures and interactions captured from the Android device touch screen. Ideally the solution wouldn't incur significant latency between the capture of the event and its restitution on the host computer. E.g. for a minimal latency implementation, a virtual Pen driver could be implemented for Windows host, so that input events from the Android device could become available to all user apps running on the Windows host (and uniformly handled by the Win32 API).
Describe alternatives you've considered
Other solutions include using a client/server approach, which could also work by injecting captured input from ADB device into the host PC (Win/Linux/Mac).
Additional context
Having the feature implemented in Scrcpy would be wonderful, as Scrcpy is an open source program, accessible to everyone on all major platforms.

Windows Digitizer Class Input Devices (drivers) are documented here: https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-digitizer-class-input-devices

E.g. for the case of Windows, Scrcpy could be loading a Pen HID device driver (bundled with Scrcpy package), passing input captured from the Android screen / device and received from ADB, to the new HID driver.
Because it is a Windows device driver dispatching input, applications like Inkscape, Adobe Illustrator, Microsoft Whiteboard, could then leverage the new input event.

Hi,
IMO, this is out of scope for scrcpy, which allows to control the device from the computer (not the other way around).
Technically, it's also quite different (capturing device events, no video stream, injecting system-specific events to the computer, etc.), so there would be no benefit to implement it in scrcpy rather than a totally separate app.

IMO, this is out of scope for scrcpy, which allows to control the device from the computer (not the other way around).
Technically, it's also quite different (capturing device events, no video stream, injecting system-specific events to the computer, etc.), so there would be no benefit to implement it in scrcpy rather than a totally separate app.

It is a very useful feature and Scrcpy has all the foundation in place to implement this as an additional extension. Please consider adding it.
Windows Pen protocol implementation is documented here: https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/pen-protocol-implementation, and likely an implementation as a 3rd-party HID mini-port driver would be needed, that is to translate the received events from Android to the Windows' HID device class.

E.g., the Getevent jar sample application, https://source.android.com/devices/input/getevent, can be executed on the Android target by Scrcpy and events retrieved by ADB then translated to a native event, e.g. on Windows platforms, using a new Pen HID mini-driver or using SendInput() Win32 API (could be easier).

@rom1v take a look at https://superdisplay.app/ - it allows to turn android tablets with stylus to full featured wacom-likes PC drawing tablets. But it's windows only.
Definitely not out of scope, it fits perfectly to scrcpy.

@matulek adb shell getevent -lt /dev/input/event1 actually gets you all the needed information. scrcpy has to launch that command through adb, redirect stdout using pipes and read / parse the incoming data (which is already formatted, e.g. lines have the same length) and then just use the Win32 SendInput() API to synthesize the mouse event on Windows.
I really hope this gets implemented in scrcpy.

@ilyesgouta I'm not sure, you mention Win32 API and mouse events, but what about other systems and what about stylus pressure?

@ilyesgouta after fiddling a little with scrcpy I realized that it doesn't allow to use android as the external monitor, so, after all, this feature unfortunately seems out of scope to me.


Fix 0 capacity slice initialization in ScanAll() receiver function.

The previous code was not buggy, but redundant
and ineffective. The size of the array underlying
the result slice was set to 0 because this is
the start of the scanner cursor right after it's
initialized. Now the capacity matches the number
of bytes in the buffer, which should be optimal
for most cases given that multi-byte unicode
runes are less likely to occur.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (5ece1ba) 100.00% compared to head (593b291) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main        #7   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           69        69
=========================================
  Hits            69        69

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


[GH-1511] RetryTemplate per binding

Allow end users to optionally specify a retry template bean by name in their consumer properties so that different bindings can point to different retry templates.

Merged with polishing https://github.com/olegz/spring-cloud-stream/commit/f01cb29b44b6992326482c43c28c9bf0225daada

@olegz just ran across this issue and as we have been upgrading to the latest version of spring cloud we ran into this same issue.  I am a bit confused by PR and issue history associated with this and couldn't tell if this was merged into spring-cloud-stream or if this was just closed?

Okay went through the github history and it looks like it was merged here: https://github.com/spring-cloud/spring-cloud-stream/commit/e9d22cb352f21984313daaf175476e35ad945488


:lock: rm some secret info

update demo notebook

@stulzq can u help me merge this pr, this pr remove some information about my company assets

Ok


reduce docker image size by using multi stage build

The current image takes up 331 MB disk space and compressed size up 119 MB
while most of them are golang build tools not necessary for running kcptun  .
Since the binary is statically linked simply copy to an alpine image would work.

This pull request is now managed with CodeReviewHub. Refresh.

cool


ClerkClient typo in unLockUser - duplicate lockUser method

Instead of having unLockUser method in the resources/user the lockUser is defined 2 times even though the 2nd one is calling the unlock endpoint.
ref: https://github.com/ravikrsngh/clerk_django/blob/ad69dd267551fad53d458bef548fab99b73e6c2f/clerk_django/resources/user.py#L38

Thanks for pointing this out.


feat(linter): eslint/no-misleading-character-class

Implement ESLint's no-misleading-character-class rule.
To get started, run
just new-rule no-misleading-character-class

I assume this depends on #611 / #1164 so can't be tackled yet?

I assume this depends on #611 / #1164 so can't be tackled yet?

Seems so. You can always look at the source, e.g.
https://github.com/eslint/eslint/blob/1bf2520c4166aa55596417bf44c567555bc65fba/lib/rules/no-misleading-character-class.js#L7

Closing issue for house keeping, the umbrella issue is used for tracking individual rules.


Able to set the WebDriver to use in constructor

Usecase: Anyone could pass their own custom webdriver to the Mint. This will enable users to run the script on AWS Lambda (where you would need to have a special headless chrome to be able to run) or any container where a customer driver is necessary.

Looks pretty straightforward, thanks! Can you update the PR and ideally README / docs with the use-case this addresses?

Usecase: Anyone could pass their own custom webdriver to the Mint. This will enable users to run the script on AWS Lambda (where you would need to have a special headless chrome to be able to run) or any container where a customer driver is necessary.
@mrooney Would you like me to include this usecase in the README?

@zsolteszku yes a README update would be great, thanks!

@zsolteszku Agreed, that would be fantastic, especially if it had an example for how to do this on AWS with the appropriate driver :)

@burkematthew and @mrooney updated the README.md, let me know your thoughts.


Use StoreCodeUnchecked instead of StoreCode in snapshotter/init genesis.

This was brought up by @alpe on slack a while back:

yes, use StoreCodeUnchecked for genesis import/ state sync. This will ensure that the files are restored whatever the current constraints for new files are

Should amend snapshotter's restore and InitGenesis to do this.

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

Hi @DimitrisJim, can I take this issue?


don't reorganise my imports on "add import" + add import at cursor position

When I add an import it currently reorganises all of my imports, which is quite annoying. What would be nice if it added the import at cursor position and didn't touch my other imports at all.
What do you think?

Why add the import at the cursor position? It may shouldn't organize the imports on add import action, but I'd add the import at the top of the document.
It is code design guide line (IMO) to have all imports at the start of the docs.
Or not?

That depends, I have my imports in certain order,

angular imports
3rd party imports
services
components

Something along these lines. And when it puts it on the top, I usually have to move it to the correct place anyway, so I'd rather clicked on the place I wanted the import at and then did alt + ctrl + i.

Hmm
Alright.. currently I'm rewriting the index core to improve the speed drastically. But after that, I'm looking into it. I currently don't know if its cool for everyone to add the import at the cursor (like I use it myself, I just want to import the stuff and work where I'm at)
Maybe that can be configurable?
Let's see when I'm done with the indexing core.

Yep that would be perfectly fine having it optional.
Thanks!

Closed by #28
The simple "add import" or "add import under the cursor" do not reorganize the imports.
If you run the command to organize, all imports are consolidated / sorted / filtered by usage.

Cool, you gonna release it anytime soon(no idea how that VSC marketplace work)?

Yea, I'm gonna do some testing on the master branch (with the help of @n00dl3) and if I'm certain, everything should work as expected, I'm gonna release it under v 0.6

@buehler how is it supposed to work? When I press the command ctrl + alt + shift + i nothing comes up..

When nothing comes up, the symbol is already imported. You only see a selector list, when there are multiple definitions that match the currently typed filter.
When you type Foobar and hit the combination, the import should be automatically inserted.

But there is actually the following unreleased feature: If you do not correctly type out the whole word, you'll see the list anyway. So this will be in the next release.

Ok, that is a little confusing, do I have to know precise name of what I want to import beforehand then? Why doesn't it work the same way ctrl+alt+i does, so I could search for it?
Also it's still doing some reorganisations.
This is what my imports look like before using it:
import { NgModule, ApplicationRef } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule, Http } from '@angular/http';
import { RouterModule } from '@angular/router';

import { StoreModule } from '@ngrx/store';
import { EffectsModule } from '@ngrx/effects';
import { RouterStoreModule } from '@ngrx/router-store';
import { AUTH_PROVIDERS, AuthConfig, AuthHttp } from 'angular2-jwt';

// modules
import { SharedModule } from './shared/shared.module';

// services
import {
  Ng2Permission,
  PermGuard
} from './shared/services/permission.service';
import { ENV_PROVIDERS } from './environment';

// routes
import routes from './app.routes';

// actions
import actions from './shared/actions';

// reducers
import reducers from './shared/reducers';

// effects
import effects from './shared/effects';

// services
import services from './shared/services'

// component modules
import { MdIconModule } from '@angular2-material/icon';

import { UserModule } from './shared/components/user/user.module';
import { AppBarModule } from './shared/components/app-bar/app-bar.module';

// components
import { AppComponent } from './app.component';
import { BurgerComponent } from './shared/components/burger/burger.component';
import { AppMenuComponent } from './shared/components/app-menu/app-menu.component';
import { SearchContainer } from './shared/containers/search/search.container';
import {
  NotificationCounterComponent
} from './shared/components/notification-counter/notification-counter.component';

// material2 components
import { MdSidenavModule } from '@angular2-material/sidenav';
import { MdMenuModule } from '@angular2-material/menu';
import { MdRadioModule } from '@angular2-material/radio';
import { MdTooltipModule } from '@angular2-material/tooltip';

..now I want to add DatePlateComponent so I put my cursor right after this part
import {
  NotificationCounterComponent
} from './shared/components/notification-counter/notification-counter.component';

so I write DatePlateComponent, press the command and this is the result
import { Ng2Permission, PermGuard } from './shared/services/permission.service';
import services from './shared/services';
import { NotificationCounterComponent } from './shared/components/notification-counter/notification-counter.component';
import { DatePlateComponent } from './shared/components/date-plate/date-plate.component';
import { ApplicationRef, NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { Http, HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';

import { StoreModule } from '@ngrx/store';
import { EffectsModule } from '@ngrx/effects';
import { RouterStoreModule } from '@ngrx/router-store';
import { AUTH_PROVIDERS, AuthConfig, AuthHttp } from 'angular2-jwt';

// modules
import { SharedModule } from './shared/shared.module';

// services
import {
  Ng2Permission,
  PermGuard
} from './shared/services/permission.service';
import { ENV_PROVIDERS } from './environment';

// routes
import routes from './app.routes';

// actions
import actions from './shared/actions';

// reducers
import reducers from './shared/reducers';

// effects
import effects from './shared/effects';

// services
import services from './shared/services'

// component modules
import { MdIconModule } from '@angular2-material/icon';

import { UserModule } from './shared/components/user/user.module';
import { AppBarModule } from './shared/components/app-bar/app-bar.module';

// components
import { AppComponent } from './app.component';
import { BurgerComponent } from './shared/components/burger/burger.component';
import { AppMenuComponent } from './shared/components/app-menu/app-menu.component';
import { SearchContainer } from './shared/containers/search/search.container';
import {
  NotificationCounterComponent
} from './shared/components/notification-counter/notification-counter.component';
DatePlateComponent

// material2 components
import { MdSidenavModule } from '@angular2-material/sidenav';
import { MdMenuModule } from '@angular2-material/menu';
import { MdRadioModule } from '@angular2-material/radio';
import { MdTooltipModule } from '@angular2-material/tooltip';

here's the diff https://gist.github.com/fxck/3de2562469c0cd1a0a87e317a00e18cc/revisions?diff=unified

Oh.. I misunderstood you. "Import under the cursor" means, you actually import the symbol that is right under the cursor.
I'll make another ticket for that.

@fxck Could you check the text of the new ticket and complement the rest if needed?


Option to expand type aliases

[x] I have checked issues with enhancement label and found no duplicates

Problem
I'm using a library to create types that hsa runtime checking: io-ts
Types are declared like so:
import * as t from 'io-ts'

const User = t.type({
  userId: t.number,
  name: t.string
})

export type User = t.TypeOf<typeof User>

Then in the docs, it shows the type as:
User = t.TypeOf<typeof User>

Which isn't helpful to the reader.
Suggested Solution
I propose to have a flag that expands all of the aliases into a full type / interface.
E.g.
It would expand the type into:
type User = {
  userId: number
  name: string
}

See also #1021

Have a similar requirement. Will be great to have a flag or a plugin (as suggested in #1021).

The source file looks like this:

export const RESTFontWeight = {
  Bold: "bold",
  Bolder: "bolder",
  Lighter: "lighter",
  Normal: "normal"
} as const;
export type RESTFontWeight = typeof RESTFontWeight[keyof typeof RESTFontWeight];

Generated docs for the exported type looks like:

On the other had, TypeScript intelisense for the type looks quite user-friendly:

If TypeDoc also emits a similar format, it will be quite useful for users reading the docs.

Hi @Gerrit0, in a similar example also noticed a possible bug:
Source Code:
export const MyObject =
  {
    myValue: "ddddd"
  } as const;
export type MyType = typeof MyObject.myValue;

TS Intelisense:

TypeDoc behavior:

Issue:
The object MyObject is not present in the type-alias.

The object MyObject is not present in the type-alias.

Sounds like contradictory requests here ;) "resolve the type" vs "preserve the source representation"
Since we do generate a link to myValue, that will take you within MyObject, I'm not too worried about this... feel free to submit a PR if it bugs you.

Sounds like contradictory requests here ;) "resolve the type" vs "preserve the source representation"

Yeah they are contradictory :) pointed out because I thought "preserve the source representation" should be consistent throughout.

Since we do generate a link to myValue, that will take you within MyObject

Yeah, that would be quite acceptable too but it's not happening. It took me to the URL: xyz.path.html#myobject.__type.myvalue which doesn't seem to exist. If it takes us to xyz/path.html#myobject that would be acceptable too.

Good to know about the broken links, I guess I should have expected that... Its kind of amazing how many links do work given the piecemeal way we build them up today.

I'm very much looking to do the same thing. Any guidance on how to approach this, including guidance on how to write a plugin for this is welcome.

Doing this is rather tricky. I think the right solution would be to create a plugin which listens to Converter.EVENT_CREATE_DECLARATION, checks if it is a type alias, and if it is and is marked for expansion (with @expand or similar), uses the node to get a symbol. You can use context.getSymbolAtLocation(node) and then once you have the TS symbol, there is a getProperties() method that should give you the necessary properties.
I'm afraid I can't be more helpful here, its been a while since I looked at how this might be doable.

@Gerrit0 Thanks for the suggestion. I tried going down a similar road, but it indeed does get amazingly complex very quickly. The fact that I haven't worked with TS's compiler, or any compiler of similar magnitude not helping.
Ultimately, I went down another road, and found a much simpler way to get what I needed:
I wrote a small utility to extract static types from io-ts definitions, and then combined it with prettier. The resulting type definitions can either be written to new .ts files for TypeDoc to parse, or be output directly to Markdown (what I end up doing)
https://gist.github.com/VanTanev/8a6ea41257eba917241cb026e5f52240
cc @moltar

Far from perfect, but this gets the job done if you don't care about extra information that TypeDoc keeps about type info when rendering docs (enabling links, syntax highlighting)
//@ts-check

// Supports<EMAIL_ADDRESS>
const { Converter, ReflectionKind, TypeScript: ts } = require("typedoc");
const { UnknownType } = require("typedoc/dist/lib/models");

/** @param {import("typedoc").Application} param0 */
exports.load = function ({ application }) {
  const printer = ts.createPrinter();

  /** @type {Map<import("typedoc").DeclarationReflection, UnknownType>} */
  const typeOverrides = new Map();

  application.converter.on(
    Converter.EVENT_CREATE_DECLARATION,
    /**
     *
     * @param {import("typedoc/dist/lib/converter/context").Context} context
     * @param {import("typedoc").DeclarationReflection} reflection
     * @param {import("typescript").Node | undefined} node
     */
    (context, reflection, node) => {
      if (reflection.kind === ReflectionKind.TypeAlias && node) {
        if (reflection.comment && reflection.comment.hasTag("quickinfo")) {
          reflection.comment.removeTags("quickinfo");

          const type = context.checker.getTypeAtLocation(node);
          const typeNode = context.checker.typeToTypeNode(
            type,
            node.getSourceFile(),
            ts.NodeBuilderFlags.InTypeAlias
          );

          typeOverrides.set(
            reflection,
            new UnknownType(
              printer.printNode(
                ts.EmitHint.Unspecified,
                typeNode,
                node.getSourceFile()
              )
            )
          );
        }
      }
    }
  );

  application.converter.on(Converter.EVENT_RESOLVE_BEGIN, () => {
    for (const [refl, type] of typeOverrides) {
      refl.type = type;
    }
    typeOverrides.clear();
  });
};

Then, with this source:
export interface A {
	x: string
}

/** @quickInfo */
export type Mapped = {
	[K in keyof A & string as `${K}.${K}`]: A[K]
}

TypeDoc will produce:

Replacing the call to create a new UnknownType with context.converter.convertType(context, typeNode) might work in some cases - but that code assumes it gets a real type node, and the one created with typeToTypeNode isn't one... so I wouldn't be surprised if it crashes in other cases.

@Gerrit0 Please could you supply a license for the above plugin? Thanks :pray:

@Gerrit0 the above plugin no longer works with TypeDoc 0.23.25. I looked into the source and Converter.EVENT_CREATE_DECLARATION listener now takes only Context and DeclarationReflection -- without the third param, node. Would you give me some pointers on how to fix this?

For node, you'll need to get that from the symbol yourself now - context.project.getSymbolFromReflection(refl)?.declarations?.[0]

Thanks @Gerrit0 for the pointer!
Below is the updated code that works with typedoc 0.23.25:
//@ts-check

// Supports<EMAIL_ADDRESS>
const {
  Converter,
  ReflectionKind,
  TypeScript: ts,
  UnknownType,
} = require('typedoc');

/** @param {import("typedoc").Application} param0 */
exports.load = function ({ application }) {
  const printer = ts.createPrinter();

  /** @type {Map<import("typedoc").DeclarationReflection, UnknownType>} */
  const typeOverrides = new Map();

  application.converter.on(
    Converter.EVENT_CREATE_DECLARATION,
    /**
     *
     * @param {import("typedoc/dist/lib/converter/context").Context} context
     * @param {import("typedoc").DeclarationReflection} reflection
     */
    (context, reflection) => {
      const node =
        context.project.getSymbolFromReflection(reflection)?.declarations?.[0];

      if (reflection.kind === ReflectionKind.TypeAlias && node) {
        if (reflection.comment?.getTag('@quickinfo')) {
          reflection.comment.removeTags('@quickinfo');

          const type = context.checker.getTypeAtLocation(node);
          const typeNode = context.checker.typeToTypeNode(
            type,
            node.getSourceFile(),
            ts.NodeBuilderFlags.InTypeAlias,
          );

          typeOverrides.set(
            reflection,
            new UnknownType(
              printer.printNode(
                ts.EmitHint.Unspecified,
                typeNode,
                node.getSourceFile(),
              ),
            ),
          );
        }
      }
    },
  );

  application.converter.on(Converter.EVENT_RESOLVE_BEGIN, () => {
    for (const [refl, type] of typeOverrides) {
      refl.type = type;
    }
    typeOverrides.clear();
  });
};


Question: AWS Cost and Usage Reports & Resource IDs

The AWS Cost & Usage Report, do the Resource IDs need to be included?  I can not find a definitive answer on this.  My gut says yes because this is how correlation will be done, but would like to confirm.

Yes. We use the resourceId's on the ec2 cost rows for correlation. The specific part where we use it is here: https://github.com/operator-framework/operator-metering/blob/master/charts/reporting-operator/templates/custom-resources/report-queries/aws-billing.yaml#L34-L40.

Thanks!  I thought that might be the case.  This makes for really large cost reports.  Is there anything to keep in mind in terms of metering performance with large reports?

We already partition the table containing the cost report by month, so that generally helps. Generally it's probably best to keep the reportingStart and reportingEnd limited to about a month. You may want to increase the memory of Presto, and it may help to run some dedicated worker replicas (which we don't have documented currently).
We're working on making it easier to aggregate across existing reports too, which will make doing roll-ups from many, smaller reports easier.

Are workers something that can be configured in the Metering object?  Or is this something that will have to be managed ourselves?

Is there a "tuning" documentation somewhere?  I think that would be really helpful for this project.  Great stuff though, really easy to get started!

It's something you can configure on the metering object, (this is where it's undocumented). And yes, the literal goal of us trying to deploy to a larger environment is to write the tuning document your describing. It's difficult, because we expose quite a few knobs, but we don't necessarily want users to be using all of them since we ideally automate the need to tune these things. However, there is a gap right now, so it may be useful to document the knobs we expect are most likely for someone to want.
Here's a snippet of a custom configuration that I use. I expect that not everything here is necessary for you, but it should give you some tunables that you can mess with. https://gist.github.com/chancez/db4e2e4e5f7bcb20e195b439e0f5acf1
The key parts are anything with the replicas field set is one you may wish to adjust. Setting resources is very common, this is documented already. taskMaxWorkerThreads is also useful, and translates to task.max-worker-threads in https://prestodb.io/docs/current/admin/properties.html. We're actively working on this aspect of our documentation, so we'll keep this open and update you when we get more documentation related to this.

Can you open another issue with the pod logs of the components your seeing the errors in? Also, if you can provide your configuration with the credentials set, but replaced with fake values, that's useful too, just so I can verify everything is set correctly, in all the right spots.

https://github.com/operator-framework/operator-metering/pull/442 Should fix the auth issue you're experiencing. It was related to a recent refactor that accidently removed some environment variables from a few pods.

Confirmed, things are working on the 0.8.0-latest now!  Thanks!