Memory leakage in CachedSmilesMolHolder

Describe the bug
Iterative calling CachedSmilesMolHolder will result in a memory leakage as there is no way to destruct the class.
For me this leads to Out of memory error in large library searches.
To Reproduce
from rdkit import Chem
from rdkit.Chem import rdSubstructLibrary
import pandas as pd
import psutil

process= psutil.Process()
start_rss = process.memory_info().rss

i = 0

while i == 0:
    molholder = rdSubstructLibrary.CachedSmilesMolHolder()
    data = pd.read_csv("Test.ism", sep=" ", header=None)

    for mol, _ in data.itertuples(index=False):
        molholder.AddSmiles(mol)

    library = rdSubstructLibrary.SubstructLibrary(molholder)

    rss = process.memory_info().rss - start_rss
    print("LEAK", rss/(1024**2), "mb")

Test_smiles.csv
Expected behavior
The class should destruct itself to prevent memory leakage
Configuration (please complete the following information):

RDKit version: 2024.03.2
OS: [e.g. Ubuntu 23.10]
Python version (if relevant): 3.12.3
Are you using conda? Yes
If you are using conda, which channel did you install the rdkit from? conda-forge

It looks some interaction with the SubstructLibrary isn't releasing the holder, the MolHolder by itself looks to be fine:
from rdkit import Chem
from rdkit.Chem import rdSubstructLibrary
import pandas as pd
import psutil

process= psutil.Process()
start_rss = process.memory_info().rss

i = 0

smiles = ["CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCc"] * 10000

while i == 0:
    molholder = rdSubstructLibrary.CachedSmilesMolHolder()
    for smi in smiles:
        molholder.AddSmiles(smi)

    rss = process.memory_info().rss - start_rss
    print("LEAK", rss/(1024**2), "mb")

There is some boost_python interaction that is confusing to me, a temporary fix is as follows:
while i == 0:
    molholder = rdSubstructLibrary.CachedSmilesMolHolder()
    for smi in smiles:
        molholder.AddSmiles(smi)
    library = rdSubstructLibrary.SubstructLibrary(molholder)
    del library
    del molholder
    rss = process.memory_info().rss - start_rss
    print("LEAK", rss/(1024**2), "mb")

Which, honestly, doesn't make a lot of sense to me but I'll start digging into it.


Adding some translations

@jwestw the languages don't need to be translated so I added a file for them, and also added another field Myanmar for this language. I was going to put Burmese but looked at some of their existing official sites and they use Myanmar on them.


Whenever I Try To Put Miku And Mami In The Same Song My Game Crashes, plz help

Describe your problem here.
So, i put the song The-End In Psych Engine And It Works, The Problem Im Having Is That I Put The Mami Background And My Game Does'nt Crash, Then I Put Miku As BF And It Does'nt Crash, Then Its When I Put Mami In Is When The Game Crashes,Plus I Tried To Put Miku And Mami In The Same Song in Fresh And Whenever I Press Enter, One Of Them Is Always Invisible, And Everytime I Re-open Psych Engine The Invisible Character Is Switched With The Other One, Plz Help

Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x86/x32
Did you edit anything in this build? If so, mention or summarize your changes.
No response

XML issue


Failing Test : Cannot find reference assembly 'dotnet-aspnet-codegenerator-design.dll'

Hi Ardalis,
Firstly a great project, lots of thought has gone into it I can see.
I simply fresh cloned, built, and run all tests.  There is a single failed test.
I will find a workaround, I think removing Microsoft.VisualStudio.Web.CodeGeneration/ors but wanted to let you know.
Test Name:	CleanArchitecture.Tests.Integration.Web.HomeControllerIndexShould.ReturnViewWithCorrectMessage
Test FullName:	CleanArchitecture.Tests.Integration.Web.HomeControllerIndexShould.ReturnViewWithCorrectMessage
Test Source:	C:\repos\nbegvso\CleanArchitecture\tests\CleanArchitecture.Tests\Integration\Web\HomeControllerIndexShould.cs : line 10
Test Outcome:	Failed
Test Duration:	0:00:13.428

Result StackTrace:
at Microsoft.Extensions.DependencyModel.Resolution.ReferenceAssemblyPathResolver.TryResolveAssemblyPaths(CompilationLibrary library, List'1 assemblies)
   at Microsoft.Extensions.DependencyModel.Resolution.CompositeCompilationAssemblyResolver.TryResolveAssemblyPaths(CompilationLibrary library, List'1 assemblies)
   at Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePaths(ICompilationAssemblyResolver resolver, List'1 assemblies)
   at Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePaths()
   at Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart.<>c.<GetReferencePaths>b__8_0(CompilationLibrary library)
   at System.Linq.Enumerable.SelectManySingleSelectorIterator'2.MoveNext()
   at Microsoft.AspNetCore.Mvc.Razor.Compilation.MetadataReferenceFeatureProvider.PopulateFeature(IEnumerable'1 parts, MetadataReferenceFeature feature)
   at Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.PopulateFeature[TFeature](TFeature feature)
   at Microsoft.AspNetCore.Mvc.Razor.Internal.DefaultRazorReferenceManager.GetCompilationReferences()
   at System.Threading.LazyInitializer.EnsureInitializedCore[T](T& target, Boolean& initialized, Object& syncLock, Func'1 valueFactory)
   at Microsoft.AspNetCore.Mvc.Razor.Internal.DefaultRazorReferenceManager.get_CompilationReferences()
   at Microsoft.AspNetCore.Mvc.Razor.Internal.LazyMetadataReferenceFeature.get_References()
   at Microsoft.CodeAnalysis.Razor.CompilationTagHelperFeature.GetDescriptors()
   at Microsoft.AspNetCore.Razor.Language.DefaultRazorTagHelperBinderPhase.ExecuteCore(RazorCodeDocument codeDocument)
   at Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.Execute(RazorCodeDocument codeDocument)
   at Microsoft.AspNetCore.Razor.Language.DefaultRazorEngine.Process(RazorCodeDocument document)
   at Microsoft.AspNetCore.Razor.Language.RazorTemplateEngine.GenerateCode(RazorCodeDocument codeDocument)
   at Microsoft.AspNetCore.Mvc.Razor.Internal.RazorViewCompiler.CompileAndEmit(String relativePath)
   at Microsoft.AspNetCore.Mvc.Razor.Internal.RazorViewCompiler.CreateCacheEntry(String normalizedPath)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter'1.GetResult()
   at Microsoft.AspNetCore.Mvc.Razor.Internal.DefaultRazorPageFactoryProvider.CreateFactory(String relativePath)
   at Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.CreateCacheResult(HashSet'1 expirationTokens, String relativePath, Boolean isMainPage)
   at Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.OnCacheMiss(ViewLocationExpanderContext expanderContext, ViewLocationCacheKey cacheKey)
   at Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.LocatePageFromViewLocations(ActionContext actionContext, String pageName, Boolean isMainPage)
   at Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine.FindView(ActionContext context, String viewName, Boolean isMainPage)
   at Microsoft.AspNetCore.Mvc.ViewEngines.CompositeViewEngine.FindView(ActionContext context, String viewName, Boolean isMainPage)
   at Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ViewResultExecutor.FindView(ActionContext actionContext, ViewResult viewResult)
   at Microsoft.AspNetCore.Mvc.ViewResult.<ExecuteResultAsync>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeResultAsync>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextResultFilterAsync>d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResultExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextResourceFilter>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeFilterPipelineAsync>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeAsync>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIIndexMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.<Invoke>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.TestHost.ClientHandler.<>c__DisplayClass3_0.<<SendAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.TestHost.ClientHandler.<SendAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable'1.ConfiguredTaskAwaiter.GetResult()
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter'1.GetResult()
   at CleanArchitecture.Tests.Integration.Web.HomeControllerIndexShould.<ReturnViewWithCorrectMessage>d__0.MoveNext() in C:\repos\nbegvso\CleanArchitecture\tests\CleanArchitecture.Tests\Integration\Web\HomeControllerIndexShould.cs:line 11
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Result Message:	System.InvalidOperationException : Cannot find reference assembly 'dotnet-aspnet-codegenerator-design.dll' file for package dotnet-aspnet-codegenerator-design

I just did a fresh clone/build/test and everything works. Here's my output. Do you see anything that will help you? Do you have SDK 2.x installed?
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\dev\scratch> git clone https://github.com/ardalis/cleanarchitecture
Cloning into 'cleanarchitecture'...
remote: Counting objects: 648, done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 648 (delta 14), reused 29 (delta 5), pack-reused 603 eceiving objects:  94% (610/648)
Receiving objects: 100% (648/648), 722.88 KiB | 2.56 MiB/s, done.
Resolving deltas: 100% (308/308), done.

---------------------
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.

Telemetry
--------------
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community.
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
Microsoft (R) Build Engine version <IP_ADDRESS>55 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring packages for C:\dev\scratch\cleanarchitecture\tests\CleanArchitecture.Tests\CleanArchitecture.Tests.csproj...
  Restoring packages for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Infrastructure\CleanArchitecture.Infrastructure.csproj...
  Restoring packages for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Web\CleanArchitecture.Web.csproj...
  Restoring packages for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Core\CleanArchitecture.Core.csproj...
  Generating MSBuild file C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Core\obj\CleanArchitecture.Core.csproj.nuget.g.props.
  Generating MSBuild file C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Core\obj\CleanArchitecture.Core.csproj.nuget.g.targets.
  Restore completed in 211.89 ms for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Core\CleanArchitecture.Core.csproj.
  Restore completed in 24.28 ms for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Infrastructure\CleanArchitecture.Infrastructure.csproj.
  Restore completed in 7.91 ms for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Web\CleanArchitecture.Web.csproj.
  Restore completed in 30.42 ms for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Web\CleanArchitecture.Web.csproj.
  Restore completed in 27.29 ms for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Web\CleanArchitecture.Web.csproj.
  Restore completed in 12.93 ms for C:\dev\scratch\cleanarchitecture\tests\CleanArchitecture.Tests\CleanArchitecture.Tests.csproj.
  Restoring packages for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Infrastructure\CleanArchitecture.Infrastructure.csproj...
  Restore completed in 762.26 ms for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Infrastructure\CleanArchitecture.Infrastructure.csproj.
  Restore completed in 13.87 ms for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Infrastructure\CleanArchitecture.Infrastructure.csproj.
  Generating MSBuild file C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Infrastructure\obj\CleanArchitecture.Infrastructure.csproj.nuget.g.props.
  Generating MSBuild file C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Infrastructure\obj\CleanArchitecture.Infrastructure.csproj.nuget.g.targets.
  Restore completed in 3.24 sec for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Infrastructure\CleanArchitecture.Infrastructure.csproj.
  Installing Swashbuckle.AspNetCore.SwaggerUI 2.2.0.
  Installing Swashbuckle.AspNetCore.Swagger 2.2.0.
  Installing Swashbuckle.AspNetCore.SwaggerGen 2.2.0.
  Installing Swashbuckle.AspNetCore 2.2.0.
  Generating MSBuild file C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Web\obj\CleanArchitecture.Web.csproj.nuget.g.props.
  Generating MSBuild file C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Web\obj\CleanArchitecture.Web.csproj.nuget.g.targets.
  Restore completed in 3.88 sec for C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Web\CleanArchitecture.Web.csproj.
  Installing Microsoft.TestPlatform.ObjectModel 15.6.1.
  Installing Microsoft.TestPlatform.TestHost 15.6.1.
  Installing Microsoft.NET.Test.Sdk 15.6.1.
  Installing Moq 4.8.2.
  Generating MSBuild file C:\dev\scratch\cleanarchitecture\tests\CleanArchitecture.Tests\obj\CleanArchitecture.Tests.csproj.nuget.g.props.
  Generating MSBuild file C:\dev\scratch\cleanarchitecture\tests\CleanArchitecture.Tests\obj\CleanArchitecture.Tests.csproj.nuget.g.targets.
  Restore completed in 5.47 sec for C:\dev\scratch\cleanarchitecture\tests\CleanArchitecture.Tests\CleanArchitecture.Tests.csproj.
  CleanArchitecture.Core -> C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Core\bin\Debug\netstandard2.0\CleanArchitecture.Core.dll
  CleanArchitecture.Infrastructure -> C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Infrastructure\bin\Debug\netcoreapp2.0\CleanArchitecture.Infrastructure.dll
  CleanArchitecture.Web -> C:\dev\scratch\cleanarchitecture\src\CleanArchitecture.Web\bin\Debug\netcoreapp2.0\CleanArchitecture.Web.dll
  CleanArchitecture.Tests -> C:\dev\scratch\cleanarchitecture\tests\CleanArchitecture.Tests\bin\Debug\netcoreapp2.0\CleanArchitecture.Tests.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:17.36
PS C:\dev\scratch\cleanarchitecture> cd .\tests\CleanArchitecture.Tests\
PS C:\dev\scratch\cleanarchitecture\tests\CleanArchitecture.Tests> dotnet test
Build started, please wait...
Build completed.

Test run for C:\dev\scratch\cleanarchitecture\tests\CleanArchitecture.Tests\bin\Debug\netcoreapp2.0\CleanArchitecture.Tests.dll(.NETCoreApp,Version=v2.0)
Microsoft (R) Test Execution Command Line Tool Version 15.7.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...

Total tests: 7. Passed: 7. Failed: 0. Skipped: 0.
Test Run Successful.
Test execution time: 6.9940 Seconds
PS C:\dev\scratch\cleanarchitecture\tests\CleanArchitecture.Tests> dotnet --version
2.1.200-preview-007576

Hi @ardalis thanks for looking - I didn't have time to follow up with a more in depth investigation - However I have just tried with a clean VS Preview 15.7.0 Preview 5 and all is well now - closing the issue.


Props description not rendering as expected

I've installed this module this morning and it all seems to be working as expected apart from rendering a description in the  table. I wonder if I am doing something wrong for the props table to not recognise the description?
import React from 'react';
import PropTypes from 'prop-types';
import styled from 'styled-components';
import Label from '../Partials/Label/Label';

const Textfield = styled(({ type, label, id, required, placeholder, defaultValue }) => (

    <input
      type={type}
      defaultValue={defaultValue ? defaultValue : null}
      placeholder={placeholder ? placeholder : null}
      required={required ? true : false}
      id={id}
    />

))`
  margin: 0;
  border: 1px solid #ccc;
  padding: 0;
  display: inline-block;
  vertical-align: middle;
  white-space: normal;
  background: none;
  line-height: 1;
  font-size: 13px;
  font-family: Arial;
  box-sizing: content-box;
`;

Textfield.propTypes = {
  /* Type of text field, this will grow as we progress */
  type: PropTypes.oneOf(['text']),
  /* Label for text field, this is required for accessibiity reasons */
  label: PropTypes.string.isRequired,
  /** Unique ID for field, this allows the label to reference the input field */
  id: PropTypes.string.isRequired,
  /** Is the form required? if true a required attribute will be added to the input */
  required: PropTypes.bool,
  /** Placeholder text to appear within the input field, probably best not to put instructions in here as they disappear on change */
  placeholder: PropTypes.string,
  /** A default value for the form when it is first loaded, useful if you are a logged in user etc. */
  defaultValue: PropTypes.string,
};

export default Textfield;

The output is as follows:

I have a similar issue only for me the table renders, but adds extra rows on coment line breaks
 /**
   * statusColor dictates the color of the button
   * can be.
   */
  statusColor: ButtonStatusColor,

with it rendering like so

Hi @tuchk4 - What's the correct implementation for "Type" and "Description"?
What is being returned:

Config.js
storiesOf(componentName, module)
.addDecorator(withKnobs)
.addDecorator(addReadme)
.addParameters({
options: {
 panelPosition: 'right',
},
readme: {
  sidebar: readme,
 }
 })

 .add(name, () => {
 return useMyContentWrapper ? (
 <MyContentWrapper>
 <Example />
 </MyContentWrapper>
 ) : (
 <Example />
 );
 });

Button.js
....

Checkbox.propTypes = {
  /** Any extra CSS classes for the component */
  className: string,
  /** Name for the input field */
  name: string,
  /** Any extra CSS id for the component */
  id: string,
  /** Text displayed with the Checkbox */
  label: string,
  /** Function to trigger when value changes */
  onChange: func,
  /** Value for input */
  value: string,
  /** Testing Key for Jest */
  testId: string,
  /** HTML `checked` attribute */
  checked: bool
};

Trying to find the problem.
Docs are generated by https://github.com/storybooks/babel-plugin-react-docgen. There are some problems with hocs / styled-components / functional components etc.
This babel-plugin-react-docgen PR https://github.com/storybooks/babel-plugin-react-docgen/pull/68  (Add forward ref support) is related to my issues but not sure it is common problem with props info generation.
Trying to find some bugs at storytbook-readme codebase but still cant see errors.

Just a quick bit of info, in addition to the problem with newlines in the prop description comments, I'm seeing something similar in shape props with a default value:

@tuchk4 - Can you provide a working example with the implementation of all the fields being populated? (Type, DefaultValue, Description) You don't have them being displayed on your current live example. https://tuchk4.github.io/storybook-readme/?path=/story/propstable--button

@jephjohnson yes, will add to examples with next release

FYI if you guys are using styled components (or possibly glamorous?), you may find that the proptypes tables don't render properly.
I think it's related to reactjs/react-docgen#256
Basically if you set propTypes on a styled component it doesn't work, so I use a workaround like this (not a real example, just edited for brevity):
const StyledHeading = styled.h1`
  color: red;
`;

// Make into a "normal" component so proptypes work.
const Heading = ({ children, ...props }) => (

);

Heading.propTypes = {
  /** The heading level. This selects the appropriate tag, i.e. h1 - h6 */
  level: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
};

Heading.defaultProps = {
  level: 4
};

export default Heading;

@jephjohnson

Here is demo https://tuchk4.github.io/storybook-readme/?path=/story/propstable--button
Here is sources example-react/components/Button/ButtonWithPropTypes.js

published 5.0.2
Leave this issue open for few day. Maybe some bugs or feedback

@jephjohnson

Here is demo https://tuchk4.github.io/storybook-readme/?path=/story/propstable--button
Here is sources example-react/components/Button/ButtonWithPropTypes.js

NOTE: not published yet

@tuchk4 - Thank you Legend!!!

@tuchk4 - Were you able to receive the same output using the approach below? I copied your example exactly as is, but using this approach:
https://github.com/tuchk4/storybook-readme/issues/83#issuecomment-473605046
In your example, stories are inline and not global. Running into the same issue.

@jephjohnson The latest versions are used?

@jephjohnson The latest versions are used?

Yes,  "@storybook/react": "^5.0.6", & "storybook-readme": "^5.0.2",

Hi @tuchk4 - Sorry pest on this, just was wondering if it had anything to do with the approach or anything else you could think of?

@jephjohnson sorry, this week I did not have time to work with storybook-readme.
Going to back to project at the next week.
Anyway this is very strange that example don't work for you. If it possible could you please clone this repo and run
yarn
lerna bootstrap

# not sure if need to run this
# yarn dev

cd packages/example-react
yarn storybook

Confirm if you still have that problem please

Thanks @tuchk4: This is my setup and the approach where it does not render properly:
Reference:
https://github.com/tuchk4/storybook-readme/issues/83#issuecomment-473605101
Config.js
import React from 'react';
import path from 'path';
import {
  getStorybook,
  storiesOf,
  addDecorator,
  configure,
} from '@storybook/react';
import { withKnobs } from '@storybook/addon-knobs';
import { addReadme } from 'storybook-readme';

// register decorator
addDecorator(addReadme);

let getComponentName = filePath =>
  path
    .dirname(filePath)
    .split(path.sep)
    .reverse()[0];

let getPackageName = filePath =>
  path
    .dirname(filePath)
    .split(path.sep)
    .reverse()[1];

configure(() => {
  // Automatically import all examples
  const req = require.context(
    '../auto',
    true,
    /^((?!node_modules).)*\.example\.js$/,
  );

  const readMeReq = require.context(
    '../auto',
    true,
    /^((?!node_modules).)*\.README\.md$/,
  );

  req.keys().forEach(pathToExample => {
    const { name, Example } = req(pathToExample);
    const packageName = getPackageName(pathToExample);
    const componentName = `${packageName}.${getComponentName(pathToExample)}`;

    const readmePath = readMeReq.keys().find(rm => rm.includes(packageName));
    const readme = readMeReq(readmePath);

    storiesOf(componentName, module)
      .addParameters({
        readme: {
          content: '',
          sidebar: readme,
        },
      })
      .add(name, () => <Example dummy="test" />);
  });
}, module);

export { getStorybook };

Button.example.js
import React from 'react';
import Button from './';

export const name = 'Default';

export const Example = () => <Button label="Hi" />;

// copy proptypes so  will work
Example.propTypes = Button.propTypes;

I'm also seeing some weirdness here. I'm trying to update from v4 to v5 (so keeping withDocs) and here are the propTypes.
Button.propTypes = {
    as: PropTypes.string,
    block: PropTypes.bool,
    children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.node]),
    disabled: PropTypes.bool,
    href: PropTypes.string,
    isLoading: PropTypes.bool,
    onClick: PropTypes.func.isRequired,
    size: PropTypes.oneOf(['small', 'medium', 'large'])
};

However, I'm seeing this.

@leerob just copied your prop-types:

Could you please show versions of storybook and storybook-readme?
Try to rm -rf node_modules and install deps again.

@jephjohnson Can you confirm you still have issue with prop-tables?
If yes could you please show versions of storybook and storybook-readme?
Try to rm -rf node_modules and install deps again.
Please check the version of storybook-readme like
cat node_modules/storybook-readme/package.json | grep version

I'm having the same issue as @leerob with storybook-readme v.5.0.3 and storybook-react v.5.0.11

I have the same issue too. Required and DefaultValue works as expected tho. I'm using storybook-readme 5.0.5, @storybook/react 5.1.9 and @storybook/addons 5.1.9

@maxobaxo  @renemn  Hey guys, currently showing prop descriptions feature has some limitations(check more info on #177 ) We are trying to improve this so that it is more useful in an actual usage. Please wait until then~

Right, I was trying to figure out the issue and my problem was that I'm using a custom hoc which I use in the component. But was inconsistent too.
For instance, this example does not render the Props Table at all:
const MyComponent = ({ someText }) => (

    {someText}

);

MyComponent = {
  /** This is a text example */
  someText: PropTypes.string.isRequired
};

MyComponent.defaultProps = {
  someText: "My Text"
};

export default withPicker(MyComponent);

While, in this other example, I can see the Props Table. But only Required and DefaultValue works:
const MyComponent = withPicker({ someText }) => (

    {someText}

);

MyComponent = {
  /** This is a text example */
  someText: PropTypes.string.isRequired
};

MyComponent.defaultProps = {
  someText: "My Text"
};

export default MyComponent;

Hope this helped a little.

@renemn Thanks for more cases for investigation. So far, this problem is kind of intertwined... some limitations from react-docgen and we use datas from storybook  Let's see how it can be solved from our side.

Hi, is there any love for Typescript? My Prop table is not rendered at all as I do not specify PropTypes.

Hi, is there any love for Typescript? My Prop table is not rendered at all as I do not specify PropTypes.

@tomitrescak did you tried https://github.com/milesj/babel-plugin-typescript-to-proptypes?


virtiofs: Run unprivileged without feature gate

What this PR does / why we need it:
Currently, virtiofsd can only run unprivileged for sharing ConfigMaps, Secrets, etc., but to be able to share PVs requires the feature gate ExperimentalVirtiofsSupport.
This PR removes that restriction, making it possible to share PVs using unprivileged virtiofsd if the feature gate is disabled, and continue running as root if the feature gate is enabled. So this change doesn't affect users that are already running a privileged virtiofsd.
Running virtiofsd without privileges has some limitations, for instance, virtiofsd cannot switch uids/gids so all the new files created inside the PV will be owned by the same uid/gid (the virtiofsd uid/gid) regardless of the uid/gid of the process that created them inside the VM.  After the merge, all the limitations and workarounds (like using fsGroup) will be documented.
Signed-off-by: German Maglione<EMAIL_ADDRESS>Tested-by: Javier Cano Cano<EMAIL_ADDRESS>Release note:

Exposing Persistent Volumes (PVs) as a filesystem to the VM using unprivilege virtiofsd.

/cc @jcanocan
/cc @alicefr

/ok-to-test

The change looks good to me
/lgtm
/cc @xpivarc

/retest-required

/retest-required

/retest-required

IMO, the code looks good
/approve
/hold
Wait for another round of reviews, @0xFelix @xpivarc, does this change look sane to you?

I am a little bit worried that this will give the wrong impression that you could share any volume. Can we clarify this in the PR description + release note?

Do you mean block PVs?, if so, is it enough calling them "filesystem PVs"?
could you expand on which ones cannot be shared using virtiofs?

I am a little bit worried that this will give the wrong impression that you could share any volume. Can we clarify this in the PR description + release note?

Do you mean block PVs?, if so, is it enough calling them "filesystem PVs"? could you expand on which ones cannot be shared using virtiofs?

Yes, the filesystem PVs sound good. What I am more worried about is the privileges issue, users need to be aware there is a limitation to it.

I am a little bit worried that this will give the wrong impression that you could share any volume. Can we clarify this in the PR description + release note?

Do you mean block PVs?, if so, is it enough calling them "filesystem PVs"? could you expand on which ones cannot be shared using virtiofs?

Yes, the filesystem PVs sound good. What I am more worried about is the privileges issue, users need to be aware there is a limitation to it.

We plan to update the documentation, with all the limitations, as soon this PR is merged

I am a little bit worried that this will give the wrong impression that you could share any volume. Can we clarify this in the PR description + release note?

Do you mean block PVs?, if so, is it enough calling them "filesystem PVs"? could you expand on which ones cannot be shared using virtiofs?

Yes, the filesystem PVs sound good. What I am more worried about is the privileges issue, users need to be aware there is a limitation to it.

We plan to update the documentation, with all the limitations, as soon this PR is merged

Would you mind posting placeholder PR?

/retest-required


a few small fix

Thanks for this PR! But, unfortunately, we are currently not ready to migrate to Kotlin 1.5 due to our code generation mechanism.

Is it caused by this?
https://github.com/JetBrains-Research/kinference-primitives

It is easy to fix, I'll fix those on Thursday or this weekend, I got too much homework to do this week

I sugget use Kotlin IR to generate ir code directly or use ksp(https://github.com/google/ksp). instead of replacing "Primitive" string.

I sugget use Kotlin IR to generate ir code directly

Generated code is part of our open API, so we can't use IR.

use ksp(https://github.com/google/ksp). instead of replacing "Primitive" string.

KSP is almost the same as our current approach, but I'm not sure if it provides the same flexibility.


Build with clang support is failing

To reproduce, configure with clang enabled with cuda, i.e.
Do you wish to build TensorFlow with ROCm support? [y/N]: n
No ROCm support will be enabled for TensorFlow.

Do you wish to build TensorFlow with CUDA support? [y/N]: n
No CUDA support will be enabled for TensorFlow.

Do you wish to download a fresh release of clang? (Experimental) [y/N]: y
Clang will be downloaded and used to compile tensorflow.

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:

Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: n
Not configuring the WORKSPACE for Android builds.

Then star building
$ bazel build //tensorflow/tools/pip_package:build_pip_package
Starting local Bazel server and connecting to it...
ERROR: Config value 'download_clang' is not defined in any .rc file

The generated .tf_configure.bazelrc contains:
build --action_env PYTHON_BIN_PATH="/usr/local/bin/python3"
build --action_env PYTHON_LIB_PATH="/usr/lib/python3.9/site-packages"
build --python_path="/usr/local/bin/python3"
build --config=xla
build --config=download_clang
build:opt --copt=-Wno-sign-compare
build:opt --host_copt=-Wno-sign-compare
build:opt --define with_default_optimizations=true
test --flaky_test_attempts=3
test --test_size_filters=small,medium
test:v1 --test_tag_filters=-benchmark-test,-no_oss,-gpu,-oss_serial
test:v1 --build_tag_filters=-benchmark-test,-no_oss,-gpu
test:v2 --test_tag_filters=-benchmark-test,-no_oss,-gpu,-oss_serial,-v1only
test:v2 --build_tag_filters=-benchmark-test,-no_oss,-gpu,-v1only
build --action_env TF_CONFIGURE_IOS="0"

I didn't find download_clang defined as a build config in .bazelrc, guess it might be the reason.
This happens on the master branch with latest commit 57bbc5e0d4b93483b8ae853352173516f1c08018

Probably need something like this in .bazelrc:
build:download_clang --action_env=TF_DOWNLOAD_CLANG=1

@mzhaom
We see that the issue template has not been filled, could you please do so as it helps us analyse the issue [tf version]

@Saduf2019, this happens with the latest  commit 57bbc5e

This is still an open issue with TF 2.10 or later.

This problem still persist. Can someone help reopen this issue?


AdministrativeArea iso code

🚀 Feature Requests
Would be very nice to add also isoAdministrativeArea to Placemark. In order to get the user state base on his current location work with Strings can be a dirty way to do it.

@krel024 unfortunately such a property is not returned by the geocoding services on Android (see Address) or iOS (see CLPlacemark).
Which means we would have to resolve it the same way you do it now and in that case it would be better to leave this to the individual developers.


Log.LogTrace does not write to log target.

Type :  Bug
NLog version: 4.5.0-beta08
Platform:  NET Core 2.0
Problem:: Log.LogTrace( .... does not write to log target.
Expected:  Log.LogTrace logs also into the log target.
Other information:

Did you checked the Internal log?
Yes
Are there any work arrounds? No using logTrace
Is there a version in which it did worked? I don't know
Can you help us by writing an unit test? No, or I can trie in the case I found where

Details:
Current NLog config
<logger name="*.RestProtocol.*" writeTo="file" levels="Trace,Debug,Info,Warn" />
We like to have the logger in each Controller. As a result we created a baseController like this.
 public class MyControllerBase : Controller
    {
        protected ILogger Log { get; set; }
        protected MyControllerBase(ILoggerFactory logger)
        {
            Log = logger.CreateLogger(GetType().FullName);
        }
    }

We are using the baseController like this (here with some test logs):
[Route("api/zip")]
 public class ValuesController : MyControllerBase
 {
     public ValuesController(ILoggerFactory loggerFactory ) : base(loggerFactory)
     {
     }

     // GET api/values
     [HttpGet]
     public IEnumerable<string> Get()
     {

         Log.LogTrace("--------- MyTrace", null); // <-- Will never be in logfile. The others are inside the logfile.
         Log.LogDebug("--------- MyDebug");
         Log.LogInformation("--------- MyInfo");
         Log.LogWarning("---¨!------ MyWarning");
         return new string[] { "value1", "value2" };
     }
}

Startup:
public class Program
 {
     #region Methods
     public static IWebHost BuildWebHost(string[] args)
     {
         return WebHost.CreateDefaultBuilder(args)
             .UseNLog()
             .UseStartup<Startup>() // use NLog for DI Logger
             .Build();
     }
     public static void Main(string[] args)
     {
         NLog.Logger logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();

         try
         {
             logger.Debug("Create Webhost");
             BuildWebHost(args).Run();
         }
         catch (Exception e)
         {
             logger.Error(e, "Stopped program because of exception");
             throw;
         }
     }

     #endregion
 }

Tried this?

Missing the trace en debug logs? Set ILoggingBuilder.SetMinimumLevel()

See https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2

I added it but this has no change. Is it on wronge place there?
public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Trace))
.UseNLog()
.UseStartup() // use NLog for DI Logger
.Build();
}

Log.LogTrace("--------- MyTrace", null);

could you please test with:

without null ->  Log.LogTrace("--------- MyTrace");
with logmananager -> LogMananager.GetLogger("logger1").Trace*"mytrace")

without null -> Log.LogTrace("--------- MyTrace");  -->No effect
non DI style -> LogMananager.GetLogger("logger1").Trace("mytrace") --> works
2017-11-30 12:58:03.0730||TRACE|logger1|mytrace

OK, then your config is indeed correct.
Please update NLog 4.5 to the latest version (RC01), also Nlog.Web.AspNetCore to the latest beta
ps, why are you doing    Log = logger.CreateLogger(GetType().FullName);? that's not needed.
I think it should be
 public class MyControllerBase : Controller
    {
        protected ILogger<MyControllerBase>Log { get; set; }
        protected MyControllerBase(ILogger<MyControllerBase> logger)
        {
            Log = logger;
        }
    }

I have now:

No difference.
MyControllerBase is the  base class of all my Controllers, and I like like to know which class really logs the entry.

could you try .ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Trace)) after UseNLog?
It's a bit strange, I can't reproduce this.

No effect. That's really strange. All other levels works, only Trace not.

could you please share the full nlog.config?

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
  internalLogLevel="trace"
  internalLogFile="c:\temp\internal-nlog.txt"
  throwExceptions="true"
  throwConfigExceptions="true"

  >

<!--<target xsi:type="Debugger" name="debugLog" />-->
<!--<target xsi:type="Debugger" name="debugLog" layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger}|${message}  ${aspnet-mvc-action} ${aspnet-request-url} ${exception}"/>-->

<target xsi:type="file" name="file" fileName="c:\temp\nlog-all-${shortdate}.log" layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger}|${message} ${exception}" />

<!-- write to the void aka just remove -->
<target xsi:type="Null" name="blackhole" />

<target name="database" xsi:type="database">
  <connectionString>XY</connectionString>

<!--<   Remarks:
  The appsetting layouts require the NLog.Extended assembly.
  The aspnet-* layouts require the NLog.Web assembly.
  The Application value is determined by an AppName appSetting in Web.config.
  The "NLogDb" connection string determines the database that NLog write to.
  The create dbo.Log script in the comment below must be manually executed.

  Script for creating the dbo.Log table.

  SET ANSI_NULLS ON
  SET QUOTED_IDENTIFIER ON
  CREATE TABLE [dbo].[Log] (
  [Id] [int] IDENTITY(1,1) NOT NULL,
  [Application] [nvarchar](50) NOT NULL,
  [Logged] [datetime] NOT NULL,
  [Level] [nvarchar](50) NOT NULL,
  [Message] [nvarchar](max) NOT NULL,
  [Logger] [nvarchar](250) NULL,
  [Callsite] [nvarchar](max) NULL,
  [Exception] [nvarchar](max) NULL,
  CONSTRAINT [PK_dbo.Log] PRIMARY KEY CLUSTERED ([Id] ASC)
  WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  ) ON [PRIMARY]
  -->
   <commandText>
    insert into dbo.Log (
    Application, Logged, Level, Message,
    Logger, CallSite, Exception
    ) values (
    @Application, @Logged, @Level, @Message,
    @Logger, @Callsite, @Exception
    );
  </commandText>

  <parameter name="@application" layout="AspNetCoreNlog" />
  <parameter name="@logged" layout="${date}" />
  <parameter name="@level" layout="${level}" />
  <parameter name="@message" layout="url: | ${message}" />

  <parameter name="@logger" layout="${logger}" />
  <parameter name="@callSite" layout="${callsite:filename=true}" />
  <parameter name="@exception" layout="${exception:tostring}" />
</target>

@stjephan Maybe my rant at #234 might be useful. Seems asp.net core 2 will choose appsettings.json LogLevel-config when available.

@snakefoot Thank for hint but I remove the part vom appsettings.json with no effect

Did you use the last code example for configuring the WebHost and removed all other calls to ConfigureNLog in your code ?
Sent from my Samsung device
-------- Original message --------
From: stjephan<EMAIL_ADDRESS>Date: 13/12/2017 09:43 (GMT+01:00)
To: NLog/NLog<EMAIL_ADDRESS>Cc: Rolf Kristensen<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [NLog/NLog] Log.LogTrace does not write to log target. (#2430)
@snakefoothttps://github.com/snakefoot Thank for hint but I remove the part vom appsettings.json with no effect
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/NLog/NLog/issues/2430#issuecomment-351322441, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK-fnMO_mwIMvY6pUDtjafhh6DMqcMcQks5s_44lgaJpZM4Qs_jv.

@snakefoot : yes.
  public static IWebHost BuildWebHost(string[] args)
        {
            return WebHost.CreateDefaultBuilder(args)
                .UseNLog()
                .ConfigureLogging(builder =>
                {
                    builder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
                })
                .UseStartup<Startup>() // use NLog for DI Logger
                .Build();
        }

        public static void Main(string[] args)
        {
            NLog.Logger logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
            try
            {
                logger.Debug("Create Webhost");
                BuildWebHost(args).Run();
            }
            catch (Exception e)
            {
                logger.Error(e, "Stopped program because of exception");
                throw;
            }
        }

You are not using the last code sample, as I asked you. You are missing ConfigureNLog in ConfigureLogging. Please remove all other calls to ConfigureNLog (Ex in Main)
Sent from my Samsung device
-------- Original message --------
From: stjephan<EMAIL_ADDRESS>Date: 14/12/2017 07:42 (GMT+01:00)
To: NLog/NLog<EMAIL_ADDRESS>Cc: Rolf Kristensen<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [NLog/NLog] Log.LogTrace does not write to log target. (#2430)
@snakefoothttps://github.com/snakefoot : yes.
public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseNLog()
.ConfigureLogging(builder =>
{
builder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
})
.UseStartup() // use NLog for DI Logger
.Build();
}
    public static void Main(string[] args)
    {
        NLog.Logger logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
        try
        {
            logger.Debug("Create Webhost");
            BuildWebHost(args).Run();
        }
        catch (Exception e)
        {
            logger.Error(e, "Stopped program because of exception");
            throw;
        }
    }

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/NLog/NLog/issues/2430#issuecomment-351622849, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK-fnHofWfGwdzZXMrdBA73br_ILVolUks5tAMNCgaJpZM4Qs_jv.

@snakefoot Do you mean the code sample : https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2
? I change to this with no effect:
-->     public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup()
.UseNLog()
.Build();
}
    public static void Main(string[] args)
    {
        NLog.Logger logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();

        try
        {
            logger.Debug("Create Webhost");
            BuildWebHost(args).Run();
        }
        catch (Exception e)
        {
            //NLog: catch setup errors
            logger.Error(e, "Stopped program because of exception");
            throw;
        }
    }

No the last code sample in the referenced issue about Log level.  Can still see that you are calling ConfigureNLog in main
Sent from my Samsung device
-------- Original message --------
From: stjephan<EMAIL_ADDRESS>Date: 14/12/2017 11:46 (GMT+01:00)
To: NLog/NLog<EMAIL_ADDRESS>Cc: Rolf Kristensen<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [NLog/NLog] Log.LogTrace does not write to log target. (#2430)
@snakefoothttps://github.com/snakefoot Do you mean the code sample : https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2
? I change to this with no effect:
--> public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup()
.UseNLog()
.Build();
}
public static void Main(string[] args)
{
    NLog.Logger logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();

    try
    {
        logger.Debug("Create Webhost");
        BuildWebHost(args).Run();
    }
    catch (Exception e)
    {
        //NLog: catch setup errors
        logger.Error(e, "Stopped program because of exception");
        throw;
    }
}

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/NLog/NLog/issues/2430#issuecomment-351675449, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK-fnPaDlqLoSotZOHMW7VdiIpKuARaxks5tAPyjgaJpZM4Qs_jv.

@304NotModified : For me it's not clear why you can reproduce it. I downloaded the example project (https://github.com/NLog/NLog.Web/tree/master/examples/ASP.NET Core 2/Visual Studio 2017/ASP.NET Core 2 - VS2017) and added the trace info
 public IActionResult Index()
        {
            _logger.LogTrace("Hello, this is the index!");
            _logger.LogInformation("Hello, this is the index!");
            return View();
        }

_logger.LogTrace("Hello, this is the index!"); does not write to logfile.

I can confirm the SetMinimumLevel isn't working in the sample anymore in ASP.NET Core 2 when using the NLogBuilder

the debug and trace logs are still removed when using the DI logger

related #193, #175, #167

this works, but is not using UseNLog but the older ConfigureNLog

Hi all,
Has this been resolved already? I'm also having the not logging Trace information problem.
Thank you

Please do not wake up old issues with your random problems. The NLog sample application for NetCore has no issues with logging Trace-Level. Please create new issue and show how you setup NLog and MEL-LogFilters
Sent from my Sony Xperia
---- Paulo Ricardo Stradioti wrote ----
Hi all,
Has this been resolved already? I'm also having the not logging Trace information problem.
Thank you
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/NLog/NLog/issues/2430?email_source=notifications&email_token=ACXZ7HE4WCLLSGNS6NBZ23LRCGWPDA5CNFSM4EFT7DX2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKAP7I#issuecomment-584321021, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACXZ7HCGA7OELYGVHAUDHP3RCGWPDANCNFSM4EFT7DXQ.


ReadPrinter does not work any suggestion or example code please share

     // HERE Open Printer - Works fine with status 1

     // Write Printer also works fine

    // Read the response from the printer
    const bufferSize = 1024;
    final buffer = calloc<Uint8>(bufferSize);
    final bytesRead = calloc<DWORD>();

    final successRead = ReadPrinter(
      printerHandle.value,
      buffer.cast(),
      bufferSize,
      bytesRead,
    );

    if (successRead == 0) {
      final error = GetLastError();
      throw Exception('Failed to read print status, error: $error');
    }`

Is there any example code, please share

Can you also share the code you use to call the OpenPrinter function?

I use this code - https://github.com/dart-windows/win32/blob/main/example/printer_raw.dart
My Printer is this one - https://www.bocasystems.com/sample.htm
Future<String> readFromPrinterAsync(
      String printerName, int bufferSize) async {
    final completer = Completer<String>();

    // Start a new isolate to perform the blocking operation

    final phPrinter = calloc<HANDLE>();

    await Isolate.spawn((_) {
      try {
        // Open the printer
        final pPrinterName = printerName.toNativeUtf16();
        final success = OpenPrinter(pPrinterName, phPrinter, nullptr);
        if (success == 0) {
          completer.completeError(
              WindowsException(HRESULT_FROM_WIN32(GetLastError())));
          return;
        }

        final pReadBuf = calloc<Uint8>(bufferSize);
        final pBytesRead = calloc<Uint32>();

        const command = '<S92>'; // Command to read print status
        final res = _printRawData(phPrinter, command);

        if (!res) {
          throw Exception('Failed to send command to read print status');
        }

        try {
          // Read from the printer
          final success =
              ReadPrinter(phPrinter.value, pReadBuf, bufferSize, pBytesRead);
          if (success == 0) {
            completer.completeError(
                WindowsException(HRESULT_FROM_WIN32(GetLastError())));
            return;
          }

          // Convert the read buffer to a Dart string
          final readData = String.fromCharCodes(
              pReadBuf.cast<Uint8>().asTypedList(pBytesRead.value));
          completer.complete(readData);
        } finally {
          calloc.free(pReadBuf);
          calloc.free(pBytesRead);
        }
      } finally {
        // Close the printer handle
        if (phPrinter.value != NULL) {
          ClosePrinter(phPrinter.value);
        }
        calloc.free(phPrinter);
      }
    }, null);

    return completer.future;
  }

The documentation for the ReadPrinter function says:

hPrinter [in]
A handle to the printer object for which to retrieve data. Use the OpenPrinter function to retrieve a printer object handle.
Use the format: Printername, Job xxxx.

This implies that you must provide both the name of the printer and a job number when calling the OpenPrinter function. It's unclear whether this job number is something you define or a value obtained from another API call.
I also couldn't find an example online that uses OpenPrinter, sorry!

Hi @halildurmus
Thanks for the reply, but I already pass handle which we are using in OpenPrinter.

The same question is posted here - https://stackoverflow.com/q/78080791/5766072
any update?


stark: compute lde_g earlier and remove tmp0

Describe your changes
Why? https://github.com/0xPolygonMiden/miden-vm/pull/960 needs the lde_g to compute the trace_g, so the computation is moved to the initialization step for that. This PR doesn't compute trace_g yet because it also removes the tmp0, so a small PR like this should be easier to review.
Checklist before requesting a review

Repo forked and branch created from next according to naming convention.
Commit messages and codestyle follow conventions.
Relevant issues are linked in the PR description.
Tests added for new functionality.
Documentation/comments updated according to changes.

closing since the parent PR is being reviewed.


Add link to DR with Submariner blog post

See commit messages.

I went ahead and added the second blog post to this PR.


Allow text selection on elements other then input

Same situation as with issue #5612. (I have areas in my app where I want to be able to select text. Instead of preventing text selection for anything except for a text input there should be an option to define selectable text. Working on a pull request now.)
I need text to be selectable not only on input fields.
Apparently there's no trivial way to do this.

Hello! Thanks for opening an issue with us! I am going to be closing this issue as a duplicate of https://github.com/driftyco/ionic/issues/5198 . Thanks for using Ionic!


How to Debounce Class Methods with function debounce

Hey, I'd like to create a map of debounced functions that link to a class method. Is this possible?

That doesn't sound like something this decorator would be useful for.

Because it will not be able to support it or? I'm trying to make the
function retain its context. I.e. I need to access "this" inside of the
function I'm debouncing
On Fri, Mar 8, 2019, 11:32 PM Brian Vaughn<EMAIL_ADDRESS>wrote:

That doesn't sound like something this decorator would be useful for.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bvaughn/debounce-decorator/issues/7#issuecomment-471020210,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFaOlsrNNRX2YxLbgB4Wwmx-oHweYaSWks5vUqW0gaJpZM4blz9z
.

Maybe I just misunderstood what you were asking. Your question is kind of vague.
If you're just looking for a way to attach functions to the instance with the correct this then you can just do:
import { debounce } from "debounce-decorator";

class Example {
  constructor() {
    this.onClick = debounce(() => {
      console.log("onClick() this:", this);
    });
    window.addEventListener("click", this.onClick);
  }
}

CodeSandbox


Can't use any pipenv command when there is an argument containing a dash/hyphen "-"

Hi, I'm not sure what's happening behind the scenes in my case. The behaviour of pipenv is confusing me a little, though.
I have the following Dockerfile:
FROM alpine:3.9.2

ENV PIPENV_VERSION=2018.11.26

RUN apk add --update \
        build-base=0.5-r1 \
        curl=7.64.0-r1 \
        bash=4.4.19-r1 \
        python2=2.7.15-r3 \
        ruby=2.5.3-r1 \
        ruby-dev=2.5.3-r1 \
        git=2.20.1-r0 \
        openssh=7.9_p1-r4 \
        tar=1.32-r0 \
        gzip=1.10-r0 \
        ca-certificates=20190108-r0 \
        libressl=2.7.5-r0 \
        libressl-dev=2.7.5-r0 \
        libffi-dev=3.2.1-r6 \
        openssl-dev=1.1.1b-r1 \
        python2-dev=2.7.15-r3
RUN curl -SOL https://bootstrap.pypa.io/get-pip.py \
    && python get-pip.py \
    && rm get-pip.py
RUN pip install -Iv pipenv==${PIPENV_VERSION}

Then I have the following Pipenv file:
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[requires]
python_version = "2.7.15"

[packages]
ansible = "==2.7.6"
google-auth = "==1.6.2"
requests = "==2.21.0"

When I build the Docker image, then I run the image with:
# $PWD is where the Pipenv file is
docker run -v $PWD:/my-folder -ti {{the_image_id}} bash

And then, from within the Docker image, I do:
export PIPENV_VENV_IN_PROJECT=1
pipenv install

And then I do:
pipenv run which ansible

Then I correctly see:
/my-folder/.venv/bin/ansible

But when I do:
 pipenv run which ansible-playbook

Then I receive:
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Try "pipenv -h" for help.

Error: Invalid value for "--version": 2018.11.26 is not a valid boolean

Why is that?
Is the - in ansible-playbook breaking pipenv?
Note that if I just issue pipenv I get the same. Whereby normally pipenv would come back with the general usage message showing all commands..
I'm not sure how I should go about debugging this. Any help would be much appreciated.
Thank you.

I think the - when passed to pipenv run is actually breaking pipenv. See below.
# From within the container
bash-4.4# pipenv run echo hello
hello
bash-4.4# pipenv run echo hello-world
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Try "pipenv -h" for help.

Error: Invalid value for "--version": 2018.11.26 is not a valid boolean

Looks like this is the offending line: https://github.com/pypa/pipenv/blob/master/pipenv/cli/command.py#L57
Without it, the problem does not occur with the setup above.

I have a fix ready if that line is safe to remove: https://github.com/pypa/pipenv/compare/master...walterdolce:feature/remove-version-option-breaking-on-alpine?expand=1

It is weird that I can't replicate this. Version option is required that a custom prog name is provided.

@frostming what more information do you need?

@walterdolce No your example is quite complete and I can replicate with the Dockerfile.
Just can't figure out what is broken because even pipenv --rm/pipenv --venv can't work.

@frostming oh I see. Let me know if I can be of any help!
FWIW, I the above was happening on both macOS (my laptop) and on CircleCI

@walterdolce Oh, I got it! Just don't use PIPENV_VERSION as the env name, because it is respected by click as the option value. Change it to another name will do the trick.
This is not a bug, close it now. Thanks.

No way! Thanks for this!

@frostming : It would nice to be informed like as follows:

Error: Invalid value for '--version' or "env:PIPENV_VERSION': '2021.11.23' is not a valid boolean.


Clean frequently flooded messages during load tests

What this PR does / why we need it:
Clean up frequently flooded messages.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Fix https://github.com/Kong/kubernetes-ingress-controller/issues/1598
Special notes for your reviewer:
PR Readiness Checklist:
Complete these before marking the PR as ready to review:

[ ] the CHANGELOG.md release notes have been updated to reflect any significant (and particularly user-facing) changes introduced by this PR

I think the change we have is good, but the test results seem to indicate it's not quite stifling out the necessary info messages:
 time="2021-07-28T23:02:47Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:47Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:47Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:47Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:47Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:47Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:48Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:48Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:49Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:49Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:49Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:50Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:50Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"
time="2021-07-28T23:02:51Z" level=info msg="successfully updated networkingv1 Ingress status" source="ingress-status.go:175"

The line number in those log entries needs to be changed as well, I would like to see us change ALL info logging in the status code that only says "it worked" to debug logging as a part of this PR please 🙇

Changed accordingly. 🙇


Log file uploads

Use Case
Currently, there's no good way to diagnose which files are uploaded by Bolt as part of running a task. They're uploaded to a random directory and deleted after Bolt runs, so you can't look at them on the filesystem. There are also not log messages associated with file uploads for every transport, so you can't check whether Bolt uploaded the right things. This can also lead users to the appearance that Bolt isn't doing the right thing, when it did in fact upload the correct files.
Describe the Solution You Would Like
Each transport should issue  debug message for each file that is uploaded, just as it does for each command that is run.
Describe Alternatives You've Considered
Another way to handle this uncertainty about what Bolt is doing would be to add an option to preserve the tempdir after Bolt runs, so that users can log in and inspect it. That would likely require a new CLI flag and would also cause trouble for cases where Bolt creates multiple tempdirs. It also would require Bolt have some clear way to tell users where the tempdir is.

Closed by https://github.com/puppetlabs/bolt/pull/1287


我希望sqlchat能增加两个新特性，可以大大提升用户体验 (I hope that SQLChat can add two new features, which can greatly enhance the user experience.)

Is your feature request related to a problem?
我每次问它问题，它都要反问我你的数据库模式是啥？表名是啥？重复的问题很浪费时间。
Every time I ask it a question, it always asks me back what my database schema is and what the table name is. It's very time-consuming to deal with repetitive questions like that.
Describe the solution you'd like
一是可以自定义保存多个提示词，类似现在很多chatgpt web项目那样，因为现在gpt3.5是没有记忆的，我每次问问题，它都要反问我你的数据库模式是啥？表名是啥？我想在提示词里固化这些信息。这样会方便很多。
One is the ability to customize and save multiple prompts, similar to many chatbot web projects nowadays. Because GPT3.5 currently has no memory, every time I ask a question it asks me back about my database schema and table names. I want to solidify this information in the prompts so that it will be more convenient.
二是，跳过手工点执行那步，生成完信息直接执行，我可以在执行结果之后再做调整，手动点一下执行没意义。然后执行结果可以提供导出csv，感谢。
The second point is to skip the manual execution step and directly execute after generating the information. I can make adjustments after seeing the execution results, so manually clicking on execution is meaningless. Then, the execution results can be exported as a CSV file. Thank you.
Additional context
No response

🤣 你想要的功能感觉像这个 #44 #52

🤣 你想要的功能感觉像这个 #44 #52

大佬好，看了你的issue，确实类似，你给的方案也可以，我只是一个使用者，从自己的角度出发提的方案，让开发团队想办法解决吧，哈哈。

🤣 你想要的功能感觉像这个 #44 #52

我和#44这个问题观点一样的，应该展示结果。因为大部分的用户可能是不想看，比如我更关心结果🤣

Thanks to @CorrectRoadH . This is already released.


SSL certificate error

When trying to search for answer, something is crashing (maybe in request and fake_useragent)
here is the error
Press s to screenshot live game, sampq to run against sample questions or q to quit:
s
✔ Reading screen
⢿ Googling and searching WikipediaError occurred during loading data. Trying to use cache server https://fake-useragent.herokuapp.com/browsers/0.1.11
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1026, in _send_output
self.send(msg)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 964, in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1400, in connect
server_hostname=server_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 401, in wrap_socket
_context=self, _session=session)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 808, in init
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 1061, in do_handshake
self._sslobj.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 683, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 67, in get
context=context,
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 526, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 544, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1361, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1320, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 154, in load
for item in get_browsers(verify_ssl=verify_ssl):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 97, in get_browsers
html = get(settings.BROWSERS_STATS_PAGE, verify_ssl=verify_ssl)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 84, in get
raise FakeUserAgentError('Maximum amount of retries reached')
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
⣯ Googling and searching WikipediaTraceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1026, in _send_output
self.send(msg)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 964, in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1400, in connect
server_hostname=server_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 401, in wrap_socket
_context=self, _session=session)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 808, in init
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 1061, in do_handshake
self._sslobj.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 683, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 67, in get
context=context,
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 526, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 544, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1361, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1320, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 154, in load
for item in get_browsers(verify_ssl=verify_ssl):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 97, in get_browsers
html = get(settings.BROWSERS_STATS_PAGE, verify_ssl=verify_ssl)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 84, in get
raise FakeUserAgentError('Maximum amount of retries reached')
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1026, in _send_output
self.send(msg)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 964, in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1400, in connect
server_hostname=server_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 401, in wrap_socket
_context=self, _session=session)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 808, in init
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 1061, in do_handshake
self._sslobj.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 683, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 67, in get
context=context,
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 526, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 544, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1361, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 1320, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "answer_bot.py", line 288, in
get_points_live()
File "answer_bot.py", line 274, in get_points_live
points,maxo = google_wiki(simq, options, neg)
File "answer_bot.py", line 221, in google_wiki
search_wiki = google.search(o, num_pages)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/modules/standard_search.py", line 69, in search
html = get_html(url)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/modules/utils.py", line 426, in get_html
ua = UserAgent()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/fake.py", line 69, in init
self.load()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/fake.py", line 78, in load
verify_ssl=self.verify_ssl,
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 250, in load_cached
update(path, use_cache_server=use_cache_server, verify_ssl=verify_ssl)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 245, in update
write(path, load(use_cache_server=use_cache_server, verify_ssl=verify_ssl))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 189, in load
verify_ssl=verify_ssl,
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fake_useragent/utils.py", line 84, in get
raise FakeUserAgentError('Maximum amount of retries reached')
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached

You must double click the Install Certificates.command file located in /Applications/Python/


[Service Bus] Remove cancellation check

Summary
The focus of these changes is to remove a check of the cancellation token during message scheduling, as the impact of doing so for each message is higher than the benefit.
References and Related

Discussion from [Service Bus] Remove post-op cancellation

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


Does it make sense to support WASM?

In the Omnibus, I recommend using libc to provide the basic types when doing FFI. Trying to do so with the newly-landed WASM support yields 70+ errors.
Should libc have the basic types defined for WASM but basically no functions?

I'd personally say "no" in the sense that wasm has no libc, and hence talking about a "c_int" doesn't even really have an answer. The only FFI types in wasm right now are i32/i64/f32/f64/u32/u64 (afaik), so at least for wasm I think those are the types you'd want to use.
When there's perhaps a prevelant C compiler that can intermix with Rust code we could arbitrarily decide "that's the C ABI" and then just match that, but such a C compiler would likely want to be relatively standard...

I understand your reasoning, but I also think this will make it really annoying for widely-applicable crates to be used in e.g. FFI, no-std, embedded, and wasm contexts. Is there a better solution for such types of crates?

I agree yeah that we don't want things to be super painful, but I guess at this point I feel like it's too early to make decisions about wasm and libc. I'd sort of like to gather more data on this topic before adding something to this crate where it's insta-stable and we can basically never change it.

Ok. I'll go ahead and close this; hopefully if anyone can provide that "more data" in whatever form, they can add it here!

There is a C compiler that can intermix with Rust on wasm today. And it seems like for at least int, short, and char, (and their unsigned counterparts) there are obvious sizes which are unlikely to ever differ. Could you clarify what additional data you're looking for here?

@sunfishcode oh sure yeah I think in theory it could work but for now w/ our bundling of the linker it may not work in practice...
Also are we sure to have definitions for types like long and such? It's true though that if there are "obvious and unchanging" definitions for types like you mentioned then it seems fine to me to add those!

For an abundance of caution, long and long long have a slight risk. In Emscripten and plain clang on wasm32 they're 32-bit and 64-bit, respectively, and are unlikely to ever change, but it's conceivable that someone creating a new C compiler could want them to be 64-bit and 128-bit, for example.
char, short, and int on wasm32 are very safe at 8-bit, 16-bit, and 32-bit.

Today I ran into this issue. I tried to compile a program to wasm, but it was impossible because I am using rand, which in turn depends on libc.

Sorry for jumping into this old thread. The wasm32 support in llvm/clang is stable since version 8 (~1 year) - could this maybe help with adopting wasm32-unknown-unknown support in libc? I'd be interested to contribute if it's a possible way forward.

By definition, wasm32-unknown-unknown has no libc. If you want to use emscripten or wasi you can use wasm32-unknown-emscripten or wasm32-wasi, both of which are already supported in the libc crate.

By definition, wasm32-unknown-unknown has no libc. If you want to use emscripten or wasi you can use wasm32-unknown-emscripten or wasm32-wasi, both of which are already supported in the libc crate.

It still has types though, and in many (most?) cases that's all you want - being able to define FFI for C functions to be able to use them from Rust in the same Wasm module.

By definition, wasm32-unknown-unknown has no libc. If you want to use emscripten or wasi you can use wasm32-unknown-emscripten or wasm32-wasi, both of which are already supported in the libc crate.

It still has types though, and in many (most?) cases that's all you want - being able to define FFI for C functions to be able to use them from Rust in the same Wasm module.

Is there any interest in revisiting this for types only for wasm32-unknown-unknown? Having just the libc types would at least permit downstream libraries to not need to polyfill types manually.

I would love if you could revisit this, since for a lot of use cases, this is the final missing link on providing great Rust apps with C dependencies to the web. Most of Rust echosystem for GUIs like egui and graphics libraries like wgpu target only wasm32-unknown-unknown for WebAssembly.
In my use case for example, I am trying to build a FOSS USB peripherals device manager using Rust that can run "everywhere", including Linux on various CPU architectures and the web utilizing WebUSB. libusb supports as WebAssembly + WebUSB backend for some time now. It seems like the only missing blocker is libc, which is used in rusb, a safe Rust wrapper for libusb.


Remove makePayTx and makeFreezeTx

The unittest in test/Quorum.d was using outdated functions makePayTx and makeFreezeTransaction.
These are copies of makeChainedTransactions and have been replaced by TxBuilder.
Improves #1107

Thanks a lot.


Facebook extended access tokens

Currently Facebook supports a function that allows the SDK to extend access tokens ( https://developers.facebook.com/docs/facebook-login/access-tokens#changingtokens ). Currently, this library only uses short term tokens. In the official SDK on line 219 the function starts: https://github.com/facebook/facebook-php-sdk-v4/blob/4.0-dev/src/Facebook/Entities/AccessToken.php

Thanks for the feedback @farmnick! I brought this issue up in the main repo to see if any other providers need the same functionality.

@farmnick The Facebook provider now has support for extending access token lifetimes. Thanks for opening this issue! :)


Reference_blocks for cards

Originally captured in #399
these reference blocks shouldn't be literal items in the HTML, but should be extra metadata on the card:
{
  //...
  reference_blocks: {
    'similar/SELF/limit/10/': 'Similar',
    'children': 'Children',
    'query/foo/': '',
  }
  //...
}

Where the text SELF is matched and replaced with the card's own ID. The values in the dict are the display names for that collection, '' is legal and means 'don't describe what they are'. There are various aliases predefined, e.g. children expands to children/SELF/ and similar expands to similar/SELF/limit/10. If the display name text is empty, and the alias has pre-defined display name, it will use that instead.
And then the card's main content gets flex 1, and the reference blocks get the remaining space, scrolling if necessary to fit.
And then a card like a concept card would be primarily one with empty content and a predefined reference block of parents/SELF.
... We'd also need ways to have filters for specific types of references, as opposed to all of them. Maybe references/CARDID/DIRECTION/TYPE/LIMIT, where direction can be {inbound|outbound|both}, type can be any valid reference-type (or multiple joined with +, and an argument that starts with - means "the inverse of the set that follows", and limit is the number of ply, where 0 is unlimited.
And then conceptually, the things that show up in card-info are like reference-blocks that are defined by the application to show up irrespective of what the card itself says.
Card types can add reference blocks that show up on every card of that type (deduped against whatever the literal card defines).
There should be some way in the configuration of a reference block to define if it hides when the collection is empty or not.
TODO work through whether reference blocks work well for citations use case (#202)

[ ] Create a references/CARDID/DIRECTION/TYPE/LIMIT/ type of filter
[ ] reference (and all of the link filters like descendants) should accept a ply of 0 to mean "unlimited"
[ ] Allow references/ filter to have unions of reference-types
[ ] Allow references/ filter to have inverted list of reference types
[ ] Create a referenceBlocksForCard(card) which returns the collectionDescription --> title for the card. It starts off with just being based on card_type
[ ] SELF is treated specially in collection description in configuration
[ ] Create expansions in reference block definitions e.g. children
[ ] Cards grow a reference_blocks that overrides anything for card type in referenceBlocksForCard

Ideally this whole system is rationalized with card-info-panel, too, where it just renders them differently. But notionally there's the web app's list of referenceBlocksForCard() and the card type's and the card's.
That implies there does need to be a way to handle "Show if empty". For the collection description, it should be a map of description --> [displayName, showOnEmpty]. A string expands to [string, false], a falsey-value expands to ['', false]

Instead of having the direction be a configuration, just have references-inbound, references-outbound, references, and direct-* variations of each.

For replacing the Similar cards in card-info panel, the collection description will be something like everything/similar/self/exclude/direct-references/self/SUBSTANATIVE_REFERENCE_TYPES/limit/10.
The main problem is that the key card should be the editing or active card, not just the literal value of cards.
There are a few bad options:

Make it so that configurableFilters are passed card, cards, editingCard.  That's not the end of the world, but it is weird that it's passed around for just that one use case.
Make it so that the cards collection passed to CollectionDescription.Cards actually munges out the active card and replaces it with the editing card if it's non-null. The downside of this is that cards will change each and every time the editing card changes, requiring recalculating fingerprints, etc.
Add in a special active-card card ID into the cards array, which has behavior similar to the second option. There's still the same downsides of the cards array will keep changing as the editing card is being changed.

Base card rendering primary reference blocks gets a bit weird, because before the only thing necessary to render a card was to pass the card itself, but now to render a card requires not just passing the card itself but also the reference blocks, which implicitly rely on potentially arbitrary queries across the entire database. 😬
That's kind of weird in a tactical way that it breaks card rendering optimizations for the twitter bot, but it's also a larger smell...

All sub issues moved to other issues or done.


Microsoft.import failed error in console log

SQL Operations Studio Version: master

I'm seeing minor errors in the console log -

Amir merged in the flat file import extension code yesterday afternoon. Are you seeing this error after running a full build (yarn and yarn run watch) since pulling from master?

 Though the original one is gone.

Only the first error and the one about dark_icon.svg look relevant to importer there, the rest I think we've seen before. Does the extension work now regardless of the errors?

Closing issue, please reopen if the issue wasn't resolved.


Testcase generation

I think this is missing the simplest test case, if I type cool!, in test case I get:
let mut model = cm("|cool!");
assert_eq!(tx(&model), "cool!|");

The selection indexes don't match.
Also, on webkit based browsers I can't select anything from the test case text block, the selection gets overridden and I never get to either right click and copy or even use a keyboard shortcut on time.
https://user-images.githubusercontent.com/480955/188815471-bc7aad76-f9d4-46db-a624-2799df0fbade.mov

OK, the second part is https://element-io.atlassian.net/browse/PSU-753 .
But darnit, I will try to fix the first one, thanks :-)

OK, my latest commit fixes the problem @jmartinesp - thank you!


getProxy returns emptyProxy after reconstructing Client

I'm using tdlib in my iOS project. After setting proxy server it connects and works fine.
But my UI uses getProxy method, and when app is restarted, getProxy returns emptyProxy, however tdlib works fine.

Sorry, I was calling getProxy only once right after creating Client.


Standardize branching to match OpenSearch

Coming from .github#13, standardize release branching to match what OpenSearch is doing.

Create a 1.0 branch for the OpenSearch 1.0 release, 1.x branch for next 1.1 release, and use main for 2.0 development. Make sure CI is enabled on those.
Update your release/branching documentation. If you don't have one, add a RELEASING.md that links to, or has content from .github/RELEASING.md.
If you are using a develop branch, stop. You should be using the default main brach for furthermost, future development.
Delete any merged/stale/develop/feature branches that are no longer in use.
Communicate any changes in process to your team.

Refer to release branching for more information.

Hi @dblock
Given the current major release of 1.0, projects in this organization maintain the following active branches.

    main: The next major release. This is the branch where all merges take place and code moves fast.
    1.x: The next minor release. Once a change is merged into main, decide whether to backport it to 1.x.
    1.0: The current release. In between minor releases, only hotfixes (e.g. security) are backported to 1.0.

I am a little confused with this ask:

From reading above I get every commit/PR goes to main  is that correct? Someone will need to port these to 1.0 or 1.x if they need to be - who is going to determine that these need to be ported over and do these (the contributor for original commit or a maintainer)? and is there going to be a new PR to backport? (meaning direct push to these branches is blocked)
Are we going to have a new n.0 branch and n.x branch after a new major version n is launched and similarly a new n.y branch for each new y minor release for n major version? or these branches (1.0/1.x) will be reset after each major/minor version launch?

I am a little confused with this ask:

From reading above I get every commit/PR need to go to main first regardless, is that correct? Someone will need to port these to 1.0 or 1.x if they need to be - who is going to determine that these need to be ported over and do these (the contributor for original commit or a maintainer)? and is there going to be a new PR to backport? (meaning direct push to these branches is blocked)

Correct. Maintainers should determine what should be backported in these branches.
I think we should add text about backporting to https://github.com/opensearch-project/.github/blob/main/RELEASING.md -  want to take a stab at it?

Are we going to have a new n.0 branch and n.x branch after a new major version n is launched and similarly a new n.y branch for each new y minor release for n major version? or these branches (1.0/1.x) will be reset after each major/minor version launch?

The former. If someone gets tired of seeing a 1.x branch and we are done making 1.x releases, we can delete the branch (since we tag actual releases, theoretically you can re-create a branch based on the tag).

@dblock Thanks for the clarification.
Can you also shed some light on why this is a requirement for all the plugins? I checked with the team and this doesn't seem very intuitive to do by all plugins as this brings in additional overhead and not immediately seeing value. It will help use if you can shed light on what this will solve and why this is a requirement.

Hi Ravi --
As part of moving to OpenSearch, we're trying to standardize a set of practices across the organization, not just at the individual repo level.  There are several reason for this:
1/ We want to make it easy as possible for new developers to commit to OpenSearch.  If every plugin functions slightly differently, it adds friction to that process.   As an aside, this is the same branching strategy that's used by Lucene, so this brings us into a more standard pattern for Open Source projects :)
2/ We are working on new tooling for our build systems.  We need to get to the point where we have CI/CD running to build the entire artifact (not just an individual repo) so we can run things like performance testing every night, ideally on the main, 1.0 and 1.x branches.  Again, this is much more difficult if we're trying to accommodate different branching patterns.
Thanks,
/C


v2.0.0 breaking change for lualine.nvim - bad argument #1 to 'pairs' (table expected, got function)

As of v2.0.0, if you're using the cyberdream theme for lualine, you might have received the following error:

To fix this, replace:
local cyberdream = require("lualine.themes.cyberdream")

In your lualine.nvim config with:
local cyberdream = require("lualine.themes.cyberdream").get_theme()

@cybergaz appreciate you flagging this. I've just pushed another update that will resolve the problem.
Let's just pretend v2 never happened!


import.meta.glob path is empty after build in lib mode

Describe the bug
I'm building vue icon lib. I use import.meta.glob to scan 'assets/icons' folder. Everything is working as expected during development. But after build I noticed that path in import.meta.glob is empty(it is just an empty obj) so I'm getting errors that "icon doesn't exist in 'assets/icons'"

Reproduction
https://stackblitz.com/edit/vitejs-vite-d3ptth?file=src%2Fcomponents%2FVIcon.vue
Steps to reproduce
DEVELOPMENT

Add icon to 'assets/icons' folder
In App.vue add icon's name to name prop to VIcon component
Check that it is working and icon is showing in a browser

BUILD
Remove icons from 'assets/icons' folder before build!

Check v-icon.js in 'dist' folder
Path to icons in Object.assign({}) is empty

System Info
System:
    OS: macOS 13.6.2
    CPU: (8) arm64 Apple M1 Pro
    Memory: 282.33 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.9.0 - ~/.nvm/versions/node/v20.9.0/bin/node
    Yarn: 3.6.4 - ~/.nvm/versions/node/v20.9.0/bin/yarn
    npm: 10.1.0 - ~/.nvm/versions/node/v20.9.0/bin/npm
    pnpm: 8.11.0 - ~/.nvm/versions/node/v20.9.0/bin/pnpm
  Browsers:
    Chrome: 119.0.6045.159
    Safari: 17.1
  npmPackages:
    @vitejs/plugin-vue: ^4.5.0 => 4.5.0
    vite: ^4.5.0 => 4.5.0

Used Package Manager
pnpm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Remove icons from 'assets/icons' folder before build!

This is working as intended as you are removing the files before build.

Remove icons from 'assets/icons' folder before build!

This is working as intended as you are removing the files before build.

But how can I save path of the folder after build? It's a lib and after build user can add files to 'assets/icons' themself. If you add files to the folder before build it will be hard linked

I can think of 3 ways.

make the library users to pass in the icon paths instead of specifying on the lib side
make a Vite plugin (and plugins for other build tools) and replace it on build time of apps

Even if Vite preserved import.meta.glob after build, that output will only be useable with Vite and also the specified directory won't be configurable.

That nuxt module works like the second one. It copies the vue file into the nuxt project.
https://github.com/gitFoxCode/nuxt-icons/blob/d7e4e5b0f59c923fe97c7b9eebd5b94be0650180/src/module.ts#L16-L21

That nuxt module works like the second one. It copies the vue file into the nuxt project.
https://github.com/gitFoxCode/nuxt-icons/blob/d7e4e5b0f59c923fe97c7b9eebd5b94be0650180/src/module.ts#L16-L21

Okey. Thanks. I will look at this

That nuxt module works like the second one. It copies the vue file into the nuxt project.
https://github.com/gitFoxCode/nuxt-icons/blob/d7e4e5b0f59c923fe97c7b9eebd5b94be0650180/src/module.ts#L16-L21

I will be appreciated if you'll help me a little bit more. Can you give me some hints how to solve my problem with your second solution, like in nuxt modules? I tried to solve it yesterday, but eventually I stucked😕

Maybe reading through the Module Author Guide could give you some information how that works.
https://nuxt.com/docs/guide/going-further/modules