Examples of using TreeNode APIs to walk and manipulate LogicalPlans

Is your feature request related to a problem or challenge?
The usecase of walking LogicalPlan to either analyze the plan or rewrite it has come up multiple times recently
Specifically I think both @goldmedal  and @cisaacson  have asked about this recently and so I think the documentation is not clear enough
Describe the solution you'd like
In order to help people do this, I would like to add some examples of how to walk the tree
I suggest first adding simple doc example in the docs of LogicalPlan itself
The example would do somethig like create a plan using LogicalPlanBuilder
  Project
    Filter
     Scan

And then show how to:

Use TreeNode::apply to recursively find something about the scan (maybe the table name?)
Use the TreeNode::rewrite to recursively rewrite and remove the Filter (or something)

I think those would be relatively short examples to write and would illustrate the key apis
Describe alternatives you've considered
Bonus points for a more full featured example (perhaps linked from the LogicalPlan docs) of how use / walk / manipulate LogicalPlans
Similarly to https://github.com/apache/datafusion/blob/main/datafusion-examples/examples/expr_api.rs, perahaps datafusion-examples/examples/plan_walk.rs or something
Additional context
No response

@alamb This is a great idea. As I learn more perhaps I can help.

Thank you @cisaacson

Moving out of slack into Github so it might be more easily found
If your usecase is to to get the list of filters and tables that appear in a query, one way to do this is:

Get the list of tables by finding all LogicalPlan::TableScan (any Join will have an input from a TableScan)
Get the list of filters/predicates, look in LogicalPlan::Filter and potentially the filters on the LogicalPlan::TableScan

So I think it could look something like (untested)
let mut referenced_tables = HashSet::new();
let mut filters = vec![];

// recursively visit all nodes in the tree (including subqueries)
logical_plan.apply_with_subqueries(|plan| {
  match plan {
   // record table names
    LogicalPlan::TableScan(table_scan) => {
      referenced_tables.insert(table_scan.table_name);
   },
    // record filters
    LogicalPlan::Filter(filter) => {
      filters.push(filter.predicate);
     }
    // ignore other nodes
    _ => {}

      Ok(TreeNodeRecursion::Continue)
  }
 })?;

This looks very good, pretty much what I implemented. The only question I have remaining is:
If TableScan has filters why would that not catch all filters? What does LogicalPlan::Filter catch that the TableScan.filters would not? For my specific use case I only need filters on the tables that are present in the query.

If TableScan has filters why would that not catch all filters?

Depending on the value of https://docs.rs/datafusion/latest/datafusion/logical_expr/enum.TableProviderFilterPushDown.html sometimes filters would not be pushed down into the provider
Also filters can be duplicated in the table scan and filter (again depending on the value of the FilterPushDown

Got it, that makes total sense. I will only care about the accepted pushdown filters, so the TableScan will work for what we need.


bump to to 1.22.3 to address CVE-2024-24788

https://github.com/kubernetes-sigs/descheduler/security/code-scanning/21

/lgtm

/retest

/retest

/retest

/approve


ruff: 0.0.129 -> 0.0.131

Description of changes
https://github.com/charliermarsh/ruff/compare/v0.0.129...v0.0.131

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 202082 run on x86_64-linux 1

1 package built:

ruff


Preview feature?

Is this feature still in preview?
The question is because in Azure Portal there is no "preview" message.

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

ID: e485eb1b-63d7-6fb4-a84a-367be0b7ae09
Version Independent ID: 6b38c7f4-b264-853c-ac69-9a7d9abc557e
Content: Azure Virtual Desktop session host autoscale preview
Content Source: articles/virtual-desktop/autoscale-scaling-plan.md
Service: virtual-desktop
GitHub Login: @Heidilohr
Microsoft Alias: helohr

@jorge-ataide Thank you for bringing this to our attention!  We are reviewing this and will get back to you shortly.

@jorge-ataide It appears that the documentation was created about 2 months ago (September 29th, 2021) and that Azure Virtual Desktop Autoscale is still in preview.  @Heidilohr, are you able to confirm this?

@jorge-ataide Although not labeled as "Preview" in the portal, autoscale for Azure Virtual Desktop is still in preview.

@jorge-ataide Thank you again for reaching out!  We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Regarding Compositional Loss

Did you observe any degradation in performance by just using alpha_loss, not total loss or compositional loss?

Not significant.


Implement request caching

All requests of the GET method should be cached.
Use the npm package memory-cache in a custom middleware function.

I would like to work on this issue.

Fantastic, @onlywicked
I look forward to seeing your solution :)

Sorry for the delay.
I was busy with my internship and college work.


Ci/bump rust version 1 69

Self explanatory

size-limit report 📦

Path
Size

target/wasm32-unknown-unknown/release/okp4_objectarium.wasm
399.85 KB (0%)

target/wasm32-unknown-unknown/release/okp4_law_stone.wasm
634.46 KB (0%)

target/wasm32-unknown-unknown/release/okp4_cognitarium.wasm
757.15 KB (0%)


Setup nginx to work with secure django-send

Is your feature request related to a problem? Please describe.
Setup nginx to work with secure django-send
Member only links should only work if the user is logged in
Additional context
https://django-sendfile2.readthedocs.io/en/latest/backends.html

Might be useful to move the repo to /var/www/Cosmos/ on both staging and production servers so that the media roots are the same for both machines

The nginx config has been modified to add the sendfile config


Jadeite: should check for nil default project before doing operations that use default project

Got the following when I tried adding a package before setting default project:

When I saw that the default project was nil, I realized my mistake, but a notification that no default project has been set would be a bit cleaner

Yes, a friendly dialog would be much nicer than an unfriendly walkback. I'll put that in.

I believe that add package checks for a default project now. Please let me know if there are other project operations that are missing the default check.


Needs a logo

Gotta have a cool logo for powerpoints and such

Actually, we have a nice one for oxbow!


Hostname strategy

Hi
I am struggling to get the hostname strategy working. I'm using the EFCore InMemory store, which I populate with "TenantInfo" items. I've assumed the hostname should be set against the "Identifier" property so my setup looks like the following:
        public void ConfigureServices(IServiceCollection services)
        {
            // Register options
            services.AddOptions();

            services.AddMediatR(typeof(RetrieveTenants.Handler).Assembly);

            #region Tenant Db Configuration

            // Tenant database connection
            services.AddDbContext<ConfiguratorDbContext>(options =>
                options.UseSqlServer(Configuration["TenantDbConnection:ConnectionString"]));

            #endregion

            services.AddLogging();
            services.AddMvc()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
                .AddFluentValidation(cfg =>
                {
                    cfg.RegisterValidatorsFromAssemblyContaining(typeof(AbstractValidator<>));
                });

            #region Multitenancy configuration

            services.AddMultiTenant()
                .WithEFCoreStore<StoreDbContext, AppTenantInfo>()
                .WithHostStrategy();

            #endregion

            #region Application Db Configuration

            // Register the db context, but do not specify a provider/connection string since
            // these vary by tenant.
            services.AddDbContext<WintrixDbContext>();

            #endregion
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseDatabaseErrorPage();
            }
            else
            {
                app.UseHsts();
            }

            app.UseStaticFiles();
            app.UseMultiTenant();
            app.UseMvc();

            SetupStore(app.ApplicationServices);
        }

        private void SetupStore(IServiceProvider sp)
        {
            var scopeServices = sp.CreateScope().ServiceProvider;
            var store = scopeServices.GetRequiredService<IMultiTenantStore>();
            var mediator = scopeServices.GetRequiredService<IMediator>();

            var tenants = mediator
                .Send(new RetrieveTenants.Query
                {
                    Environment = Configuration["TenantDbConnection:Environment"]
                })
                .GetAwaiter()
                .GetResult()
                .Tenants;

            foreach (var tenant in tenants)
            {
                store.TryAddAsync(new TenantInfo(tenant.Id, tenant.Hostname, tenant.Name, tenant.ConnectionString, null)).Wait();
            }
        }

Currently I seem to get no tenantInfo when I call:
HttpContext.GetMultiTenantContext()?.TenantInfo;
My setup is meant to use our tenant database to get the tenant configuration data including connection string and hostnames.
That part seems to work ok becuase I see all the tenants if I query the StoreDbContext directly.
I've added bindings in IIS for each host name and added entries to my host file.
Each tenant has a separate database which should then be resolved by the tenant connection string in the EFCoreStore, but as I said above, in my controller the tenantInfo is currently null?
Any help would be much appreciated
I guess one thing I thought about, was in your hostname sample you only replaced the subdomain, in my case the whole host name is different.
i.e.
www.something.com
another.domain.net
Andy

Hi Andy, thanks for the detailed write-up. By default the host strategy looks at the left-most subdomain in the host. I think in your case you want to look at the entire host right? Try this variation in your ConfigureServices:
...WithHostStrategy("__tenant__"); (note there are 2 underscores before and after 'tenant')
Fyi this is from a previous blog post about this:

WithHostStrategy now accepts a template string which defines how the strategy will find the tenant identifier. The pattern specifies the location for the tenant identifier using __tenant__ and can contain other valid domain characters. It can also use '?' and '*' characters to represent one or "zero or more" segments. For example:

__tenant__.* is the default if no pattern is provided and selects the first domain segment for the tenant identifier.
*.__tenant__.? selects the main domain as the tenant identifier and ignores any subdomains and the top level domain.
__tenant__.example.com will always use the subdomain for the tenant identifier, but only if there are no prior subdomains and the overall host ends with "example.com".
*.__tenant.__.?.? is similar to the above example except it will select the first subdomain even if others exist and doesn't require ".com".

Also you stated that you were using the InMemory but it looks like you are using the EFCoreStore which is different. I noticed you are using ConfiguratorDbContext in AddDbContext and StoreDbContext in WithEFCoreStore. I'm not sure what you are trying to do, but if the tenants are stored in the mediator and you only need them in memory when running the app you might be better off with using WithInMemoryStore for Finbuckle.Multitenant to avoid the added complication of Entity Framework Core. Let me know if you have any questions.

Hi
Thanks for the quick reply, I did a little debugging and got it working with a custom strategy as I was struggling getting around the regex manipulation in the HostStrategy but I'll try out your examples and see if I can avoid that.
    public class DomainStrategy : IMultiTenantStrategy
    {
        private const string regex = @"^(?<identifier>(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9]))$";
        private readonly ILogger<DomainStrategy> logger;

        public DomainStrategy(ILogger<DomainStrategy> logger)
        {
            this.logger = logger;
        }

        public async Task<string> GetIdentifierAsync(object context)
        {
            if (!(context is HttpContext))
                throw new MultiTenantException(null,
                    new ArgumentException("\"context\" type must be of type HttpContext", nameof(context)));

            var host = (context as HttpContext).Request.Host;

            Utilities.TryLogInfo(logger, $"Host:  \"{host.Host ?? "<null>"}\"");

            if (host.HasValue == false)
                return null;

            string identifier = null;

            var match = Regex.Match(host.Host, regex,
                RegexOptions.ExplicitCapture | RegexOptions.IgnoreCase,
                TimeSpan.FromMilliseconds(100));

            if (match.Success)
            {
                identifier = match.Groups["identifier"].Value;
            }

            Utilities.TryLogInfo(logger, $"Found identifier:  \"{identifier ?? "<null>"}\"");

            return await Task.FromResult(identifier); // Prevent the compliler warning that no await exists.
        }
    }

Perhaps I didn't explain very well regarding the store....
So basically we have a database that has all the tenants configuration data in, however this isn't in the nicest format, so I've created a ConfiguratorDbContext and use the mediator to retrieve the tenants with an object derived from IEFCoreStoreTenantInfo.
I guess in an ideal world this database would be the EFCoreStore, but I couldn't get an EFCoreStore working with a Sql Database, so here's where my explanation went awry... I meant to say I used an "UseInMemoryDatabase" opposed to a "UseSqlServer" database, but just said in memory store.
What I've ended up doing is storing the IEFCoreStoreTenantInfo in this EFCore InMemoryDatabase store.
I've now got it working in terms of resolving the tenants dbcontexts or as per my code "WintrixDbContext".
Sadly this is a rebuild against an existing monster of a database, so the first connection is offensively slow per tenant as it builds the dbcontext.
I've been playing with using a DbContextFactory, firstly because it means I can separate my domain objects in to slices, removing any coupling against a huge DbContext and secondly because performance wise it only builds what I need. Here is the example I've been looking at: https://github.com/bytefish/ModularEfCore
I'm just playing to see if I can extend your MultiTenantDbContext to take in a customer DbContextOptions implementation, in order to provide the IEntityMap implementation in order to build up the dbcontext on the fly.
Something along the lines of:
    public class ModularDbContext : MultiTenantDbContext
    {
        private readonly ModularDbContextOptions options;

        public ModularDbContext(TenantInfo tenantInfo, ModularDbContextOptions options)
            : base(tenantInfo, options.Options)
        {
            this.options = options;
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(ConnectionString);
            base.OnConfiguring(optionsBuilder);
        }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);

            foreach (var mapping in options.Mappings)
            {
                mapping.Map(builder);
            }

            options.DbContextSeed?.Seed(builder);
        }
    }

I'll continue playing and let you know how I get along.
Many thanks
Andy

Andy, very interesting stuff you are working on. I took a closer look at my code and unfortunately it has an implicit assumption that the identifier in the host will be a single segment, i.e. it will not contain any . characters. This obviously doesn't work in your situation. I think your custom strategy is a better idea for your needs.

Great thanks, I got it all working, I've managed to integrate finbuckle with the modular ef context approach.
    public class ModularDbContext : MultiTenantDbContext
    {
        private readonly ModularDbContextOptions options;

        public ModularDbContext(TenantInfo tenantInfo, ModularDbContextOptions options)
            : base(tenantInfo, options.Options)
        {
            this.options = options;
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(ConnectionString);
            base.OnConfiguring(optionsBuilder);
        }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);

            foreach (var mapping in options.Mappings)
            {
                mapping.Map(builder);
            }

            options.DbContextSeed?.Seed(builder);
        }
    }

And my options:
    public class ModularDbContextOptions
    {
        public readonly DbContextOptions<ModularDbContext> Options;
        public readonly IDbContextSeed DbContextSeed;
        public readonly IEnumerable<IEntityTypeMap> Mappings;

        public ModularDbContextOptions(DbContextOptions<ModularDbContext> options, IDbContextSeed dbContextSeed, IEnumerable<IEntityTypeMap> mappings)
        {
            DbContextSeed = dbContextSeed;
            Options = options;
            Mappings = mappings;
        }
    }

And the startup:
            // Register Database Entity Maps:
            services.AddSingleton<IEntityTypeMap, CarMap>();
            services.AddSingleton<IEntityTypeMap, DvlaLookupMap>();

            // Register the Seed:
            services.AddSingleton<IDbContextSeed, DefaultSeed>();

            // Finally register the DbContextOptions:
            services.AddTransient<ModularDbContextOptions>();

            // This Factory is used to create the DbContext from the custom DbContextOptions:
            services.AddTransient<IModularDbContextFactory, ModularDbContextFactory>();

            // Register the db context, but do not specify a provider/connection string since
            // these vary by tenant.
            services.AddDbContext<ModularDbContext.ModularDbContext>();


Add OfflinePayment as possible payment outcome

When offline payment should be applied, the user should be redirected to a offline payment success url, secured by a return token.

Fixed by https://github.com/app-zap/payment/commit/4519077a3536e6576dd46aa595e0342c505b3f80#diff-cf6991dc6f5dfcab19357aade11bea0f


Add support for using PropertiesFileCredentialsProvider in vault IAM authentication

I have aws credentials stored in a property file which has to be used for vault IAM authentication. I have planned to use com.amazonaws.auth.PropertiesFileCredentialsProvider to read from the properties file and use them for aws authentications. I was able to use this for S3 connectivity. For vault IAM authentication using spring-cloud-vault, I couldn't succeed.
Upon the code reading, I see that only DefaultAWSCredentialsProviderChain is being used for aws credentials lookup (https://github.com/spring-cloud/spring-cloud-vault/blob/v2.0.1.RELEASE/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/ClientAuthenticationFactory.java#L291). Due to the usage of DefaultAWSCredentialsProviderChain, the credentials providers are restricted to only these four: EnvironmentVariableCredentialsProvider, SystemPropertiesCredentialsProvider, ProfileCredentialsProvider, EC2ContainerCredentialsProvider.
Can you please make AwsCredentialProvider configurable for spring-cloud vault authentication so that vault authentication can use the credentials from else where?
If there is already any way to achieve this, can you please provide me the details?

Spring Cloud Vault configures authentication as Spring bean. You can configure and provide your own ClientAuthentication bean so Spring Cloud Vault backs off from configuring authentication.
Providing an own authentication requires you to follow these two steps:

Create a bootstrap configuration

@Configuration
public class MyVaultBootstrapConfiguration {
	@Bean
	public ClientAuthentication clientAuthentication(ClientFactoryWrapper clientFactoryWrapper) {

		AwsIamAuthenticationOptions options = AwsIamAuthenticationOptions.builder()
				.credentialsProvider(new PropertiesFileCredentialsProvider(…))
				.build();

		RestTemplate restTemplate = new RestTemplate(clientFactoryWrapper.getClientHttpRequestFactory());
		return new AwsIamAuthentication(options, restTemplate);
	}
}

Registering your bootstrap configuration in META-INF/spring.factories

org.springframework.cloud.bootstrap.BootstrapConfiguration=com.acme.MyVaultBootstrapConfiguration

PropertiesFileCredentialsProvider requires additional configuration options and that would require us to introduce additional configuration properties which increase complexity and introduce ambiguity. Therefore, we'd keep things as is.

Everything fine in your code.

expected IAM user "some user-name" to resolve to unique AWS ID "xxxxx" but got "yyyyy" instead

looks like https://github.com/hashicorp/vault/issues/2979 and not a Spring Vault/Spring Cloud Vault.
Make sure to use a recent Vault version as the mentioned issue was fixed with 0.8.0.

Thank you for the quick reply. We use Vault version 0.9.5.

In that case, it might be good to file an issue in Vault and report your scenario there. There's nothing we can do from our side.


Error connecting to hypercore: The "size" argument must be of type number

After installing a call to "portal new" produces next error:
Error connecting to hypercore: The "size" argument must be of type number. Received undefined
portal v1.5.1
npm v10.2.1

There were some breaking changes in Node 18 so you need to use a Node version between Node 12 and Node 16 for portal to work right now


fix: deckgl dimension select missing options

SUMMARY
Fix Bug #10246 introduced by #9455 and #9628 .
Also moved color picker to its own row so to give more space for dimension select.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Before:

After:

TEST PLAN

Manual testing
Go create a Deck.gl Arc or Deck.gl Scatter chart

ADDITIONAL INFORMATION

[x] Has associated issue:
[x] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

cc @eugeniamz

Still seeing the same issue . Can you let me know if we need to change anything ?


Use QA DCS by default and bundle size reduction

This issue covers two things:
First, if server parameter is specified, use it. Otherwise, if URL contains localhost, develop, or deploy-preview, then use QA DCS by default.
Second, changed all mui imports so that they import just the item needed. This should reduce bundle size and help memory and performance.

gatewayEdit is already doing this.

@mandolyte are you saying this is done? It seems like it's written in the past tense.

The PR still needs to be reviewed: https://github.com/unfoldingWord/gateway-translate/pull/180
However, the code in develop branch has most of the changes for the QA default cases (local and when server parameter points to QA). Only some console logging is missing.
The code in the PR also has the other set of MUI changes. They still need to be merged.
The PR indicates there are some conflicts. I suppose others have made changes since I did this.


WSL2 - Upgrade/Install returns error 0x80070032 or request is not supported

Version
Microsoft Windows [Version 10.0.19044.1526]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
ubuntu 20.04
Other Software
No response
Repro Steps
wsl --set-default-version 2
wsl --install -d ubuntu-20.04
produces this :
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80070032
Error: 0x80070032 The request is not supported.
Press any key to continue...
wsl --set-default-version 1
wsl --install -d ubuntu-20.04
Works fine but then:
wsl --set-version ubuntu-20.04 2
returns this:
Conversion in progress, this may take a few minutes...
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
The request is not supported.
Expected Behavior
I would like the upgrade/installation to work
Actual Behavior
wsl 2 upgrade/installation returns a error
Diagnostic Logs
Hyper-V / VM Platform / WSL - all enabled on windows features
Virtualization is enabled on bios
tried this fix : https://askubuntu.com/questions/1401830/wsl-not-working-after-update-from-microsoft-store
my distribution name was ubuntu-20.04, so it didnt help.
Edit: Added logs: https://aka.ms/AAgn5dh

/logs

https://aka.ms/AAgn5dh

Reinstalled windows and it works now, sorry we couldn't find the problem, hope it won't happen to anyone else

I had this today after a Windows updates. I was able to save ext4.vhdx's, but I simply cannot get WSL2 working again.
So for 6 months that setup, Windows 10 Enterprise, worked without any issues.
Something needs to be reset, but what?

I have the same issue now, yesterday it worked perfectly. Windows 11 Pro 21H2.


Add Linear regeression

Add code for linear regression and comment on it properly.

I will work on it

I would like to contribute


Fixing 500 error on search endpoint. Added using the actual shelf err…

…or object in search_test. And fixed a misspelling in search-request-criteria.json.

Current coverage is 99.56% (diff: 100%)

Merging #92 into release-version-9.2 will decrease coverage by 0.43%

@@           release-version-9.2        #92   diff @@
=====================================================
  Files                       63         63
  Lines                     1844       1849     +5
  Methods                      0          0
  Messages                     0          0
  Branches                     0          0
=====================================================
- Hits                      1844       1841     -3
- Misses                       0          8     +8
  Partials                     0          0

Powered by Codecov. Last update a3ab94e...762edd6

@GoogilyBoogily the code coverage is still not at 100%. You can get a coverage report from Pyproctor using:
pyproctor --coverage --source shelf/

Drops HTML report in covhtml/


Getting error The target "PreComputeCompileTypeScript" does not exist in the project.

The target "PreComputeCompileTypeScript" does not exist in the project.

Complete error :
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\TypeScript\Microsoft.TypeScript.targets(121,34): error MSB4057: The target "PreComputeCompileTypeScript" does not exist in the project. [C:\dev\Web.csproj]

Change MSBuild path from one that in Microsoft.NET folder to one that in Program File, in my case its c:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe.


Horizontal scroll / Panning doesn't work on mobile

Codepen
http://k.arflax.com/samples/react/line/chart.php?strkey=svFh2qsUc5ckz4MJjaNfS/BRK8cx6/gH&strdeviceid=654
Explanation
hand icon on Iphone chrome doesn't appear.

Yes, zooming/panning is currently disabled on touch devices.
As we also need to show tooltips on single touch scroll, panning is disabled. Will find some workaround soon.

Closing as duplicate of #86

+1 to this, the panning/zoom buttons were a particular draw with this library as most charting libraries struggle with touch and the idea of using buttons seemed the logical conclusion. What about having left/right arrows on mobile rather than a pan button, with each click being a shift of 50% of the viewable area?

Likewise, I'd like to see this implemented too

@junedchhipa Any update for this feature???

Yes, zooming/panning is currently disabled on touch devices.
As we also need to show tooltips on single touch scroll, panning is disabled. Will find some workaround soon.

Some of us may want to have tooltips disabled and have panning and zooming being the default behavior. Having the option to choose would be helpful!

+1

+1

Any update on this?


Add config for Staging environment

Describe the aim of this enhancement
Set up Staging (test) environment (heroku app 1):

CORS allowed all (*) to enable quick frontend testing (no need to pull from repo and regenerate db)
This is separate from Production environment (heroku app 2) which will only be used data collection & actual scenarios

Describe the solution you'd like

[ ] Refactor config classes and attributes, there might be 4 environments in total:

development, staging, production, and (optional) data collection environment which has some tweaks in functionalities

@ralf-t meron na tayong 2 API environments: (1) staging and (2) production
balak ko iset yung allowed origin to * for the staging environment para madaling itest sa dev frontend (di na kelangan mag maintain ng updated api repository sa local) g ba

Pag nag * ng origin, hindi gagana yung credentials
https://fastapi.tiangolo.com/tutorial/cors/#:~:text=Also%2C,must be specified.


Update Oracle Docs to account for deployment time hide/show of admin and managed server ports

Places in the Oracle docs that need updates for this feature.

https://docs.oracle.com/en/middleware/standalone/weblogic-server/wlazu/deploy-oracle-weblogic-server-administration-server-single-node1.html
https://docs.oracle.com/en/middleware/standalone/weblogic-server/wlazu/deploy-oracle-weblogic-server-n-node-configured-cluster.html
https://docs.oracle.com/en/middleware/standalone/weblogic-server/wlazu/deploy-oracle-weblogic-server-n-node-dynamic-cluster.html

@zhengchang907  will provide exact proposed text along the lines of "after the bullet point 'Ports and port ranges to expose (N or N-N, comma separated): Specify the ports that you want to allow in the Azure network group pr..." add this text <Zheng's text here>".

AB#1267991

AB#1267991

For single node/configured cluster/dynamic cluster offers, in the Basic blade section, after bullet point 'Ports and port ranges to expose (N or N-N, comma separated)...', please add another bullet point as follows:
--------------- text start ---------------
Deny public traffic for admin server?: Choose the option of how you'd like to manage the public traffic of the admin server. When you select 'yes', additional Inbound Security Rules will be added to the Azure Network Security Group during deployment. The appended rules will deny public traffic for port 7001 and 7002. Please note that this configuration has a higher priority than configuration at 'Ports and port ranges to expose'.
-------------- text end ---------------
For configured cluster/dynamic cluster offers, in the Application Gateway blade section, before the field 'Resource group name in current subscription containing the KeyVault', please add another field as follows:
-------------- text start ---------------

field
description

Deny public traffic for managed server?
Choose the option of how you'd like to manage the public traffic of the managed server. When you select 'yes', additional Inbound Security Rules will be added to the Azure Network Security Group during deployment. The appended rules will deny public traffic for port 8001. Please note that this configuration has a higher priority than the configuration at 'Ports and port ranges to expose' in Basic blade.

-------------- text end ---------------

PS: For the dynamic cluster offer, currently we don't have the Appcliation Gateway blade section yet.

For single node/configured cluster/dynamic cluster offers, in the Basic blade section, after bullet point 'Ports and port ranges to expose (N or N-N, comma separated)...', please add another bullet point as follows:
--------------- text start ---------------
Deny public traffic for admin server?: Choose the option of how you'd like to manage the public traffic of the admin server. When you select 'yes', additional Inbound Security Rules will be added to the Azure Network Security Group during deployment. The appended rules will deny public traffic for port 7001 and 7002. Please note that this configuration has a higher priority than configuration at 'Ports and port ranges to expose'.
-------------- text end ---------------
For configured cluster/dynamic cluster offers, in the Application Gateway blade section, before the field 'Resource group name in current subscription containing the KeyVault', please add another field as follows:
-------------- text start ---------------

field
description

Deny public traffic for managed server?
Choose the option of how you'd like to manage the public traffic of the managed server. When you select 'yes', additional Inbound Security Rules will be added to the Azure Network Security Group during deployment. The appended rules will deny public traffic for port 8001. Please note that this configuration has a higher priority than the configuration at 'Ports and port ranges to expose' in Basic blade.

-------------- text end ---------------

PS: For the dynamic cluster offer, currently we don't have the Appcliation Gateway blade section yet.


dmg GUI looks weird

My dmg-UI has some pictures with labels ".background" and ".VolumeIcon.icns" projected below the other ones. I just ran 'create-dmg "fixture.app"' to create fixture-0.0.1.dmg in the project itself. This also happens to my own app. Any idea why?

Thanks,
Hans

You have "Show hidden files" turned on in Finder. Try pressing Cmd+Shift+.
There's a hack to hide them, but that introduces a scrollbar, so not sure which path to take: https://github.com/LinusU/node-appdmg#hidden-files Right now I'm optimizing for end-users that doesn't show hidden files.

Ah thanks! Well I guess you're right that it's only a small part of the population that has hidden files on. And the thing still works in that case anyway. Good work for the dmg-creator! I strongly agree that no one needs a lot of options for something that has only has one linear purpose.

Closing as I prefer the current solution. It's more user-friendly.


Arduino: Support of NeoPixel Sticks/Strips/Rings

NeoPixel provides a collection of various RGB LEDs, that can be controlled by a single pin.
See e.g. https://funduino.de/nr-17-ws2812-neopixel
With the configuration block one can determine the number of pixels and the connected pin on the arduino board. Maybe one also have to determine the shape (Ring or not?).
The programming block should allow at least to access each LED (Pixel) individually, e.g.
pixels.setPixelColor(2, pixels.Color(0,150,0));
Sensebox also needs the NeoPixel library, see #todo,
maybe Calliope/Microbit also can support it

At our school we would like to work with the new Funduino Cube (https://funduino-aio.de/) and Open Roberta. However, there is still no way to control the NeoPixels in Open Roberta. Will this feature be integrated soon?


fix(module:carousel): not adapting to new size when resizing

PR Checklist
Please check if your PR fulfills the following requirements:

[✔] The commit message follows our guidelines: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md#commit
[] Tests for the changes have been added (for bug fixes / features)
[] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[✔] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?
Carousel component currently does not adapt to the new size when it is resized.
Issue Number: #8359
What is the new behavior?
Does this PR introduce a breaking change?
[ ] Yes
[✔] No

Other information
I have set a 100ms delay for the the debounceTime, so the this.layout() method does not fire so often; but I am not sure as to what is the best value for dueTime of debounceTime.

Please could you provide test for the code you added ?

Sure, I will get back to you with that as soon as I can.

Please could you provide test for the code you added ?

Sorry for the delay; tests for the changes have been added.
Thank you for reviewing my PRs @Nicoss54


Use pkg/errors for error stack traces

Fixes #2.

Wow, thank you for the elbow grease! I've been getting increasingly aggravated with cockroachdb/errors as I've been working on vkng's VMA port and I'd been meaning to go back and take care of this. I really appreciate it!

happy to help : )


Is is worked for b1 model?

Is is worked for b1 model?

The model tested is the one from the pictures. I don’t even know if that’s a b1 or not.
BR,
HacK


Wrap errors from computestorage package

Change from stringifying errors with fmt.Errorf to errors.Wrap everywhere

Fixes: https://github.com/microsoft/hcsshim/issues/924
Signed-off-by: Daniel Canter<EMAIL_ADDRESS>

@anmaxvl Very much agreed

@anmaxvl Very much agreed


Batch size less than 12 gives an error

Hi @Gofinge ,
sorry for bothering you with this stupid question. If I use S3DIS data and batch_size = 12 in config file (the default value), it works perfectly. But if I reduce the size, it gives me an error.
I also have to set the batch size = 1 when I use another data (Vaihingen 3D) which has 1 point cloud for the train split. Otherwise I had similar error with this https://github.com/Pointcept/Pointcept/issues/163#issuecomment-1995353062 because the batch size is larger than the train samples.
I've tried looking for the same error but it seems no one has experienced this error.
This is the error
 =========> RUN TASK <=========
/opt/conda/lib/python3.8/site-packages/MinkowskiEngine-0.5.4-py3.8-linux-x86_64.egg/MinkowskiEngine/__init__.py:36: UserWarning: The environment variable `OMP_NUM_THREADS` not set. MinkowskiEngine will automatically set `OMP_NUM_THREADS=16`. If you want to set `OMP_NUM_THREADS` manually, please export it on the command line before running a python script. e.g. `export OMP_NUM_THREADS=12; python your_program.py`. It is recommended to set it below 24.
  warnings.warn(
Traceback (most recent call last):
  File "exp/vaihingen3d/v3d_semseg-spunet-v1m1-0-base/code/tools/train.py", line 38, in <module>
    main()
  File "exp/vaihingen3d/v3d_semseg-spunet-v1m1-0-base/code/tools/train.py", line 27, in main
    launch(
  File "/home/rizald42/containers/Pointcept/exp/vaihingen3d/v3d_semseg-spunet-v1m1-0-base/code/pointcept/engines/launch.py", line 74, in launch
    mp.spawn(
  File "/opt/conda/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 240, in spawn
    return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
  File "/opt/conda/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 198, in start_processes
    while not context.join():
  File "/opt/conda/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 160, in join
    raise ProcessRaisedException(msg, error_index, failed_process.pid)
torch.multiprocessing.spawn.ProcessRaisedException:

-- Process 2 terminated with the following error:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 69, in _wrap
    fn(i, *args)
  File "/home/rizald42/containers/Pointcept/exp/vaihingen3d/v3d_semseg-spunet-v1m1-0-base/code/pointcept/engines/launch.py", line 137, in _distributed_worker
    main_func(*cfg)
  File "/home/rizald42/containers/Pointcept/exp/vaihingen3d/v3d_semseg-spunet-v1m1-0-base/code/tools/train.py", line 18, in main_worker
    cfg = default_setup(cfg)
  File "/home/rizald42/containers/Pointcept/exp/vaihingen3d/v3d_semseg-spunet-v1m1-0-base/code/pointcept/engines/defaults.py", line 136, in default_setup
    assert cfg.batch_size % world_size == 0
AssertionError

Thanks!!

As the AssertionError said, batch_size % world_size should be 0 (e.g. 12 % 4 == 0).


Swift 4 & RxSwift 4 Support

This PR continues and merges the work of @diogot and @AYastrebov on PRs #25 and #26.
It aims to merge in Swift 4 support, clean up the project, and make CI pass (since it was broken up until now)

Whoops :)


TFKUBE-466: Update helm charts from 1.2.0 to 1.3.0

Pull request description
Update default helm chart versions from 1.2.0 to 1.3.0.
This PR can serve as a reference for what will need to be changed when we release a new version of helm charts.
Checklist

[x] I have successful end to end tests run (with & without domain)
[x] I have added unit tests (if applicable)
[x] I have user documentation (if applicable)

https://github.com/atlassian-labs/data-center-terraform/actions/runs/2305171728
https://github.com/atlassian-labs/data-center-terraform/actions/runs/2305171390


Standardize formatting of manifests/q/Qv2ray/Qv2ray/2.7.0

Microsoft Reviewers: Open in CodeFlow

Close with reason: Duplicate of #201698;


⚠ Spryr has degraded performance

In 84e9c77, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 3065 ms

Resolved: Spryr performance has improved in 06ec5ae after 14 minutes.


feature request: log file clear command

Did you check existing requests?

[X] I have searched the existing issues

Describe the feature
A command to clear the log file.
Provide background
I want a command to clear the log file so that I can easily read the formatter's information.
Sorry, I'm a beginner, so I don't know if you have implemented an auto-clean log feature based on some timing function because I can't understand your source code.
If you don't plan to implement the clean command, please tell me the reason. Thank you.
What is the significance of this feature?
nice to have
Additional details
Currently, I manually clear the log file, and I find this slightly inconvenient.

Log files are not meant to be cleaned, they are meant to stick around for as long as (reasonably) possible to preserve history in case you need it later. The logfile is rotated once it hits 10MB
https://github.com/stevearc/conform.nvim/blob/8a4df1f6682d1f38cb73884200025dec97e6a531/lua/conform/log.lua#L66-L71
If you want a command to clear the log file, it would be very easy to create that yourself. Just write a function that calls uv.fs_unlink or uv.fs_ftruncate on the log file. You can find the path of the log file with require("conform.log").get_logfile()


Fully implement Render Targets

Turns out renderpasses/framebuffers cannot share images for whatever reason, which means it would be necessary now to implement the custom targets and to move the images themselves to the render target too.

Done


NeuroM fails to load h5 file

Hi, I tried to load a file from the latest release (unraveled) and it fails to load. I checked a few others files and I get the same error. Could someone fix this? See attachment for file example that fails.
vd110315_idE.h5.zip

From the file you posted, it seems that the hdf5 you have is organized into 'structure/unraveled' and 'unraveled', but there is a special case here:
https://github.com/BlueBrain/NeuroM/blob/master/neurom/io/hdf5.py#L142
That claims that if the type is unraveled, the name should be 'structure/unraveled'.  So that is weird.
For a quick fix, just changing that line to:
groups_stage = stage

should allow you to continue.  I'll submit a patch when I get a chance.

Great! Thanks a lot for looking into this so quickly!
Yes, that will do for the moment; I will fix this locally.

@mgeplf Do we consider this file to be bugged or should we fix the code ?

This is an internal format (that is slowly going away), so it's not the most important thing.  On the other hand it's probably only a 2 line fix.  I say we leave it open for now, and find some time for it later.


Not getting accuracy for custom dataset in testing.

@dscripka

positive feature dataset ~1 hour -> generated from custom dataset
negative feature dataset -> validation_set_features.py
used tra to get data features for the positive dataset
used

openwakeword/openwakeword/train.py --training_config my_model.yaml --generate_clips
openwakeword/openwakeword/train.py --training_config my_model.yaml --augment_clips
openwakeword/openwakeword/train.py --training_config my_model.yaml --train_model

I am getting >300 False-accept rate per hour.
Please help.

It looks like there is a discussion topic (#121)  very similar to issue; we can continue our discussion there.
In general, the automatic model training process works well most of the time, but not always. Determining the cause of low performance can take some effort.


mysql_client wrong version (hardcoded ?)

Cookbook version
wordpress (3.0.0)
xml (2.0.0)
build-essential (>= 0.0.0)
chef-sugar (>= 0.0.0)
Chef-client version
[Version of chef-client in your environment]
Platform Details
Windows -> Test Kitchen -> Ubuntu 14.04
Scenario:
Execute wordpress cookbook.
Steps to Reproduce:
Try to execute WordPress cookbook on Ubuntu 14via TestKitchen
Expected Result:
Live TestKitchen
Actual Result:
...
...
Recipe: wordpress::database

mysql_client_installation_package[default] action create

apt_package[mysql-client-5.5] action install (up to date)
(up to date)

mysql2_chef_gem[default] action install
Recipe: build-essential::_debian

apt_package[autoconf] action install (up to date)
apt_package[binutils-doc] action install (up to date)
apt_package[bison] action install (up to date)
apt_package[build-essential] action install (up to date)
apt_package[flex] action install (up to date)
apt_package[gettext] action install (up to date)
apt_package[ncurses-dev] action install (up to date)
mysql_client_installation_package[default] action create

apt_package[mysql-client-5.5] action install

================================================================================
Error executing action install on resource 'apt_package[mysql-client-5.5]'
Mixlib::ShellOut::ShellCommandFailed
Expected process to exit with [0], but received '100'
---- Begin output of apt-get -q -y install mysql-client-5.5=5.5.49-0ubuntu<IP_ADDRESS> ----
STDOUT: Reading package lists...
Building dependency tree...
Reading state information...
STDERR: E: Version '5.5.49-0ubuntu<IP_ADDRESS>' for 'mysql-client-5.5' was not found
---- End output of apt-get -q -y install mysql-client-5.5=5.5.49-0ubuntu<IP_ADDRESS> ----
Ran apt-get -q -y install mysql-client-5.5=5.5.49-0ubuntu<IP_ADDRESS> returned 100

This is actually a bug in mysql not the build-essential cookbook. You'll want to file it there


added test: changed? should be false if the same ObjectId was assigned in String format

Hello guys,
What do you think about this test?
Looks like typecasting of keys should be done before marking key as changed...
Please help

Thanks for the pull request. I pulled it in and committed a fix here 320f27a19e7524ad6362a0a650e47daf9cf21060

Thank you, Brandon!


Complete translations in contact form

With this change, the shop owner will receive a fully translated contact-form notification email.

contact[email] and contact[body] aren't references to the customer name or their message, but rather what the fields are named when the form is submitted. If you change these, the form won't submit properly.

Ok, thanks for the info.
Works for me nevertheless. :smile:


Add webhook for Stripe 'issuing_transaction.created' event

Part of opencollective/opencollective#4807

Let's try this.


How to craft herokuish?

What should I put in crafting table to craft herokuish conainer?

see example

@alibonbon your comment has been removed as it's off-topic and quite frankly inappropriate.
Please see the community guidelines


for u it's a simple fix kex works like magic Just right-click on the big empty space and select "panel Preference"

for u it's a simple fix kex works like magic Just right-click on the big empty space and select "panel Preference"

DOnno why that fixes it but it works.
Pro tip download a taskbar application like linkbar linux taskbar does not get in your way eveytime
Originally posted by @EaZyStudiio in https://github.com/microsoft/WSL/discussions/6108#discussioncomment-3695400

Closing this issue since it doesn't have repro instructions


Updating Release Notes

Description:  Updated Release Notes for 2.8.1
Changes Proposed in PR:  Updated Release Notes for 2.8.1
General Checklist

[x] Updated the troubleshooting guide or documentation

/azp run

/azp run


Sticky headers

When I wanted to implement a sticky header on a HTML table, I was a bit surprised that this seems quite hard to implement. Most solutions I could find use JavaScript and modify the DOM. I couldn't find anything ready to integrate with React.
I couldn't think of a generic way to implement this properly in React outside of the component actually rendering the table. The next best thing would be implementing this in Reactabular, since that's what I use for my table.
Here's a small proof of concept, based on the StickyTableHeaders jQuery plugin. It's really simplified for now, I removed support for fixed offsets, horizontal scrolling, and probably many browsers other than Chrome.
https://github.com/martijnvermaat/reactabular/tree/wip/sticky-header
Would you ever consider something like this for Reactabular?
If you see any way of doing the same thing without having to modify Reactabular, that would be even better of course :)

I gave it a quick go through CSS. This is what I ended up with:
tbody, theader, tfoot {
  display: block;
}

tbody {
  max-height: 200px; /* can be just height, set value as you want */
  overflow: auto; /* activating the magic */
}

This gets you 90% there. The widths won't add up (takes content width). There are likely ways around this (ie. set relative widths and so on). Here's more info about the topic: https://stackoverflow.com/questions/17067294/html-table-with-100-width-with-vertical-scroll-inside-tbody .
I have a strong feeling it's possible to implement fixed headers without having to modify Reactabular itself. I truly hope a jQuery plugin wouldn't be needed for something simple like this.

Thanks, that's a very nice SO answer. Unfortunately all of these approaches have some other downsides.
You suggestion is actually not really a sticky header (by sticky I mean that scrolling is on the window, and the header gets fixed only when it reaches the window top), but I would be happy with something like that. The main problem is indeed with the column widths (the 10% ;)). You could set the header cell widths by copying them from the data cells, but that's suboptimal when the header label is longer than the data.
Maintaining cell widths is the main reason my code (well, the jQuery plugin) makes a complete copy of the header. Unfortunately, this is also the only reason it doesn't play nice with React, since this modifies the DOM. Hence I have to copy this header in Reactabular itself. I think all the other code in my proof of concept could be taken outside of Reactabular.
I actually just had another idea. Instead of having a copy of the header in
, we could also have it as the first row in
. That would actually give us a way to implement it outside of Reactabular by passing it as a 'fake' data row. I see some complications with sorting and pagination (it should always be the top row), but in my application I don't need pagination and sorting might just be fixable.
This would be a bit of a hack (but so are all of these approaches), but at least it could be implemented without modifying Reactabular. I'll give it a go.
(If there was any other way to add a
 to the
 without modifying Reactabular, I would love to know it.)

Oh, I see what you mean now. :+1:

(If there was any other way to add a  to the  without modifying Reactabular, I would love to know it.)

Not yet. This capability can be developed. We just need to figure out a sane API for it. One way to grow it would be to allow header prop to accept an array. Each item would map to a header row. This is analogous the way we are dealing with data right now. I think something like this would work:
header: [
    {
        cell: (column) => {
            // same idea as for column cells...
            // if we want to customize, we just return something
            // if not provided it would render content just like now
        }
    },
    {
        cell: noop // render nothing -> empty row with empty cells
    }
],

That would render a row with column names like right now and another row with empty cells. Would this work for you?
@eviltoylet Feel free to comment on the API once you have time. :)

Yes, that would definitely work for me. This also looks generic enough to support other use cases as well.
I'm wondering if it would make sense to do the same thing for footers (not relevant to my specific problem). I like the very straightforward current API for footer, but it's a bit asymmetric in the sense that it cannot easily be generalized to support other positions that the footer.

I'm wondering if it would make sense to do the same thing for footers (not relevant to my specific problem). I like the very straightforward current API for footer, but it's a bit asymmetric in the sense that it cannot easily be generalized to support other positions that the footer.

Yeah, it would make a lot of sense. After these changes we should have a nice little API together that allows you to achieve quite a bit.

@bebraw I like the semantics of that design. If we want more rows, simply add another object into the array.
I do have some concerns about how easy that would be to work into the existing code though. We should probably think about how this may fit in with grouped columns.

I do have some concerns about how easy that would be to work into the existing code though. We should probably think about how this may fit in with grouped columns.

Definitely.
Here's how it would work out:
header: [
    {
        cell: (column) => {
            // parent
            return column.header;
        }
    },
    {
        cell: (column) => {
            if(column.children) {
                // write out as a loop, just illustrating the idea
                return first children header	second children header	;
            }
            // else we do just an empty cell (default)
        }
    }
    ...
],

Then you have to do a similar thing for column cells and possibly footer. Even though this is a lot of code if we provide this sort of extension mechanism, you can push a lot of this behind a nice API. Maybe we can provide some starting point with the library itself.
I think we're doing things right if we can think Reactabular as a scaffolding on top of which you can attach new functionality like this without the library itself having to know about it.

:+1:

I think you should be able to achieve this in the current beta given how flexible it is. Closing.


Feature Progress bar

Add remaining percentage of the coutdown.
Works with :

coutdown
end-time

The gh-pages might does like this PR because of
    <script src="app/js/_timer.js"></script>
    <script src="app/js/i18nService.js"></script>
    <script src="app/js/progressBarService.js"></script>

I will make a PR to use https://github.com/tschaub/grunt-gh-pages and facilitate all of this

With this new grunt work flow we have :

dist/index.html with compiled JS for gh-pages
/index.html with non compiled JS
grunt task gh-pages that will push the content of dist/ to gh-pages
a file dist/assets/js/angular-timer-all.min.jsis available for https://github.com/siddii/angular-timer/issues/168
The test grunt task tests now the dist files

Beware  with /index.html the examples page will not work, as they are not essential to the dev phase. The examples works for dist/index.html

@siddii I think you need to also update your demo page, since this change breaks it. Looks good though, going to try it out tonight!

Sorry, i forget to include the gh-pages grunt task in my PR: https://github.com/siddii/angular-timer/pull/172

http://siddii.github.io/angular-timer/ updated with gh-pages grunt task

Awesome.. :+1:  Thanks @polomarcus, you rock!

No, no, no, you rock! haha

Works perfectly for my purposes (though I think the demo page is missing a binding to the 'active' progress bar); thanks a lot!


Don't respect remote spans' sampling decisions

We primarily rely on tail sampling decisions, and only use head sampling in a few places to control overall span volume. We don't currently want services to respect the head sampling decisions of their remote callers.

Closing in favour of https://github.com/replicate/director/pull/47, which also solves the problem at hand.


Make prettier run on precommit hooks automatically

Normal commit hooks often require modifying files within the .git
directory manually. However, husky and pre-commit together make it
so you don't have to do anything special to run prettier against files
automatically as they are being committed. This ensures that any file
changed is automatically updated when committed.

Add husky and precommit to the package, along with a precommit script
that will run prettier for any staged file

Note that this is the process that prettier recommends here. This addresses https://github.com/icambron/luxon/issues/27

Hey Isaac. So I was chatting with Maggie Pint during node interactive about maybe helping out a bit with something moment related. She mentioned that I should check out what you've got here with Luxon though and offer to help here instead. So here I am!

Thanks for the help, @JemBijoux. This is neat; I hadn't known about Husky. I'm testing it out.


Option to Strip Image Metadata

Imgur/etc automatically remove metadata from images. This is helpful because pictures taken with phones store the location in the image. It would be helpful to have a config option to remove the image metadata.
https://www.npmjs.com/package/exif-stripper

Duplicate of #110


#foreign C ABI for platform

At the moment, the LLVM IR generation stage outputs record type arguments in procedures as the actual type. This is fine for internal procedures but not for #foreign procedures that have a different ABI. This is a platform/OS dependent problem which will not be easy to  How should this be supported?
See this stackoverflow post for a little more info: http://stackoverflow.com/questions/22776391/why-does-clang-coerce-struct-parameters-to-ints

This has been fixed for the current platform (amd64)


feat(ui): virtual indent

Preview
https://github.com/nvim-orgmode/orgmode/assets/57654917/b8429fba-bf52-4cfc-8d04-7243418e8099
How to try it

Install neovim with neovim/neovim#23426

Add the following code to your orgmode configuration:

local VirtualIndent = require("orgmode.ui.virtual-indent"):new()
VirtualIndent:attach()

TODO

[x] Customizable indentation size (hidden or visible stars, possibly custom indentation)
[x] Documentation

It has happened! Virtual text is merged into the master branch! So I've made some changes, now you can enable virtual indent as follows:
require("orgmode").setup({
  org_indent_mode = "virtual_indent",
  ui = {
    virtual_indent = {
      handler = nil,
      --- or
      handler = function(buffer, start_line, end_line)
        -- ...
      end,
    },
  },
})

Ready for review

This is one of the most missing UI features of emacs in neovim! I am glad that finally, this is implemented!

Closing this since it was resolved in https://github.com/nvim-orgmode/orgmode/pull/627

Thanks @danilshvalov for the initial work 😉


Apply pipeline to notifications API endpoints

refs #5508

adds pipeline to the add and destroy methods of the notifications api

@ErisDS it seemed to me that the browse and destroyAll methods were simple enough/had nothing beyond a simple permissions check that adding pipeline to them would unnecessarily add code.

Also, it appears the tests fail because the status response is returned as a 200 instead of an expected 201. I would think this is an error in the tests, because it is saying that the delete endpoint should return a 201 "Created", which to me doesn't make much sense.

That sounds like test copy-pasta! Delete should return 200 for sure.

@ErisDS The reason the tests broke is because of a typo that I made. They would break again if I switched delete to expect a 200 response. I think the reason is because the delete API request returns the deleted notification, and thus the api.http method flags it as a 201 created. Is there a reason that the delete api method should return the deleted notification or can that be changed to not return anything?

@acburdine I can't follow why a DELETE request would return 201? The status code is only changed for POST requests. Could you post a link to the offending test/line please?

@ErisDS @sebgie Looking at the code for the tests again, I realized that the 201 is expected by the POST request that creates the notification before then deleting it. I was confused because the test header said "Delete notification" and the error said "expect 201" :expressionless:
Meaning, this should be good to go.

:+1: :)


Lesson 4: FileNotFoundError: [Errno 2] No such file or directory: 'ganache-cli'

Hey guys,
After writing the deploy script when I run the following command to deply the contract on ganache, the terminal threw an error saying:  FileNotFoundError: [Errno 2] No such file or directory: 'ganache-cli'
Please help me with this error. Below is the error that I'm getting from the past 5 hours. Please have a look.

rishavsharma@Rishavs-Air brownie_simple_storage % brownie run /scripts/deploy.py
Brownie v1.16.4 - Python development framework for Ethereum
BrownieSimpleStorageProject is the active project.
Launching 'ganache-cli --port 8545 --gasLimit 12000000 --accounts 10 --hardfork istanbul --mnemonic brownie'...
File "brownie/_cli/main.py", line 64, in main
importlib.import_module(f"brownie._cli.{cmd}").main()
File "brownie/_cli/run.py", line 43, in main
network.connect(CONFIG.argv["network"])
File "brownie/network/main.py", line 50, in connect
rpc.launch(active["cmd"], **active["cmd_settings"])
File "brownie/network/rpc/init.py", line 75, in launch
self.process = self.backend.launch(cmd, **kwargs)
File "brownie/network/rpc/ganache.py", line 73, in launch
return psutil.Popen(cmd_list, stdin=DEVNULL, stdout=out, stderr=out)
File "psutil/init.py", line 1312, in init
self.__subproc = subprocess.Popen(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 966, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 1842, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'ganache-cli'

Are you are using macOS? If yes, can you please change your python interpreter back to 3.8.x(Bottom left) and try re-run the scripts? Looking forward for your reply :)

Hey there,
Thanks for your reply :)
Yes, I am using a macOS. I tried doing what you advised but I am still getting the same error.

Hey there, Thanks for your reply :)
Yes, I am using a macOS. I tried doing what you advised but I am still getting the same error.

And when I changed my python interpreter, another issue popped up. I don't know if this would we of any help. Please let me know if you need me to try anything else. I am banging my head from last night. Heeeelp!!!

@bot-eth-dev

Have you installed ganache-cli? https://www.npmjs.com/package/ganache-cli

What happens when you run:
ganache-cli --version

I am getting the same error @PatrickAlphaC
It says `zsh: command not found: ganache-cli

`

Did you gloabally install?
npm install -g ganache-cli

I am having the same issue @the-intro-vert. I think I posted this on your personal account @PatrickAlphaC thinking that I waS posting it here, sorry about that! I think the issue is with npm. It says that we can fix by creating a directory for global installations, setting npm to config the directory and add the npm-global/bin to the path of OS. The steps didn't work for me because the file I created could not be located (grr) but maybe they will work for you. I am interested in seeing if that helps. Here is the link https://docs.npmjs.com/getting-started/fixing-npm-permissions.

https://docs.npmjs.com/getting-started/fixing-npm-permissions

I did all these things for like 5 days. The final result doesn't change.
I agree with @kjones86 (and thank you so much for taking out time to give such wonderful suggestion) that the problem is with NPM. Now, I am trying to follow the recommendation by him. Hopefully this thing will work out.
I am grateful to receive personal guidance from you @PatrickAlphaC Patrick. I hope we'll figure the solution for this problem :)

I hereby confirm that the suggestion that @kjones86 gave WORKED!!!!!
I installed nvm and then installed a different version of npm that was v14.19.0. I ran the command again and it worked like charm.
Thank you K. Jones for helping us out :)
You are a saviour my friend. I have been struggling with this issue for almost a week now. Thanks again.


Private RSS Feed Url

refs https://github.com/TryGhost/Ghost/issues/9001

show private feed url if private blogging is enabled

Coverage remained the same at 72.362% when pulling df0e288b76ca6163db2bce0e6632faf76da0320e on kirrg001:private-rss into bbbe6038b2213ba7ff8023a58343b2799b725a7b on TryGhost:master.

Coverage increased (+0.02%) to 72.378% when pulling 79371ef76cb5027dfc1c05b3969fe6d793412625 on kirrg001:private-rss into bbbe6038b2213ba7ff8023a58343b2799b725a7b on TryGhost:master.

Coverage increased (+0.02%) to 72.378% when pulling 79371ef76cb5027dfc1c05b3969fe6d793412625 on kirrg001:private-rss into bbbe6038b2213ba7ff8023a58343b2799b725a7b on TryGhost:master.


Add text prompt to inpaint mask support

add clipseg support for creating inpaint masks from text
On the command line, the new option is --text_mask or -tm.
Example:
invoke> a baseball -I /path/to/still_life.png -tm orange

This will find the orange fruit in the still life painting and replace it with an image of a baseball.

Is 528a183d42721cc25056f7eb8c044ba01d60c86a still necessary?

Are there any issues you'd like to see resolved before I merge this?

I'm going to go ahead and merge before too many new conflicts arise.

The preload script is just loading each of the models in turn and then
discarding them. This seems senseless until you realize that these are
Hugging Face models that are loaded on demand via URL. If you are behind a
firewall, like me, then Invoke will fail whenever it tries to load one of
these models. So we use the preload script that downloads the models as a
side effect and caches them in local directories.
Lincoln
On Tue, Oct 18, 2022 at 1:12 PM tildebyte @.***> wrote:

@.**** commented on this pull request.
In scripts/preload_models.py
https://github.com/invoke-ai/InvokeAI/pull/1133#discussion_r998505562:

transformers.logging.set_verbosity_error()
this will preload the Bert tokenizer fles
-print('preloading bert tokenizer...', end='')
-tokenizer = BertTokenizerFast.from_pretrained('bert-base-uncased')
+print('Loading bert tokenizer (ignore deprecation errors)...', end='')
+with warnings.catch_warnings():

warnings.filterwarnings('ignore', category=DeprecationWarning)
tokenizer = BertTokenizerFast.from_pretrained('bert-base-uncased')

Right, but the BERT version of the tokenizer is permanently overwritten
by the CLIP version, so nothing is "using" it currently.
Relevant snippet (note that there's no conditional, nor is BERT "handed
off" to another alias of some kind):
this will preload the Bert tokenizer flesprint('preloading bert tokenizer...', end='')
tokenizer = BertTokenizerFast.from_pretrained('bert-base-uncased')print('...success')
...snip 7 irrelevant lines
...
print('preloading CLIP model...',end='')sys.stdout.flush()
tokenizer = CLIPTokenizer.from_pretrained(version)
—
Reply to this email directly, view it on GitHub
https://github.com/invoke-ai/InvokeAI/pull/1133#discussion_r998505562,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAA3EVIY4DHESH37MR4UO23WD3K7HANCNFSM6AAAAAARGU4YUI
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

This is an amazing new feature.


Add OptionalObjectToStringConverterFactory to support Optional parameters in retrofit2 clients, fixes #326

…ters in retrofit2 clients, fixes 326

This change is

I'd also prefer not diverging from plain retrofit2 behavior too much, if
possible. out-of-the-box behavior is to serialize everything as #toString,
even if you apply the JacksonConverterFactory.
On Wed, Jan 25, 2017 at 2:46 PM Mark Elliot<EMAIL_ADDRESS>wrote:

@markelliot commented on this pull request.
In
retrofit2-clients/src/main/java/com/palantir/remoting1/retrofit2/OptionalObjectToStringConverterFactory.java
https://github.com/palantir/http-remoting/pull/331:

       if (typeToken.getRawType() == java.util.Optional.class) {

           return Java8OptionalStringConverter.INSTANCE;

       } else if (typeToken.getRawType() == com.google.common.base.Optional.class) {

           return GuavaOptionalStringConverter.INSTANCE;

       }

   }

   return null;

}

enum Java8OptionalStringConverter implements Converter<java.util.Optional<?>, String> {

   INSTANCE;

   @Override

   public String convert(java.util.Optional<?> value) throws IOException {

       return value.map(Object::toString).orElse("");

(say by using the JacksonConverter?)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/palantir/http-remoting/pull/331, or mute the thread
https://github.com/notifications/unsubscribe-auth/AGOdwf3MvOApRJ-0BnsihJkDAritoGr0ks5rV9DCgaJpZM4LuDN1
.

What about return types?

Suppose I have some API:
interface Blargh {
Optional getThing();
}
For:
class AliasType {
private final int val;
@JsonCreator
public AliasType(int val) {
    this.val = val;
}

@JsonValue
public int get() {
    return val;
}

}
Will this work?

I think so, let me try.

yep, see test.


ordcreatures PR attempt

please work please work please work

holy s-.... it may have worked. i hope this is sufficient. ty devs for the hardwork <3


Days 1-14 updates

Removed a few extra imports
Removed unused views
Fixed two warnings
Fixed one error

Really enjoying going through these. Thank you for putting it together!

👍 👍 👍


Clean up input parameters in requireCheckFieldKind

Fixes Or Enhances
This PR eliminates the defaultNotFoundValue input parameter since it consistently received a value of true.
Make sure that you've checked the boxes below before you submit PR:

[ ] Tests exist or have been written that cover this particular change.

@go-playground/validator-maintainers

coverage: 74.318%. remained the same
when pulling 528973708aead086dd8974aa995a73a4d648a4f0 on nodivbyzero:require-check-field-kind-unparam
into 6c3307e6c64040ebc0efffe9366927c68146ffba on go-playground:master.


B 771 visual fixes

This item belongs to payment request #D812A4 on OnlyDust:

from oscarwroche to oscarwroche
35 items included
$1,000 for 2 days of work


Separate blobs from metadata in the ocis driver

This pr makes the ocis driver store the actual file content separately from the metadata, allowing for using a different (potentially faster) storage for the metadata.
Common code between the ocis and s3ng drivers is extracted into a decomposedfs package which leaves them with just a thin layer for the different blobstore implementations.

@phil-davis the tests fail with LdapErr: DSID-0C090400, comment: AcceptSecurityContext error ... do we need to update tests?

@phil-davis @butonic nevermind, apparently it was an intermittent infra problem. It worked fine now after retriggering it a few times.

@butonic @phil-davis the ldap problem seems to be back unfortunately... (e.g. in https://drone.cernbox.cern.ch/cs3org/reva/710)

@labkode Thanks for your comment. I renamed the file accordingly.


Cpy-rs sync

just update for the next release of cpy-rs

https://crates.io/crates/cpy-binder 0.2.0 done


After closing 3. Selector

Bug report from navigating Selctor - ApexTool - Console

Scenario

Select an element and start ApexTool
Escape with ESC without no operation or modification
Go to Console with ESC right after that
Then, there are no stop for Selector and Selector still works on Console

You should remove event listeneres after stop the selector.


Get icons and social media links for footer

[x] Get GitHub SVG icon
[x] Get LinkedIn SVG icon
[x] Add link for Facebook
[x] Add link for LinkedIn

Once @frickealissa has the links for Facebook and LinkedIn, I can add them to the footer.

Hi @pmotch! Here are the links:
https://www.facebook.com/Open-Voice-Network-103375474336837/
https://www.linkedin.com/company/open-voice-network

Done


sot-core: 4.10.1-3 in 'noetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository sot-core to 4.10.1-3:

upstream repository: https://github.com/stack-of-tasks/sot-core.git
release repository: https://github.com/stack-of-tasks/sot-core-ros-release.git
distro file: noetic/distribution.yaml
bloom version: 0.10.0
previous version for package: 4.10.1-1

holding for the upcoming Noetic sync


Classes for Turing Costa Rica models

Adding Turing's Resnet50 class and classes for the costa rica and UK models species classifier.

Wohoo! Thank you @KatrionaGoldmann!


Tags are case sensitive

I guess it would make sense that tags aren't case sensitive?

Good catch

Good catch

Thanks 😁

Reproducible still


Bug: mangadex.org

Bug report
Environment:

Component
Value

OS
Ubuntu 16.04.5 LTS

Python version
Python 3.5.2

Pip version
pip 18.1

Manga-py version
<IP_ADDRESS>

URL
https://mangadex.org/title/34391

To Reproduce:
Steps to reproduce the behavior:
pipenv run manga-py --cbz --zero-fill --rename-pages --no-webp --destination Manga/ https://mangadex.org/title/34391

Additional context
Output:
  File "~/.local/share/virtualenvs/0_bin-S-IZrhuG/lib/python3.5/site-packages/manga_py/cli/__init__.py", line 45, in start
    self.parser.start()
  File "~/.local/share/virtualenvs/0_bin-S-IZrhuG/lib/python3.5/site-packages/manga_py/parser.py", line 42, in start
    self.provider.process(self.params['url'], self.params)
  File "~/.local/share/virtualenvs/0_bin-S-IZrhuG/lib/python3.5/site-packages/manga_py/provider.py", line 72, in process
    self._storage['main_content'] = self.content
  File "~/.local/share/virtualenvs/0_bin-S-IZrhuG/lib/python3.5/site-packages/manga_py/provider.py", line 250, in content
    content = self.get_main_content()
  File "~/.local/share/virtualenvs/0_bin-S-IZrhuG/lib/python3.5/site-packages/manga_py/providers/mangadex_com.py", line 33, in get_main_content
    self._home_url = self.re.search('(.+/title/\d+/[^/])', url).group(1)

Oops!!
https://mangadex.org/title/34391 is equivalent to https://mangadex.org/title/34391/zannen-desu-ne-hime-kishi-sensei-webcomic and the second works OK


fix kubevirt secondary disk naming

What this PR does / why we need it:
This PR adds 'machine-name' prefix to secondary disk's name for kubevirt provider to avoid naming conflict.
Which issue(s) this PR fixes (optional, in fixes #<issue number> format, will close the issue(s) when PR gets merged):
Fixes #1378
Special notes for your reviewer:
Optional Release Note:

NONE

Signed-off-by: Sankalp Rangare<EMAIL_ADDRESS>

/retest

/retest

/retest


[admin] merge to live

Learn Build status updates of commit 767fa2c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

office-365-management-api/troubleshooting-the-office-365-management-activity-api.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


multipartBody does not set the boundary in the Content-Type header

This can cause the remote server to reject the body as malformed, resulting in much sadness.

You need to have an http://sscce.org/ in your issues. Please open a new issue with a minimal reproduction.


WIP More feedback!

Closes #933
Addresses the following from #930

[x] add ⌘+return or alt+return to run scripting terminals
[x] login flow
[ ] responsive pages sizing
[x] Holocat chatbtc question formatting
[x] copy fixes
[x] computing... copy while the runner has no result
[ ] user vs teammates avatar styling
[ ] holocat icons from chapter 3 are too similar to chatbtc questions
[x] outro page topbar opacity
[x] replace generator point help link with chatbtc link
[x] 404 page links fixes (happened in #928)
[ ] chapters page image sizing with hidden navigation being really long
[x] extra block explorer hint
[x] fix some chatbtc link errors
[x] help page scrolling
[x] address bar copy changed from challenge number to challenge name
[x] more hints for paying the change

in Lieu of getting this too complex I am going to mark this as ready for review and then split the remaining issues from #930 into separate PR's as they are either lesson changes or there are some broad choices on how we can proceed


add optional argument to check only a specific path or file

Feature Request

Q
A

New Feature
yes

RFC
yes

BC Break
no

Summary

It would be great if you could pass to phparkitect an optional argument to check only a specific path or file instead of all project files.
Examples:
./vendor/bin/phparkitect check src/Domain
./vendor/bin/phparkitect check src/Domain/FooBar.php

Is there any specific use case are you to cover with this feature?
First thing that comes to my mind is changing ClassSet::fromDir('src') to ClassSet::fromDir('src/Domain') in the config file

Sure, you can change the path using ClassSet::fromDir(...) in the configuration but I would like to temporarily change the path to check at runtime to focus only on one file or folder when there are too many checking errors.

this is an interesting use case... like when you want to execute an isolated test case... maybe could be a filter on command line


Vim Block Cursor Issues

Hiyo,
I am having some issues with the block cursor with the vim bindings enabled, it appears almost invisible besides some slight flickering on the hovered character since the latest release, my older vaults using release 0.2.2 seem to be working fine but 0.2.8 appears to be having the issue.
Hopefully this is alright to leave here and not being repeated, couldn't see anything about it elsewhere so I thought i'd leave it here.

Update: So, the "broken stuff" I thought I saw was that I couldn't style the css of the cursor and thought maybe I had a specificity issue. However, some googling makes it seem like the css in the app theme is outdated (or for older versions of the app): https://forum.obsidian.md/t/cursor-styling-since-0-14-15/38721 and that the only thing that can be styled now is caret-color.
Currently, for me, the block cursor flashes lavender over the text in the default palette and responds to changes in the --ctp-accent: variable. I've tried a couple of the Style Settings accents and everything seems to work about as expected there. The only thing I notice is that if I tab out, the block cursor becomes an empty red rectangle, but I assume that's supposed to happen? (Sorry, more of an emacs guy :p)
I'll look around a little more, but if you could get a gif/image of the issue, that would be awesome. Thanks!

@mbeckrich I have the same problem. I found that --ctp-accent does not exists in my Obsidian.
🧐 Where do these --ctp-* variables come from?

@mbeckrich I have the same problem. I found that --ctp-accent does not exists in my Obsidian.
🧐 Where do these --ctp-* variables come from?

They're created here: https://github.com/catppuccin/obsidian/blob/main/scss/base/_ctp-style-settings.scss#L808 and found in the theme.css file if you cmd/ctrl+f for /* ------------------Selecting Accents------------------- */.
I found the issue, though. The full palette became detached from the theme in 0.2.8 if a user does not have Style Settings installed (this is why I did not notice until just now when I checked on my Windows computer). Should be a quick fix.

@mbeckrich I have the same problem. I found that --ctp-accent does not exists in my Obsidian.
🧐 Where do these --ctp-* variables come from?

They're created here: https://github.com/catppuccin/obsidian/blob/main/scss/base/_ctp-style-settings.scss#L808 and found in the theme.css file if you cmd/ctrl+f for /* ------------------Selecting Accents------------------- */.
I found the issue -- the

This should be fixed in https://github.com/catppuccin/obsidian/commit/6ee23d86ce5909cacc9ae8740e5afa6fa3d5b095 after updating your version of the theme. This is reverts yesterday's breaking change; I'm sick, so will do a real fix tomorrow.

I had a look myself and using Style Settings definitely seems to make it work, so I shouldnt have any issues anymore from that point of view, I've left a gif of the exact issue I was having without it, assuming that Style Settings isnt meant to be a hard dependency, although if it is then I can only apologise for reporting an issue of not using the plugin

The plugin should not be a requirement to use the full palette theme — I just made a change and forgot to make sure everything still worked as it should without the plugin, so thank you for bringing it to my attention!On Nov 8, 2022, at 3:03 AM, Alex Dauncey @.***> wrote:
I had a look myself and using Style Settings definitely seems to make it work, so I shouldnt have any issues anymore from that point of view, I've left a gif of the exact issue I was having without it, assuming that Style Settings isnt meant to be a hard dependency, although if it is then I can only apologise for reporting an issue of not using the plugin
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

This should all be corrected as of https://github.com/catppuccin/obsidian/commit/464885b49c76e805eb2ab9a2ec05f05556fa6534 and last night's hack-y temporary fix has been removed.
Style Settings should not be needed to get the default full palette theme, so you can uninstall it if it's not of use to you otherwise. Closing the topic for now, but let me know if either of you run into further issues. Sorry for the mess. :)


Add daily spending limit to gateway

Hooking up the lightning gateway to a large lightning node can be scary, if any undiscovered bugs exist they could potentially steal all the available money. Adding something like a daily spending limit would help mitigate this risk so the gateway runner would be able to limit their risk to only X sats per day.
Doing something like a single invoice limit would not be sufficient would just require more transactions

We should look into LNC for LND accounts
Gateway extensions could include a spending limit. Extensions are much less complex than the gateway, so easier to get right.


LUN info does not get collected

Describe the bug
Pollers constantly report lag behind schedule for small delays
Environment
Provide accurate information about the environment to help us reproduce the issue.

Harvest version: harvest version 21.05.2-1 (commit ce091de) (build date 2021-06-14T20:31:09+0530) linux/amd64
Command line arguments used: [e.g. bin/harvest start --config=foo.yml --collectors Zapi]
OS: RHEL 7.9
Install method: yum
ONTAP Version: 9.7
Other:

To Reproduce
N/A
Expected behavior
Collect LUN Zapi info such as size used, node, status etc
Actual behavior
No information gets collected
Possible solution, workaround, fix
Related to
https://github.com/NetApp/harvest/blob/d4803774f4291584bd720f98d3864804062a1b4d/conf/zapi/cdot/9.8.0/lun.yaml#L7
Correct counter is lun-info and not node-details-info, changing this fixes data collection

Good catch @hashi825 thanks!

Question for you @hashi825 - Can you check and make sure you're getting the correct name
I also had to change
https://github.com/NetApp/harvest/blob/d4803774f4291584bd720f98d3864804062a1b4d/conf/zapi/cdot/9.8.0/lun.yaml#L23
to
split: path '/' ,,,lun
Before lun is blank
lun_size{datacenter="DC-01",cluster="sim-0001",node="",qtree="",lun="",volume="vol-460",svm="vserver-39"}<PHONE_NUMBER>0

After lun is correct
lun_size_used{cluster="sim-0001",datacenter="DC-01",node="",qtree="",lun="lun-490",volume="vol-460",svm="vserver-39"}<PHONE_NUMBER>0

Looks like node and qtree need fixing too.

You're right, I changed the split and now get the lun name, I'm getting the correct node label though. Can't comment on qtrees since I don't have them in my environment.

Excellent - updated the PR with the path fix and good to hear node label is correct for you. That's likely an issue on my end.

Verified the issue and the fix works with out any issues.Observed lun name and size details are displayed correctly.
root@scspa2380901007:/opt/harvest# /opt/harvest/bin/harvest -v
harvest version 21.05.3-4 (commit c2dafee) (build date 2021-06-25T23:20:41+0530) linux/amd64
root@scspa2380901007:/opt/harvest# curl -s 'http://<IP_ADDRESS>:12991/metrics' | grep lun
lun_labels{datacenter="F2240-127-26",cluster="F2240-127-26_28",node="F2240-127-28",qtree="",lun="ds",volume="NSLM_VOL_LUN_1551009070672",svm="COCA",state="online"} 1.0
lun_size{datacenter="F2240-127-26",cluster="F2240-127-26_28",node="F2240-127-28",qtree="",lun="ds",volume="NSLM_VOL_LUN_1551009070672",svm="COCA"}<PHONE_NUMBER>
lun_size_used{datacenter="F2240-127-26",cluster="F2240-127-26_28",node="F2240-127-28",qtree="",lun="ds",volume="NSLM_VOL_LUN_1551009070672",svm="COCA"} 0


bumped sbt and scala version

@phdoerfler have you tried this? Unfortunately, this is not being tested by the CI at the moment.

Sorry for the late reply, somehow this must have escaped my attention. I have not tested this, no, I was indeed relying on the CI.


Add category to posts

Hi! Thank you for creating this awesome jekyll theme :)
I know tags might be enough, but I would like my posts to be categorized by different content
Is it hard for you to implement? Or is there something I can do in the markdown files / css??
Thanks!

Use tags?
https://jekyllrb.com/docs/frontmatter/#predefined-variables-for-posts