service defined with init script not enabled in systemd system when using Chef 17

Description
I have a service (supervisord) defined through an init script and I'm trying to enable it using Chef 17.2.9, with
service "supervisord" do
  action :enable
end

Chef trace log reports that service is already enabled, while service is actually not enabled
trace log
Recipe: aws-parallelcluster::supervisor
  * service[supervisord] action enable[2021-09-17T12:31:17+00:00] INFO: Processing service[supervisord] action enable (aws-parallelcluster::supervisor line 25)
[2021-09-17T12:31:17+00:00] TRACE: Providers for generic service resource enabled on node include: [Chef::Provider::Service::Systemd, Chef::Provider::Service::Debian, Chef::Provider::Service::Invokercd, Chef::Provider::Service::Init]
[2021-09-17T12:31:17+00:00] TRACE: Provider for action enable on resource service[supervisord] is Chef::Provider::Service::Systemd
ActiveState=active
UnitFileState=generated
[2021-09-17T12:31:17+00:00] DEBUG: service[supervisord] already enabled - nothing to do
 (up to date)

status command
$ sudo systemctl is-enabled supervisord
supervisord.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled supervisord
disabled

This behavior was not present in version 16.13.16 (defining same service)
trace log
Recipe: aws-parallelcluster::supervisor
  * service[supervisord] action enable[2021-09-17T12:30:52+00:00] INFO: Processing service[supervisord] action enable (aws-parallelcluster::supervisor line 25)
[2021-09-17T12:30:52+00:00] TRACE: Providers for generic service resource enabled on node include: [Chef::Provider::Service::Systemd, Chef::Provider::Service::Debian, Chef::Provider::Service::Invokercd, Chef::Provider::Service::Init]
[2021-09-17T12:30:52+00:00] TRACE: Provider for action enable on resource service[supervisord] is Chef::Provider::Service::Systemd
supervisord.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled supervisord
disabled
supervisord.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled supervisord
disabled
supervisord.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable supervisord
[2021-09-17T12:30:53+00:00] INFO: service[supervisord] enabled

    - enable service service[supervisord]

status command
$ sudo systemctl is-enabled supervisord
supervisord.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled supervisord
enabled

I think the problem was introduced by this change  https://github.com/chef/chef/commit/61441313843055d16a28c8ab5e71e04cb71ba7a3
because the function to check if service is enabled is
  def is_enabled?
    # See https://github.com/systemd/systemd/blob/master/src/systemctl/systemctl-is-enabled.c
    # Note: enabled-runtime is excluded because this is volatile, and the state of enabled-runtime
    # specifically means that the service is not enabled
    %w{enabled static generated alias indirect}.include?(systemd_service_status["UnitFileState"])
  end

while the systemd_service_status function output is
$ /bin/systemctl --system show -p UnitFileState -p ActiveState supervisord
ActiveState=active
UnitFileState=generated

so service is seen as enabled because UnitFileState=generated but the service is actually not enabled
$ sudo systemctl is-enabled supervisord
supervisord.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled supervisord
disabled

Following is the output of systemctl --system show while the service is still in disabled state
$ /bin/systemctl --system show supervisord
Type=forking
Restart=no
NotifyAccess=none
RestartUSec=100ms
TimeoutStartUSec=5min
TimeoutStopUSec=5min
TimeoutAbortUSec=5min
RuntimeMaxUSec=infinity
WatchdogUSec=0
WatchdogTimestampMonotonic=0
RootDirectoryStartOnly=no
RemainAfterExit=yes
GuessMainPID=no
SuccessExitStatus=5 6
MainPID=0
ControlPID=0
FileDescriptorStoreMax=0
NFileDescriptorStore=0
StatusErrno=0
Result=success
ReloadResult=success
CleanResult=success
UID=[not set]
GID=[not set]
NRestarts=0
OOMPolicy=stop
ExecMainStartTimestampMonotonic=0
ExecMainExitTimestampMonotonic=0
ExecMainPID=0
ExecMainCode=0
ExecMainStatus=0
ExecStart={ path=/etc/init.d/supervisord ; argv[]=/etc/init.d/supervisord start ; ignore_errors=no ; start_time=[Fri 2021-09-17 13:29:35 UTC] ; stop_time=[Fri 2021-09-17 13:29:37 UTC] ; pid=11545 ; code=exited ; status=0 }
ExecStartEx={ path=/etc/init.d/supervisord ; argv[]=/etc/init.d/supervisord start ; flags= ; start_time=[Fri 2021-09-17 13:29:35 UTC] ; stop_time=[Fri 2021-09-17 13:29:37 UTC] ; pid=11545 ; code=exited ; status=0 }
ExecStop={ path=/etc/init.d/supervisord ; argv[]=/etc/init.d/supervisord stop ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }
ExecStopEx={ path=/etc/init.d/supervisord ; argv[]=/etc/init.d/supervisord stop ; flags= ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }
Slice=system.slice
ControlGroup=/system.slice/supervisord.service
MemoryCurrent=107732992
CPUUsageNSec=[not set]
EffectiveCPUs=
EffectiveMemoryNodes=
TasksCurrent=5
IPIngressBytes=[no data]
IPIngressPackets=[no data]
IPEgressBytes=[no data]
IPEgressPackets=[no data]
IOReadBytes=18446744073709551615
IOReadOperations=18446744073709551615
IOWriteBytes=18446744073709551615
IOWriteOperations=18446744073709551615
Delegate=no
CPUAccounting=no
CPUWeight=[not set]
StartupCPUWeight=[not set]
CPUShares=[not set]
StartupCPUShares=[not set]
CPUQuotaPerSecUSec=infinity
CPUQuotaPeriodUSec=infinity
AllowedCPUs=
AllowedMemoryNodes=
IOAccounting=no
IOWeight=[not set]
StartupIOWeight=[not set]
BlockIOAccounting=no
BlockIOWeight=[not set]
StartupBlockIOWeight=[not set]
MemoryAccounting=yes
DefaultMemoryLow=0
DefaultMemoryMin=0
MemoryMin=0
MemoryLow=0
MemoryHigh=infinity
MemoryMax=infinity
MemorySwapMax=infinity
MemoryLimit=infinity
DevicePolicy=auto
TasksAccounting=yes
TasksMax=37558
IPAccounting=no
UMask=0022
LimitCPU=infinity
LimitCPUSoft=infinity
LimitFSIZE=infinity
LimitFSIZESoft=infinity
LimitDATA=infinity
LimitDATASoft=infinity
LimitSTACK=infinity
LimitSTACKSoft=8388608
LimitCORE=infinity
LimitCORESoft=0
LimitRSS=infinity
LimitRSSSoft=infinity
LimitNOFILE=524288
LimitNOFILESoft=1024
LimitAS=infinity
LimitASSoft=infinity
LimitNPROC=125195
LimitNPROCSoft=125195
LimitMEMLOCK=65536
LimitMEMLOCKSoft=65536
LimitLOCKS=infinity
LimitLOCKSSoft=infinity
LimitSIGPENDING=125195
LimitSIGPENDINGSoft=125195
LimitMSGQUEUE=819200
LimitMSGQUEUESoft=819200
LimitNICE=0
LimitNICESoft=0
LimitRTPRIO=0
LimitRTPRIOSoft=0
LimitRTTIME=infinity
LimitRTTIMESoft=infinity
OOMScoreAdjust=0
Nice=0
IOSchedulingClass=0
IOSchedulingPriority=0
CPUSchedulingPolicy=0
CPUSchedulingPriority=0
CPUAffinity=
CPUAffinityFromNUMA=no
NUMAPolicy=n/a
NUMAMask=
TimerSlackNSec=50000
CPUSchedulingResetOnFork=no
NonBlocking=no
StandardInput=null
StandardInputData=
StandardOutput=journal
StandardError=inherit
TTYReset=no
TTYVHangup=no
TTYVTDisallocate=no
SyslogPriority=30
SyslogLevelPrefix=yes
SyslogLevel=6
SyslogFacility=3
LogLevelMax=-1
LogRateLimitIntervalUSec=0
LogRateLimitBurst=0
SecureBits=0
CapabilityBoundingSet=cap_chown cap_dac_override cap_dac_read_search cap_fowner cap_fsetid cap_kill cap_setgid cap_setuid cap_setpcap cap_linux_immutable cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw cap_ipc_lock cap>
AmbientCapabilities=
DynamicUser=no
RemoveIPC=no
MountFlags=
PrivateTmp=no
PrivateDevices=no
ProtectKernelTunables=no
ProtectKernelModules=no
ProtectKernelLogs=no
ProtectControlGroups=no
PrivateNetwork=no
PrivateUsers=no
PrivateMounts=no
ProtectHome=no
ProtectSystem=no
SameProcessGroup=no
UtmpMode=init
IgnoreSIGPIPE=no
NoNewPrivileges=no
SystemCallErrorNumber=0
LockPersonality=no
RuntimeDirectoryPreserve=no
RuntimeDirectoryMode=0755
StateDirectoryMode=0755
CacheDirectoryMode=0755
LogsDirectoryMode=0755
ConfigurationDirectoryMode=0755
TimeoutCleanUSec=infinity
MemoryDenyWriteExecute=no
RestrictRealtime=no
RestrictSUIDSGID=no
RestrictNamespaces=no
MountAPIVFS=no
KeyringMode=private
ProtectHostname=no
KillMode=process
KillSignal=15
RestartKillSignal=15
FinalKillSignal=9
SendSIGKILL=yes
SendSIGHUP=no
WatchdogSignal=6
Id=supervisord.service
Names=supervisord.service
Requires=system.slice sysinit.target
Wants=network-online.target supervisord.target
Conflicts=shutdown.target
Before=shutdown.target supervisord.target
After=system.slice basic.target sysinit.target network-online.target systemd-journald.socket remote-fs.target nss-lookup.target
Documentation=man:systemd-sysv-generator(8)
Description=LSB: Start/stop supervisor
LoadState=loaded
ActiveState=active
SubState=running
FragmentPath=/run/systemd/generator.late/supervisord.service
SourcePath=/etc/init.d/supervisord
UnitFileState=generated
UnitFilePreset=enabled
StateChangeTimestamp=Fri 2021-09-17 13:29:37 UTC
StateChangeTimestampMonotonic=12163544517
InactiveExitTimestamp=Fri 2021-09-17 13:29:35 UTC
InactiveExitTimestampMonotonic=12162411997
ActiveEnterTimestamp=Fri 2021-09-17 13:29:37 UTC
ActiveEnterTimestampMonotonic=12163544517
ActiveExitTimestamp=Fri 2021-09-17 12:41:00 UTC
ActiveExitTimestampMonotonic=9247103248
InactiveEnterTimestamp=Fri 2021-09-17 12:41:00 UTC
InactiveEnterTimestampMonotonic=9247113862
CanStart=yes
CanStop=yes
CanReload=no
CanIsolate=no
StopWhenUnneeded=no
RefuseManualStart=no
RefuseManualStop=no
AllowIsolate=no
DefaultDependencies=yes
OnFailureJobMode=replace
IgnoreOnIsolate=no
NeedDaemonReload=no
JobTimeoutUSec=infinity
JobRunningTimeoutUSec=infinity
JobTimeoutAction=none
ConditionResult=yes
AssertResult=yes
ConditionTimestamp=Fri 2021-09-17 13:29:35 UTC
ConditionTimestampMonotonic=12162410715
AssertTimestamp=Fri 2021-09-17 13:29:35 UTC
AssertTimestampMonotonic=12162410715
Transient=no
Perpetual=no
StartLimitIntervalUSec=10s
StartLimitBurst=5
StartLimitAction=none
FailureAction=none
SuccessAction=none
InvocationID=ae1fb9de2f2a4fb482fe2a22d6f96433
CollectMode=inactive

Chef Version
Not working in v17.2.9
Was working in v16.13.16
Platform Version
Ubuntu18 and Ubuntu20

I just ran into this same issue.  Thanks @lukeseawalker for your detailed writeup.  For now, I ended up just creating a monkey patch that sets all the is_<active|enabled|masked|indirect>? methods back to their previous definition before the breaking change was introduced in https://github.com/chef/chef/commit/61441313843055d16a28c8ab5e71e04cb71ba7a3
Hopefully this can get fixed upstream at some point. It seems like using systemctl --system show some.service to check if a service is enabled does not work for non native services that are using systemd-sysv-install.  So I'm not sure what the correct fix could be except for going back to the old command.

I think a similar issue was reported here: https://github.com/chef/chef/issues/11979
There's also an open PR for reverting it back to the previous behavior, but there's no recent activity: https://github.com/chef/chef/pull/11980

I'm facing the same issue with GDRCopy service on Ubuntu.
Recipe:
service node['cluster']['nvidia']['gdrcopy']['service'] do
    action %i(enable start)
    supports status: true
  end

Log:
Recipe: ...
  * service[gdrdrv] action enable (up to date)
  * service[gdrdrv] action start
    - start service service[gdrdrv]

Check
$ sudo systemctl is-enabled gdrdrv
gdrdrv.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled gdrdrv
disabled

$ /bin/systemctl --system show -p UnitFileState -p ActiveState gdrdrv
ActiveState=active
UnitFileState=generated

To workaround this issue I had to use an explicit execute command:
 execute "enable #{node['cluster']['nvidia']['gdrcopy']['service']} service" do
    command "systemctl enable #{node['cluster']['nvidia']['gdrcopy']['service']}"
  end


Exceptions are stored on disk even if offline mode is off and are never sent

I've noticed this odd (probably wrong) behavior associated to the AutoCollection of Exceptions. In a brief: if "enableOfflineMode" if off, unhandled exceptions are not sent and pile up on disk.
Details follow:
If AutoCollection is enabled, all uncaught exceptions are trapped by "uncaughtException" event on the process. This causes the exception data to be sent to "handleCrash" method on Channel object with "isNodeCrashing" set to true. "handleCrash" sends the exception data to "saveOnCrash" and this method does not check if "_enableOfflineMode" is true. It just stores on disk.
If "_enableOfflineMode" if false, 2 (bad) things happen: Files are stored on disk even if this functionality is off. It may still make sense, since it's the only way to make unhandled exception collection work. But since "_enableOfflineMode" is false, files stored on disk are never sent.
So, ultimately:

Files will pile up forever on disk
Unhandled Exceptions will not be sent

Maybe it would be better to:

Not store exceptions to disk, since they will not be sent. It may happen that on first run offline mode is off, then switched on later. But its an odd scenario. If this is not the case, Exception files will be piled up forever.

Try to send exceptions (only) on next start even if offline mode is off.

What do you think?

Hi @bragma, thanks for writing this up. From what you're saying and looking at the code it looks like you're assessment and this was probably a regression during one of the offlineMode changes. It should be noted that the crash handling is has been impacted by several of the last version changes of node so it's also possible that this is a version-specific issue.
I like your proposal. Separating crashes from the 'offlineMode' concept seems like the right thing to do. Feel free to make a pull request or ask @BogdanBe to triage.

@southwood sadly I'm really busy right now. I'd happily pick up the PR but I think this problem deserves more care I can afford right now. :(

This should address this issue. https://github.com/Microsoft/ApplicationInsights-node.js/pull/83
Though I believe more thought will need to be put into how offlineMode works


Remove extraneous quotes from welcome guide

Requirements

Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
All new code requires tests to ensure against regressions

Description of the Change

Extraneous quotes are present in the welcome guide. I am not sure if these are intentional (they don't look like they are).
Here are screenshots of the issues that this PR fixes:

Alternate Designs

Benefits

The buttons present in the guide will look neater and will not have extraneous characters.
Possible Drawbacks

None?
Applicable Issues

None?

Nice catch, thanks!


#jobtweets

Again, Could I know what this issue is about ?

can i know what is the issue

What is the issue about @likhitgarimella


webpack should turn on optimization when building files

Currently, built files are generated by webpack in dev mode. While this indeed achieves the result of not minifying them, it makes them bigger than necessary when minifying them later, as it also disables other webpack optimization which help a lot with minification (the module concatenation feature especially, which allows to have local variables that can be mangled for all internal imports, and also benefits performance by removing wrapper functions).
I think it would make sense to turn on these optimizations in the webpack config (either by enabling relevant prod optimization, or by switching webpack to prod mode and disabling only the minification).
Note that the module concatenation optimization is applied only for ES modules. The current setup converts ES modules to CommonJS ones in Babel, so they are not ES modules from webpack's point of view. To benefit from the optimization, Babel should preserves ES imports and exports (relying on webpack to manage them).

I think it would make sense to turn on these optimizations in the webpack config (either by enabling relevant prod optimization, or by switching webpack to prod mode and disabling only the minification).

Generally speaking, for future reference, this is probably the sort of case where additional details such as e.g. links to documentation/examples would be of help.

Note that the module concatenation optimization is applied only for ES modules.

In that case, we can probably close this issue as (effectively) a duplicate of issue #10317.
(Also, please keep in mind that the built-in Firefox PDF Viewer is still the main development target of this library.)


Add an option to allow / disallow / ask for a remote installation

It would be nice to have an option to auto-allow / auto-disallow / ask for a remote installation when I go on the Play Store site and I choose install on an app's page.

Remote installations are managed through Play Store (the Play Store app or in case you use BlankStore/FakeStore, it would be the responsibility of those), not Play Services / GmsCore. You could add this issue to the Phonesky repo, but certainly it won't be fixed soon as Phonesky is not even usable right now :)

I was hoping it was in play services, well nevermind.


ChildWorkflowOptions have changed.

ChildWorkflowOptions have changed in Temporal.  Right now Test_WorkflowExecuteChildRequest is failing because the ChildWorkflowOptions do not align.
It seems like they have universally changed:

ExecutionStartToCloseTimeout ==> WorkflowExecutionTimeout
TaskStartToCloseTimeout ==> WorkflowTaskTimeout

Below are is the ChildWorkflowOptions struct from the Temporal Golang client.
struct {
    // Namespace of the child workflow.
    // Optional: the current workflow (parent)'s namespace will be used if this is not provided.
    Namespace string

    // WorkflowID of the child workflow to be scheduled.
    // Optional: an auto generated workflowID will be used if this is not provided.
    WorkflowID string

    // TaskList that the child workflow needs to be scheduled on.
    // Optional: the parent workflow task list will be used if this is not provided.
    TaskList string

    // WorkflowExecutionTimeout - The end to end timeout for the child workflow execution including retries
    // and continue as new.
    // Optional: defaults to 10 years
    WorkflowExecutionTimeout time.Duration

    // WorkflowRunTimeout - The timeout for a single run of the child workflow execution. Each retry or
    // continue as new should obey this timeout. Use WorkflowExecutionTimeout to specify how long the parent
    // is willing to wait for the child completion.
    // Optional: defaults to WorkflowExecutionTimeout
    WorkflowRunTimeout time.Duration

    // WorkflowTaskTimeout - The workflow task timeout for the child workflow.
    // Optional: default is 10s if this is not provided (or if 0 is provided).
    WorkflowTaskTimeout time.Duration

    // WaitForCancellation - Whether to wait for cancelled child workflow to be ended (child workflow can be ended
    // as: completed/failed/timedout/terminated/canceled)
    // Optional: default false
    WaitForCancellation bool

    // WorkflowIDReusePolicy - Whether server allow reuse of workflow ID, can be useful
    // for dedup logic if set to WorkflowIdReusePolicyRejectDuplicate
    WorkflowIDReusePolicy WorkflowIDReusePolicy

    // RetryPolicy specify how to retry child workflow if error happens.
    // Optional: default is no retry
    RetryPolicy *RetryPolicy

    // CronSchedule - Optional cron schedule for workflow. If a cron schedule is specified, the workflow will run
    // as a cron based on the schedule. The scheduling will be based on UTC time. Schedule for next run only happen
    // after the current run is completed/failed/timeout. If a RetryPolicy is also supplied, and the workflow failed
    // or timeout, the workflow will be retried based on the retry policy. While the workflow is retrying, it won't
    // schedule its next run. If next schedule is due while workflow is running (or retrying), then it will skip that
    // schedule. Cron workflow will not stop until it is terminated or cancelled (by returning temporal.CanceledError).
    // The cron spec is as following:
    // ┌───────────── minute (0 - 59)
    // │ ┌───────────── hour (0 - 23)
    // │ │ ┌───────────── day of the month (1 - 31)
    // │ │ │ ┌───────────── month (1 - 12)
    // │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
    // │ │ │ │ │
    // │ │ │ │ │
    // * * * * *
    CronSchedule string

    // Memo - Optional non-indexed info that will be shown in list workflow.
    Memo map[string]interface{}

    // SearchAttributes - Optional indexed info that can be used in query of List/Scan/Count workflow APIs (only
    // supported when Temporal server is using ElasticSearch). The key and value type must be registered on Temporal server side.
    // Use GetSearchAttributes API to get valid key and corresponding value type.
    SearchAttributes map[string]interface{}

    // ParentClosePolicy - Optional policy to decide what to do for the child.
    // Default is Terminate (if onboarded to this feature)
    ParentClosePolicy ParentClosePolicy
}

I'll have a look and make these changes on the .NET side to stay aligned with the Temporal clients.

We discussed having the temporal-proxy messages use the .NET class definitions for structures like this rather than having the .NET side have to implement the GOLANG types.
I'm closing this and we'll track these issues via #800


NUTCH-2668 Integrate OWASP dependency checks as ant target

add ant target "report-vulnerabilities" to generate report
initial suppression list to exclude false positives

To install the tool (eventually the installation can be automatized as ant target):
wget http://dl.bintray.com/jeremy-long/owasp/dependency-check-ant-3.3.2-release.zip
unzip -d ivy/ dependency-check-ant-3.3.2-release.zip

Run it
ant report-vulnerabilities

and open the reports build/dependency-check-report.html or build/dependency-check-vulnerability.html. There are false positives, the tool allows to maintain an suppression list which needs to be completed.

+1 Thanks @sebastian-nagel great job!


Get Stripe keys from environment file

Types of changes

[ ] Bug fix (a non-breaking change which fixes an issue)
[x] New feature (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
By default, get Stripe keys from .env file. This allows us to set Stripe production keys in environment variables when running the application, while the nuxt.config.ts file will only contain test keys (sk_test and pk_test).
Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes (if not applicable, please state why)

@mitjans can you update the readme as well please 🙏 thanks a lot! it's a great addition! 🚀

Done! Let me know if you'd change anything :)


Backers vs Contributors vs Sponsors

Describe the bug
This is current vis project backers. 3 people. Live:

https://opencollective.com/vis/backers.svg
Screenshot:

But there are 5 people and 1 organization who donated at https://opencollective.com/vis#contributors

Why? I want badge to list everybody who donated, but there are only 3 people. Web site doesn't explain much, but in the end I found explanation in https://github.com/opencollective/opencollective/wiki/Difference-between-Backers-and-Contributors which kind of say that contributors don't give money, but all 5 people donated, not 3. And the web site the link - https://opencollective.com/vis#contributors - is called "Contributors", nothing about backers at all. Something wrong with terminology there. It would be better to clarify the roles somehow on the website.

@techtonik you're absolutely right. There is even some cases of conflicting terminologies, which is an important issue that needs to be taken care of.

Why not to get backers right for the start? Calling contributors only those who contributed financially is unfair, and in the end the role of backer is very important - is to get people back secured while everybody can contribute on the frontline.

This is being tackled in:

https://github.com/opencollective/opencollective/issues/2116
https://github.com/opencollective/opencollective/issues/1969

Feel free to jump on these issues to make sure we're properly addressing your points.

Closing. If you want us to check some specific numbers, you can contact support. http://opencollective.com/support


Tabmenu: Hide resource names on smaller viewports; fixes #289

This PR hides resource names on smaller screen, on medium and larger names are shown.
Captures as a reference:
Medium & Larger:

A bit narrower than medium:

A bit more narrower:

Codecov Report

Merging #291 into dev will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##                dev     #291   +/-   ##
=========================================
  Coverage     78.85%   78.85%
  Complexity      232      232
=========================================
  Files            82       82
  Lines           752      752
=========================================
  Hits            593      593
  Misses          159      159

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a3aead3...57c8f6a. Read the comment docs.


Allow all express-fileupload configurations

Example when use limits
const serverConfig = createConfig({
  // ...
  server: {
    // ...
    upload: {
      parseNested: true,
      limits: {
        fileSize: 1024,
      },
      limitHandler: (req, res, next) => {
        return next(createHttpError(413, 'file too large'))
      }
    }
  }
}

throws TS2769 (No overload matches this call)
Restricted in https://github.com/RobinTail/express-zod-api/blob/master/src/config-type.ts#L78

Fair.
The limits should be there.
Not sure how exactly it will work with the limitHandler.
Need to check it.
Thank you for reporting this issue, @rottmann

parseNested can only be allowed if it does not conflict with JSON body parser.
I need to check it as well.

parseNested is always enabled by default, @rottmann
https://github.com/RobinTail/express-zod-api/blob/d1dc43e9ed22210fac9aa5f11264011e4a4af9bf/src/server.ts#L59

@rottmann , released v17.1.0

limits enabled,
limitError instead of limitHandler.

Thank you for the contribution.

Fixed status code from limitError in v17.1.1


Add version: Microsoft.PowerShell.Preview version <IP_ADDRESS>

Result: Installation Successful

Manifest
Add/Remove Programs

Name
PowerShell
PowerShell 7-preview-x64

Version
<IP_ADDRESS>
<IP_ADDRESS>

Publisher
Microsoft Corporation
Microsoft Corporation

ProductCode

{33E0910E-D1FB-4FB8-A72B-DF212502E4CF}

Auto-updated by vedantmgoyal2009/winget-pkgs-automation in workflow run 6666
Microsoft Reviewers: Open in CodeFlow

duplicated #99498?

@vedantmgoyal2009 Please mark this as draft and force-push a new package as it duplicates PR 99498


v0.17.1 is ready and tested. Do we want to add previsionary instances for minor upgrades?

Pro:

safer
we get previsionary instance XP now

Contra:

more work for spack devs
more work for spack users
higher time to market

According to the spack v0.17.0 release notes, I think it's safe to update without previsionary instances.
I opt for a fast update.


WebSocket connection to 'wss://f.xmrminingproxy.com:8181/' failed:

Hi @xcoders-hub,
Are you using a VPN or proxy whilst using this?
Thanks, Najm

Hi @xcoders-hub
I have changed the miner proxy, it should work now
If it still doesn't work, re-open this issue or create another
Thanks, Najm

Hello, I am having this problem similar to the one in the thread with the webminer, does anyone know how to solve it?

same issue

Fixed https://github.com/NajmAjmal/monero-webminer/pull/18


unsupervised image classification / clustering

can this repo be used to cluster images without any label information ?

The type of concept you are referring is called Auto-encoders. Here is the paper.
Yes GAN and Auto-encoders in some way have similar concepts, but Auto-encoders is different concept. A simple paper can be found here.
I hope you find what you are looking for. :)


Cloning a new repo from 0, error "smudge filter lfs failed"

I was cloning a repo from 0, and then i get this error
smudge filter lfs failed
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'
i have this on the log
git-lfs/1.0.1 (GitHub; darwin amd64; go 1.5.1)
git version 2.5.4 (Apple Git-61)

$ git-lfs smudge assets/caffe_model/20001/caffenet_train_20001.caffemodel
Error accessing media: assets/caffe_model/20001/caffenet_train_20001.caffemodel (3aa57f2061290d60381a063b5d9edaca8269984b592a2b2fec9c20e925cae6fe)

relation does not exist
goroutine 1 [running]:
github.com/github/git-lfs/lfs.Stack(0x0, 0x0, 0x0)
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/src/github.com/github/git-lfs/lfs/errors.go:557 +0x80
github.com/github/git-lfs/commands.logPanicToWriter(0xc641e8, 0xc8205f2000, 0xc64e90, 0xc8200e6c20)
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/src/github.com/github/git-lfs/commands/commands.go:184 +0xf7f
github.com/github/git-lfs/commands.logPanic(0xc64e90, 0xc8200e6c20, 0x0, 0x0)
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/src/github.com/github/git-lfs/commands/commands.go:148 +0x421
github.com/github/git-lfs/commands.handlePanic(0xc64e90, 0xc8200e6c20, 0x0, 0x0)
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/src/github.com/github/git-lfs/commands/commands.go:123 +0x4e
github.com/github/git-lfs/commands.LoggedError(0xc64e90, 0xc8200e6c20, 0x4e2900, 0x1e, 0xc820605ca8, 0x2, 0x2)
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/src/github.com/github/git-lfs/commands/commands.go:73 +0x82
github.com/github/git-lfs/commands.smudgeCommand(0x6baf20, 0xc820011930, 0x1, 0x1)
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/src/github.com/github/git-lfs/commands/command_smudge.go:80 +0xd89
github.com/github/git-lfs/vendor/_nuts/github.com/spf13/cobra.(*Command).execute(0x6baf20, 0xc820011880, 0x1, 0x1, 0x0, 0x0)
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/src/github.com/github/git-lfs/vendor/_nuts/github.com/spf13/cobra/command.go:477 +0x403
github.com/github/git-lfs/vendor/_nuts/github.com/spf13/cobra.(*Command).Execute(0x6bbc20, 0x0, 0x0)
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/src/github.com/github/git-lfs/vendor/_nuts/github.com/spf13/cobra/command.go:551 +0x46a
github.com/github/git-lfs/commands.Run()
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/src/github.com/github/git-lfs/commands/commands.go:88 +0x23
main.main()
	/private/tmp/git-lfs20151027-97833-bhsob1/git-lfs-1.0.1/git-lfs.go:34 +0x12e

ENV:
LocalWorkingDir=.
LocalGitDir=.git
LocalGitStorageDir=.git
LocalMediaDir=.git/lfs/objects
TempDir=.git/lfs/tmp
ConcurrentTransfers=3
BatchTransfer=true
GIT_DIR=.git
GIT_WORK_TREE=.

i don't know what happen or how i can  resolve this error.

relation does not exist

That looks like the object 3aa57f2061290d60381a063b5d9edaca8269984b592a2b2fec9c20e925cae6fe is not on your LFS server. If you're using GitHub, send me more details at https://github.com/contact, and I can help you out.

Closing this. Re-open if you have any other questions.


Determine TRISTAN Normalizations

Right now tristanFPC.py is binning and plotting cuts of data by hand in code units. Ideally, the process could be automated by de-normalizing the TRISTAN data, or automating a unit conversion. For example, we will want to bin electron and ion data with respect to their thermal velocities, so we will need to know the electron and ion thermal velocities in code units and to pass the velocity space extents and velocity space bins in terms of these (species-dependent) thermal velocities.
TRISTAN data comes with a param file for each output frame. Possible that all we need to do is just add reading the param file to the initialization.

Done!


/v1/keyset and MintKeyset should support input_fee_ppk

Minimal support for input_fee_ppk should return the value in MintKeys.

@callebtc is there documentation on this?


Add MBEDTLS_SELF_TEST check in header files

Add the MBEDTLS_SELF_TEST precompilation surrounding the self test functions,
which were missing this check in the header files. ( most of the header files were missing this check).
Addresses issue #971

Hi @andresag01 thanks for your comments.
I updated the style according to your comments.
Regarding your question on surrounding the extern "C" block, my answer was cleared after the push:

I thought about it, but then it is risky if some will add new public APIs which should not be replaced by alternative implementation, and miss that it's surrounded by the extern "C" {} block

Thanks for referring $660.

@andres thanks for your approval. ctr_drbg.h was not saved for some reason, so its changes were not pushed. I fixed it

@RonEld: Do you think these changes need to be backported? I think having unguarded declarations is not really a problem for GCC (not sure about Clang) and I think these are the only two compilers supported in mbed TLS 1.3 and 2.1, so perhaps its not worth backporting.

I agree, I don't think it's worth backporting this.
I will rebase to fix the conflict

@hanno-arm: We do want to guard the declaration of a function if there is no definition. Otherwise this will result in compilation problems with some toolchains. We have had serious problems with IAR and ARMCC for this in mbed OS: https://github.com/ARMmbed/mbedtls/issues/660
In fact, I think we will eventually add the other missing guards you mentioned eventually.

Regarding the case where full modules are disabled, I think currently the theory is that people who include headers should be like:
#if defined(MBEDTLS_AES_C)
#include "mbedtls/aes.h"
#endif

(at least that's what we do in the library, see eg here or here).
But perhaps it would be better to have the guards directly in the header files, in order to avoid making requirements on users.

@hanno-arm to take your example, if MBEDTLS_AES_C is not defined, then a drop in replacement is also not allowed, for that we have MBEDTLS_AES__ALT.
As @andresag01 mentioned, this is addressed in #660

Rebased to resolve conflicts

@andresag01 / @hanno-arm - Can you please re-review and approve, following the rebase?

This seems too trivial and minor to backport (as discussed above) so no back ports needed.

retest

Jenkins CI only failed the BSD timing test, which is a known problem, so as good as a pass.


keep old line breaker

[X] I have searched the issues of this repo and believe that this is not a duplicate.
[X] I have searched the documentation and believe that my question is not covered.

Feature Request

I'm using poetry on windows or Linux.
So I may lock deps both on windows and Linux. But the line endings of poetry.lock are different on Linux and windows.
I'm considering if poetry could check original line endings and keep it when generating a new lock file.
And I'm glad to implement it.

Or make it LF in any system to make sure it's same on all system.

A config option to always use one or the other would work, too. I always want LF endings, never CRLF, even on Windows.

Looks like this feature has already been added. so closing it.


NullReferenceException in SKCodec.Create()

With SkiaSharp HEAD, I am trying to create an SKBitmap from a System.Drawing.Bitmap instance like this:
public static SKBitmap SKBitmapFromBitmap(System.Drawing.Bitmap bitmap) {
    using (System.IO.MemoryStream memstr = new System.IO.MemoryStream()) {
        bitmap.Save(memstr, bitmap.RawFormat);
        using (var s = new SKManagedStream(memstr)) {
            using (var codec = SKCodec.Create(s)) {
                var info = codec.Info;
                var skbitmap = new SKBitmap(info.Width, info.Height, SKImageInfo.PlatformColorType, info.IsOpaque ? SKAlphaType.Opaque : SKAlphaType.Premul);
                IntPtr length;
                var result = codec.GetPixels(skbitmap.Info, skbitmap.GetPixels(out length));
                if (result == SKCodecResult.Success) {
                    return skbitmap;
                } else {
                    throw new ArgumentException();
                }
            }
        }
    }
}

But during the SKCodec.Create(s) call I am getting a NullReferenceException at SKCodec.cs line 142. Stepping through in the debugger, it appears GetObject<SKCodec>(...) is returning null. Note that stream.Handle is 0, presumably because it's a managed stream.
Am I doing something wrong in creating the SKBitmap? I'm basing my code off of the sample code BitmapDecoder.

@tdenniston Thanks for creating an issue. There is no real problem with your code except that you are reading a stream when the position is already at the end (after the bitmap.Save operation).
To fix this, just flush and rewind:
// ...
bitmap.Save(memstr, bitmap.RawFormat);
// rewind the stream
memstr.Flush();
memstr.Position = 0;
// ...

What is happening is that you are saving, and when the codec tries to read it, it is unable to get data since there is no more data after the current position. As a result, the codec is returned as null. Internally we assume it will never be null (which is wrong), and thus the NullReferenceException.
stream.Handle is 0 due to the fact that the SKCodec takes ownership of the stream in native code and then disposes and releases the memory. As a result, the handle is 0 or NULL.
I have made a small change in our code to prevent an exception, and it should just return null as expected. However, the correct way to use these types is to first rewind the MemoryStream. SKManagedStream will always have its own start at the position of the provided stream.

Improved the ownership management: https://github.com/mono/SkiaSharp/commit/8239f1670e1f733167e853ab1900f97629a7cdc5

Confirmed that adding the Flush() and Position = 0 fixes my issue. Thanks for responding so quickly!


Migrate off passport-openid

passport-openid is unmaintained and is using a vulnerable version of request
request  *
Severity: moderate
Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6
Depends on vulnerable versions of tough-cookie
No fix available
  openid  1.0.0 - 2.0.8
  Depends on vulnerable versions of request
  node_modules/openid
    passport-openid  >=0.4.0
    Depends on vulnerable versions of openid
    node_modules/passport-openid

Currently used in the Steam example.  openid-client is a potential replacement.

Fixed by: https://github.com/sahat/hackathon-starter/commit/638e9813a735e5007dadbcdd54c1fc34d171c962


TextFormField doesn't render its border as said in the docs.

I think there's a problem in the way TextFormField deals with its border.
As far as I understand from the docs, the border parameter will take an InputDecoration shape and will substitute the color and weight from the others parameters like enabledBorder and focusedBorder.
So if this is true, the following code should work:
TextFormField(
  decoration: InputDecoration(
    enabledBorder: const OutlineInputBorder(
      borderSide: const BorderSide(color: Colors.orange),
     ) ,
     focusedBorder: const OutlineInputBorder(
       borderSide: const BorderSide(color: Colors.white),
     ) ,
     border: OutlineInputBorder(
       borderRadius: BorderRadius.circular(100)
     )
  ),
)

In this code I define a border shape where corners are rounded and ONLY the color of the border changes if it's enabled or focused.
But in fact what I am seeing is that the shape in border is being totally ignored and the TextFormField is rendered as a square with orange or white colors, no rounded edges.
The only way I can get it to work is with this very repetitive code:
TextFormField(
  decoration: InputDecoration(
    enabledBorder: OutlineInputBorder(
	  borderSide: BorderSide(color: Colors.orange),
	  borderRadius: BorderRadius.circular(100)
	) ,
	focusedBorder: OutlineInputBorder(
	  borderSide: BorderSide(color: Colors.white),
	  borderRadius: BorderRadius.circular(100)
	) ,
	border: OutlineInputBorder(
	  borderRadius: BorderRadius.circular(100)
	)
  ),
)

Is this really the correct way to achieive this?
I tried @HansMuller short test case here: https://github.com/flutter/flutter/pull/19694#issuecomment-469376553 but since it doesn't have a rounded border it doesn't match what I see. I think the problem lies in borderRadius: BorderRadius.circular(100).

OutlineInputBorder's borderRadius parameter defaults to BorderRaidus.circular(4) so there's no avoiding providing that parameter for each InputDecoration border. This version of the test case appears to do what you want: https://gist.github.com/HansMuller/7b9c44ee67e9fa260678f423af6350bd, albeit with a smaller border radius.

That said, I can see two real problems here:

Using large border radius values (like 100) breaks the trig code that computes the focused border's gap.
I assume that what you're looking for is a "stadium" border outline. What we probably need for that case is a StadiumInputBorder class.

so there's no avoiding providing that parameter for each InputDecoration border.

Well this is the case then I think the docs should be modified, the way I understood them was that the border would be maintained as defined by boder and only color and minor things would change. Maybe what will change and what will not should be better documented?

Using large border radius values (like 100) breaks the trig code that computes the focused border's gap.

Yes, I saw some weird behavior using the label, so I am only using hint.

I assume that what you're looking for is a "stadium" border outline. What we probably need for that case is a StadiumInputBorder class.

Yes, I want a "stadium" border outline and created an issue for it here #28611 already.

I have same problem with TextField(), i think its a bug.
My InputDecoration code:
InputDecoration(
    labelText: 'Insert your name...',

    focusedBorder: OutlineInputBorder(
      borderSide: BorderSide(
        color: Colors.amberAccent,
        width: 3,
      ),
      borderRadius: const BorderRadius.all(Radius.circular(0)),
    ),

    errorBorder: OutlineInputBorder(
      borderSide: BorderSide(
        color: Colors.red,
        width: 3,
      ),
      borderRadius: const BorderRadius.all(Radius.circular(0)),
    ),

    enabledBorder: OutlineInputBorder(
      borderSide: BorderSide(
        color: Colors.indigo,
        width: 3,
      ),
      borderRadius: const BorderRadius.all(Radius.circular(0)),
    ),

    disabledBorder: OutlineInputBorder(
      borderSide: BorderSide(
        color: Colors.orange,
        width: 3,
      ),
      borderRadius: const BorderRadius.all(Radius.circular(0)),
    ),

    border: UnderlineInputBorder(),
),

According to code, there are some situations:

if your TextField's enabled: is false,
-- then work disabledBorder: ,
--- there is NO FOCUS! in this situation, because it is disabled.

if your TextField's enabled: is true,
-- then work enabledBorder: ,
--- there is a FOCUS! in this situation!
---- when i focus TextField, then work focusedBorder: .

if you have an error (or you fill errorText: in your TextField),
-- then work errorBorder: ,
--- there is a FOCUS!
---- when i focus TextField, i expect focusedBorder: will work again. BUT NOT WORKING
----- errorBorder: and border: work together. (border: only work in this situation.)

Yes, I would still like to see a StadiumInputBorder.

I have same problem with TextField(), i think its a bug.
My InputDecoration code:
InputDecoration(
    labelText: 'Insert your name...',

    focusedBorder: OutlineInputBorder(
      borderSide: BorderSide(
        color: Colors.amberAccent,
        width: 3,
      ),
      borderRadius: const BorderRadius.all(Radius.circular(0)),
    ),

    errorBorder: OutlineInputBorder(
      borderSide: BorderSide(
        color: Colors.red,
        width: 3,
      ),
      borderRadius: const BorderRadius.all(Radius.circular(0)),
    ),

    enabledBorder: OutlineInputBorder(
      borderSide: BorderSide(
        color: Colors.indigo,
        width: 3,
      ),
      borderRadius: const BorderRadius.all(Radius.circular(0)),
    ),

    disabledBorder: OutlineInputBorder(
      borderSide: BorderSide(
        color: Colors.blueGrey,
        width: 3,
      ),
      borderRadius: const BorderRadius.all(Radius.circular(0)),
    ),

    border: UnderlineInputBorder(),
),

According to code, there are some situations:
* if your TextField's `enabled:` is **_false_**,
  -- then work **`disabledBorder:`** ,
  --- there is **NO FOCUS!** in this situation, because it is disabled.

* if your TextField's `enabled:` is **_true_**,
  -- then work **`enabledBorder:`** ,
  --- there is a **FOCUS!**
  ---- when i focus TextField, then work **`focusedBorder:`** .

* if you have an error (or you fill `errorText:` in your TextField),
  -- then work **`errorBorder:`** ,
  --- there is a **FOCUS!**
  ---- when i focus TextField, **i expect `focusedBorder:` will work** again. BUT NOT WORKING
  ----- **`errorBorder:`** and **`border:`** work together. (`border:` **only work in this situation**.)

Advices:
1. InputDecoration class need an **`errorFocusedBorder:`** parameter and don't need `border:` parameter.
   It's just a mess.

2. `focusedBorder:` parameter should change or deprecate with **`enabledFocusedBorder:`** parameter.

This bug is still there.

I recently made some changes (https://github.com/flutter/flutter/pull/93933) that help eliminate the gap in the border that can be seen in this issue.  Still not a full fix for a stadium border though.

It's been 5 years since this issue came out and there is no solution. Why is there a contentPadding that works for both content AND label? How hard is it to add a new field labelPadding and work with that on the label, and use contentPadding only for content as it was suppose to? What is preventing this improvement, as it seems so easy to extend?
This is preventing the development of so many custom dropdowns.
I did not understand that idea of the "stadiumInputBorder", is there any solution?

Hi @ruialves35, welcome to Flutter. I will try to answer some of your questions:

In a nutshell, the code that draws a TextField's border is not simple, there are parts that are kinda more "low level", with pixel calculations (to draw the lines and curves) and all of the parameters to decide how to draw them, come from another "place". I am simplifying things here, just so you understand that's not a quick fix.
Stadium is the shape of a curved square, like a football stadium shape. The idea is to have a new and more customisable shape that we can plug-in there.
The reason why this has not being done yet is probably because there are other higher priority tasks do be done.
Be careful when asking questions regarding time estimates or why things are not done. They are not welcome in the community, they generate unnecessary friction with the Flutter team, as they have lots of stuff to do. This kind of question can get you banned, take a look at the community guidelines please.

Hi @ruialves35, welcome to Flutter. I will try to answer some of your questions:

In a nutshell, the code that draws a TextField's border is not simple, there are parts that are kinda more "low level", with pixel calculations (to draw the lines and curves) and all of the parameters to decide how to draw them, come from another "place". I am simplifying things here, just so you understand that's not a quick fix.
Stadium is the shape of a curved square, like a football stadium shape. The idea is to have a new and more customisable shape that we can plug-in there.
The reason why this has not being done yet is probably because there are other higher priority tasks do be done.
Be careful when asking questions regarding time estimates or why things are not done. They are not welcome in the community, they generate unnecessary friction with the Flutter team, as they have lots of stuff to do. This kind of question can get you banned, take a look at the community guidelines please.

Thank you in advance, I completely understand your points. My question was more regarding the priority of this issue and if anyone is taking care of it, as nothing was said about that and there were already some attempts on fixing this, so we don't know if this will be done this year or it will be Open for the next 5 again... :(
Furthermore, since you have the Center alignment and something related, it felt like extending that to customized pixels (and not only start and center) would be Nice

Came across this in old issue backlog review.
The updates in #93933 made some improvements here. 👍
There is still room to improve though. Here is an updated code sample and clip of the behavior. Any more clarification on the desired behavior is welcome.
Code
```dart
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: MyHome(),
);
}
}
class MyHome extends StatefulWidget {
@override
State createState() => _MyHomeState();
}
class _MyHomeState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[400],
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
const Spacer(flex: 2),
TextFormField(
initialValue: 'Wrong',
decoration: InputDecoration(
enabledBorder: const OutlineInputBorder(
borderSide: BorderSide(color: Colors.orange),
),
focusedBorder: const OutlineInputBorder(
borderSide: BorderSide(color: Colors.white),
),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(100)),
),
),
const Spacer(),
TextFormField(
initialValue: 'Better, but difficult',
decoration: InputDecoration(
enabledBorder: OutlineInputBorder(
borderSide: const BorderSide(color: Colors.orange),
borderRadius: BorderRadius.circular(100),
),
focusedBorder: OutlineInputBorder(
borderSide: const BorderSide(color: Colors.white),
borderRadius: BorderRadius.circular(100),
),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(100),
),
),
),
const Spacer(flex: 2)
],
),
),
);
}
}
</details>

https://github.com/user-attachments/assets/36d3f15f-bdde-485e-869f-58374e6da798

Here is my implementation for StadiumInputBorder incase anyone has urgent need for it, pending when one is merged into the framework
@immutable
class StadiumInputBorder extends InputBorder {
  const StadiumInputBorder({
    super.borderSide = const BorderSide(),
  });

  @override
  bool get isOutline => true;

  @override
  StadiumInputBorder copyWith({BorderSide? borderSide}) {
    return StadiumInputBorder(borderSide: borderSide ?? this.borderSide);
  }

  @override
  EdgeInsetsGeometry get dimensions => EdgeInsets.all(borderSide.width);

  @override
  ShapeBorder scale(double t) => StadiumBorder(side: borderSide.scale(t));

  @override
  Path getInnerPath(Rect rect, {TextDirection? textDirection}) {
    final Radius radius = Radius.circular(rect.shortestSide / 2.0);
    final RRect borderRect = RRect.fromRectAndRadius(rect, radius);
    final RRect adjustedRect = borderRect.deflate(borderSide.strokeInset);
    return Path()..addRRect(adjustedRect);
  }

  @override
  Path getOuterPath(Rect rect, {TextDirection? textDirection}) {
    final Radius radius = Radius.circular(rect.shortestSide / 2.0);
    return Path()..addRRect(RRect.fromRectAndRadius(rect, radius));
  }

  @override
  void paint(
    Canvas canvas,
    Rect rect, {
    double? gapStart,
    double gapExtent = 0.0,
    double gapPercentage = 0.0,
    TextDirection? textDirection,
  }) {
    switch (borderSide.style) {
      case BorderStyle.none:
        break;
      case BorderStyle.solid:
        final Radius radius = Radius.circular(rect.shortestSide / 2);
        final RRect borderRect = RRect.fromRectAndRadius(rect, radius);
        canvas.drawRRect(borderRect.inflate(borderSide.strokeOffset / 2), borderSide.toPaint());
    }
  }
}


Compile python requirements

Automated changes by create-pull-request GitHub action

Really confused about this failing check
Fails here. This error can arise not only if the function doesn't exist, but in the case of the crosstab function if the query inside throws an error or returns a result with an unexpected number of columns. If it's the former, the error simply is sort of lost it seems.
Here's the call to create the extension if it doesn't exist (to be able to use crosstab at all).
OKAY WOW - did a bunch of poking around, and turns out that the tablefunc extension was installed on "main"... meaning that the function has schema "main" and therefor isn't showing up on searchpaths for dev branches. Going to install on public


Change defaults of an 3rd party attrs class

I'm using the grafanalib library which uses attrs extensively and one of the class looks something like this
@attr.s
class Target(object):
    intervalFactor = attr.ib(default=2)
...

I want to change the default of intervalFactor to 1. I could specify 1 each time in the constructor but that's very tedious when I have to do it each time.
I tried subclassing it and playing with __attrs_pre_init__ , __attrs_post_init__ , and __attrs_init__  but could not find any combination that gave me the desired behavior.
I've also looked at using attr.evolve like attrs.evolve(default_target, myarg1, myarg2, ...) where default_target is a Target instance with the default values set. This works but witing attrs.evolve(default_target each time in lieu of the constructor is tedious.
I could wrap it in a helper function, like
def create_target(*args, **kwargs) -> Target:
  return attrs.evolve(default_target, *args, **kwargs)

The problem with this is that I lose the IDE (PyCharm) autocompletion that I would get with writing attrs.evolve(...) manually.
I tried setting the __signature__ manually by doing create_target.__signature = inspect.signature(Target.__init__) but this didn't give me the correct tooltip in the editor model.
Any help would be greatly appreciated.
** On a related note**
How is attrs.evolve able to provide the right auto-complete suggestions in PyCharm? Is it because of the built-in integration with PyCharm?

I'm using the grafanalib library which uses attrs extensively and one of the class looks something like this
@attr.s
class Target(object):
    intervalFactor = attr.ib(default=2)
...

This should work:
@attr.define
class MyTarget(Target):
    intervalFactor = attr.field(default=1)

The only downside is that the order of the arguments changes. But that shouldn't be a problem if you don't want to pass it anyway.

** On a related note**
How is attrs.evolve able to provide the right auto-complete suggestions in PyCharm? Is it because of the built-in integration with PyCharm?

I think so. PyCharm has added attrs support a long time ago so I wouldn't be surprised by advanced features.

Hi @hynek ,
Thank you for your response.
How would you handle cases where the field specifies other parameters like validator, converter, etc.
In your suggestion, I would need to copy the full declaration of the field, including the other parameters. That introduces some risk since my declaration and the source can go out of sync.
Is there another way where I can be agnostic of the other field parameters and override only the default?

That seems like a duplicate of #637
You can somewhat work around it by introspecting Target using attr.fields and use the data from there.
However, if you just want to stop passing parameters to a class, I'd suggest to write a classmethod or a function and be done with it:
def make_target() -> Target:
    return Target(intervalFactor=1)

Thanks, I didn't know about #637
A hacky solution I came up with is
def new_attrib(attrib: attr.Attribute, new_default: Any):
    attrib = attrib.evolve(default=new_default)

    attr_dict = {
        name: getattr(attrib, name) if name != "metadata" else dict(attrib.metadata)
        for name in attrib.__slots__
        if name not in ("name", "eq_key", "order_key", "inherited")
    }
    return attr.ib(**attr_dict)

@attr.s
class DefaultTarget(Target):
    intervalFactor = new_attrib(attr.fields(Target).intervalFactor, 1)

Unfortunately, I can't assign intervalFactor to Attribute directly. Instead, I have to go through attr.ib, which produces a _CountingAttr. Is there a cleaner way to do this than what I did?

I am also looking for a solution to overwrite default values. The above seems to work but would be cool if it was part of the attrs library.

Since Attribute has an evolve() method I think it would make sense to add a .to_field() too.

@hynek Would .to_field be covered in #637 or is this now a separate ticket for that?

I guess?
I'm not sure whether this wouldn't be too clunky:
attr.fields(Target).intervalFactor.evolve(default=1).to_field()

OTOH it's the least magical way to achieve that.

Would sure be nice to support
@attr.s
class DefaultTarget(Target):
     intervalFactor = Target.intervalFactor.evolve(default=1)

Closing in favor of #637, please subscribe there if you want to be kept up-to-date.


Bugged Add for OffsetDateTime

Using time = "0.2.13", the following panics.
use time::{
    OffsetDateTime, NumericalStdDurationShort,
};

fn main() {
    let now = OffsetDateTime::now_utc();
    let dur = 100.milliseconds();

    let later = now + dur;
    let delta = later - now;

    assert_eq!(delta, dur);
}

thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `Duration { seconds: 0, nanoseconds: 0 }`,
 right: `100ms`', src/main.rs:12:5

In case this matters, here is my current time:
[src/main.rs:10] now = OffsetDateTime {
    utc_datetime: PrimitiveDateTime {
        date: Date {
            year: 2020,
            ordinal: 123,
        },
        time: Time {
            hour: 17,
            minute: 37,
            second: 42,
            nanosecond: 840707054,
        },
    },
    offset: UtcOffset {
        seconds: 0,
    },
}

Moreover it seems like the Add<time::Duration> for OffsetDateTime is fine.

Confirmed and investigating.

Looks like I neglected to take subsecond values into account when adding core::time::Duration. This should be fixed in the latest commit. I'll publish as v0.2.14 as soon as CI passes.

Released.


Inherit overflow style for confirmation menu

Signed-off-by: Mykola Mandra<EMAIL_ADDRESS>

seems odd to inherit rather than specify what the overflow behaviour here should be.  but i assume this is an improvement!  merging


[Feature]: Input_datetime card

Requirements

[X] I have updated Mushroom to the latest available version
[X] I did a search to see if there is a similar issue or if a pull request is open.

Is your feature request related to a problem?
I'm missing a input_datetime - card (similar to input_select - card) to select a certain starting/ending time for a automation. So I'm not able to create a unified dashboard.

Describe the solution you'd like
Create a input_datetime card.
Describe alternatives you've considered
No response
Additional context
No response

yeah I would really love to be able to click on + and - buttons to change the time of an input_datetime helper. Same functionality as htmltiger/numberbox-card but with mushroom card style and customizations.

Any chance this will be implemented?

+1


Accelerate Goldilocks and Poseidon by AVX

reference impls: https://github.com/0xPolygonHermez/goldilocks/blob/master/src/poseidon_goldilocks_avx512.hpp

Boojam also supports AVX512, https://github.com/matter-labs/era-boojum/blob/main/src/field/goldilocks/avx512_impl.rs

AVX2 supported by #155 .  The performance looks same as WO avx2. Meanwhile, we have tested Plonky2,  native prover is faster than avx2's.

Avx512 suppoted by #169


write midi file error

Writing file out/samples/output_0.mid
Traceback (most recent call last):
  File "generate.py", line 153, in <module>
    main()
  File "generate.py", line 150, in main
    write_file('output', generate(models, args.bars, styles))
  File "generate.py", line 134, in write_file
    midi.write_midifile(fpath, mf)
  File "/usr/local/python3/lib/python3.5/site-packages/midi/fileio.py", line 169, in write_midifile
    return write_midifile(out,pattern)
  File "/usr/local/python3/lib/python3.5/site-packages/midi/fileio.py", line 171, in write_midifile
    return writer.write(pattern)
  File "/usr/local/python3/lib/python3.5/site-packages/midi/fileio.py", line 105, in write
    self.write_track(track)
  File "/usr/local/python3/lib/python3.5/site-packages/midi/fileio.py", line 122, in write_track
    buf.extend(self.encode_midi_event(event))
  File "/usr/local/python3/lib/python3.5/site-packages/midi/fileio.py", line 161, in encode_midi_event
    ret.extend(event.data)
ValueError: byte must be in range(0, 256)

not every time, but very often
python3.5, tensorflow-gpu 1.2

i didn't load model correctly, maybe it cause this error, pls close this issue
by the way, can you tell me how to select or produce training data? @calclavia

We should have referred to our dataset in our paper.

i didn't load model correctly, maybe it cause this error, pls close this issue
by the way, can you tell me how to select or produce training data? @calclavia

i have met the same problem, so how to correctly load the model? Thank you!


Fix spelling in Transactions section

I think this PR is just against your own master branch?  doswelleth/arweave-js
you'll need to make a PR against ArweaveTeam/arweave-js I think?

🤦♂ Yep. Thanks!


Add cluster proxy configuration

Signed-off-by: Rastislav Wagner<EMAIL_ADDRESS>

included in https://github.com/stolostron/console/pull/1247


not working with compe?

hey, thanks for the plugin!
I saw your config  https://github.com/kristijanhusak/neovim-config/blob/bleeding-edge/nvim/lua/partials/completion.lua#L18 and tried to do the same:
return function()
    require "compe".setup {
        enabled = true,
        autocomplete = true,
        debug = false,
        min_length = 1,
        preselect = "enable",
        throttle_time = 80,
        source_timeout = 200,
        incomplete_delay = 400,
        max_abbr_width = 100,
        max_kind_width = 100,
        max_menu_width = 100,
        documentation = true,
        allow_prefix_unmatch = true,
        source = {
            path = {menu = " "},
            buffer = {menu = " "},
            vsnip = {menu = " "},
            nvim_lsp = {menu = "  "},
            nvim_lua = {menu = " "},
            spell = true,
            calc = true,
            tags = true,
            -- omni = true,
            vim_dadbod_completion = true,
            treesitter = true
        }
    }
    map("i", "<cr>", 'compe#confirm("<cr>")', {silent = true, expr = true})
    -- map("i", "<s-cr>", "compe#complete()", {silent = true, expr = true})
end

but with that when typing in query buffer i see nothing from dadbod completion :(

Did you set up g:db or b:db variable for vim-dadbod?

nope, setting up db through env vars

Are you using vim-dadbod-ui  ?

yes

Is everything working fine in dadbod ui? Do you see tables and everything?

post me your compe config.

fist comment?

Sorry, didn't saw it. I see that you use sqlite. It is not so well supported. It autocompletes only reserved words and tables.
I just pushed a fix, it should be working now.

Subscribe to this issue if you want to follow updates on sqlite. I plan to add a bit better support (table + column completion), but I'm not sure when I'll get to it.

thanks! better now


props type may needs to be wrapped with UnwrapRef

Version
3.2.21
Reproduction link
sfc.vuejs.org/
Steps to reproduce

Copy reproduction code to VSCode
What is expected?
props.foo.bar should be string
What is actually happening?
props.foo.bar is Ref<string>

You should just not type your prop with Ref<string> in the first place, as you receive an unwrapped object.

How about using UnwrapRef to wrap props to avoid this problem? Then, we can get correct type.

I don't see a problem. If you correctly type your props like this, there's not problem:
type Foo = { bar: string };

reactive data is unwrapped, so the interface of the object it returns does not contain Ref - why do you want to use it, then?

Yes, I can indeed modify props type to solve this problem.
However, this is a bit counter-intuitive, I think Vue should automatically unwrap for props. Just like reactive will automatically unwrap.

The whole point of reactive() unwrapping nested refs (insofar as types are concerned is so you can have a type like { bar: string} and don't need a type of {bar: Ref<string>}
Your component clearly expects prop foo containing an object with an interface of {bar: string}, because you expect that you can do:
props.foo.bar // => string

So why do you want to type the props as { bar: Ref<string>} and then have it implicitly unwrapped?
Furthermore, if we did always unwrap all props, we could not correctly type a propreceiveing a plain object, shallowReactive or shallowRef containing a nested ref - as those would not be unwrapped at runtime.

I see. Thank you very much.


minor refactoring

Just some minor refactoring of the code for cleanliness

This would have a negative effect on performance and my overall mood. Denied.

Please consider re opening this. This adds a much cleaner and simpler interface

+1 new interface is more webscale for my Go microservice framework API

Please benchmark this for comparison and report back.

I'm happy to report Golang is still webscale.
https://notr-bucket.s3.amazonaws.com/911a368e-f8c2-48b5-8b0c-ea678f994d71


Update to Got 10

Fixes #37
Fixes #22

IssueHunt Summary

Referenced issues
This pull request has been submitted to:

#22: Pagination support?

IssueHunt has been backed by the following sponsors. Become a sponsor

stream interface is throwing 403 forbidden for some reason...

Nice work 👍


Metrics over table

Add metrics:
table.session.query.latency
table.session.query.errs
table.session.query.attempts
table.session.tx.latency
table.session.tx.errs
table.session.tx.attempts

Pull request type
Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?
Issue Number: 1318
What is the new behavior?
Add metrics over table.Do and tabel.DoTx similar to query.Do and query.DoTx

Codecov Report
Attention: Patch coverage is 0% with 25 lines in your changes missing coverage. Please review.

Project coverage is 43.68%. Comparing base (de97000) to head (205be87).

Files
Patch %
Lines

metrics/table.go
0.00%
25 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1328      +/-   ##
==========================================
+ Coverage   42.05%   43.68%   +1.62%
==========================================
  Files         321      258      -63
  Lines       34137    24663    -9474
==========================================
- Hits        14357    10773    -3584
+ Misses      19310    13446    -5864
+ Partials      470      444      -26

Flag
Coverage Δ

go-1.20.x
43.68% <0.00%> (-0.71%)
:arrow_down:

go-1.21.x
?

go-1.22.x
?

macOS
43.68% <0.00%> (+2.14%)
:arrow_up:

ubuntu
?

unit
43.68% <0.00%> (+1.62%)
:arrow_up:

windows
?

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

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


[bug] The addon  management page displays the deleted addon

Describe the bug

After you delete an addon  from the addon repository, the addon management page can also display the addon.
To Reproduce

1、add addon registry
2、push an addon
3、delete the addon
4、see error
Expected behavior

Screenshots

KubeVela Version

CLI Version: 1.7.4
Core Version: 1.7.4
GitRevision: git-f3cdbcf2
GolangVersion: go1.19.5
Cluster information

1.21
Additional context

/assign


Adds Regional data

This PR adds all tables in Temoa that require unique location indices (along with the rest of the minor tables). Once this PR is merged, PyGenesys can be used to generate input files in earnest.
How to review this PR:

Some data files are included in this PR and were added to library.py. These files can be safely ignored.
Feel free to review the rest of the repository -- make note of changes you would like to see.
Please make a new issue for each change you made note of.
Please DO approve this PR if you are able to install pygenesys according to the README.md file and execute the following from the top level of the pygenesys repo:

genesys --infile examples/example_inputfile.py

Hello @samgdotson! Thanks for opening this PR.  The SQL commands in db_creator.py are simply too long in many cases. Thus the many many "errors." I don't have a good solution for this at the moment and it doesn't conflict with functionality, so I will leave it.
The PEP8 errors in the example input file example_inputfile.py should also be ignored. I am writing that file as though a new user of PyGenesys were writing it. See the docstring at the top of the file for more details.

The updates look good, I was able to get everything to work with the pip install -e . setup, but the pip install . method doesn't like the example input code. I've also tested just running a jupyter notebook with some of the functions with that setup and it's not able to find them.

@nsryan2 if you're able to install it with pip install -e . then that's fine. Make an issue and I will look at it later (or you can work on it). I got the following error code:
Successfully built pygenesys
Installing collected packages: pygenesys
  Attempting uninstall: pygenesys
    Found existing installation: pygenesys 0.1.dev0
    Uninstalling pygenesys-0.1.dev0:
      Successfully uninstalled pygenesys-0.1.dev0
  WARNING: The script genesys is installed in '/home/sdotson/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pygenesys-0.1.dev0

So it's likely not being added to your PYTHONPATH. Which I'm not sure how to fix immediately (hence, create an issue).

I was able to run the example input file and get everything set up using pip install -e . one thing I would add, I'm doing this on a windows machine, and everything worked using anaconda powershell prompt except I had to delete coincbc from the environment.yml file in the temoa repo before I could create the environment. this might be something worth mentioning in the readme, but it's overall a temoa not pygenesys issue. still, could increase accessibility for windows users.

@npanczyk @nsryan2 if you were able to run it, feel free to approve and merge the PR whenever! If you think something could be added or improved, please make a new issue!


automatic_mask_generator to the whole video

btw, how to generate all masks across the whole sequence automatically? That is to have a video version of  automatic_mask_generator.


Upgrade Docker Compose to v1.3.0

Thank you for the contribution. It was merged directly as 5ab3ed5d2445555bfbb5e876214157c86025a04b to keep commit history cleaner. Your contribution is still credited to you.


Error in cli

node index.js -i<PHONE_NUMBER>38503680 -s -p (https://twitter.com/ARanganathan72/status/924574125938503680)
TypeError: Cannot read property 'author_id' of undefined
I am on latest main branch.
With dev=true

And this error comes for older than 7 days tweet

How long is this thread??


pkg/textparse: handle trailing labels comma

@mwitkow

Nice, thanks!

I don't think that's all of it.
The case in:
https://github.com/prometheus/prometheus/issues/2751#issuecomment-303033467
doesn't have ,}
But it does address the internal output I sent you.
improbable_persistence_snapshot_load_latency_milliseconds_bucket{le="1.0",} 0.0

Let's merge this one in and I'll happily test it :)

This fixes our runtime problem! thx!


BRS-924: Missing text on park edit page

Jira Ticket:
BRS-924
Jira Ticket URL:
https://bcparksdigital.atlassian.net/browse/BRS-924
Description:
Add missing text from park edit page - Jess's First PR!

UM, you didn't write accompanying documentation for this code! REJECTED!
JK

Documentation on it's way! ;)


add installation section in readme

Hello,
Just adding an installation section in the README to ease installation when coming to the repository.
I noticed that other repositories don't have the installation section either, maybe it was a choice to leave it out. In this case, feel free to close this PR.
Thanks a lot for the work you've done on Solid.js, I've been loving it 🙌

No you are absolutely right. It's such a simple task often forget to add it in haste.


Allow unbounded recursion and remove double parsing json

Reasoning: we trust Cargo output and fixes #215

:+1: this works great for me, thank you very much


Seems to create never ending writes to manifest_tmp.json

With this plugin installed, streamdeck.exe seems to constantly write to manifest_tmp.json, presumably setting and re-setting the muted state over and over again.

Upon uninstalling this particular plugin, the never ending writes cease. I also tested with only this plugin installed and the same behaviour occurred.
Windows 10 pro
SD software <IP_ADDRESS>98
Mic Mute version 1.1

@Timac is it expected that doing no-op SetState calls spam the disk a bunch?

and, what exactly do you mean by 'constantly'? the plugin only wakes up 4 times a second

@Timac is it expected that doing no-op SetState calls spam the disk a bunch?

Calling SetState with the current state will indeed save the profile to disk. While this could be optimized, this should only cause one write to disk and not multiple writes.

Thanks - I found a callback API, so 2.0 will address this by not polling.


How does one submit multiple IDs?

I've been tinkering with the 2.0 API and the docs (https://ores.wmflabs.org/v2/#!/scoring/get_v2_scores_context_model) suggest that multiple IDs at a time is a-ok, but I can't work out the format I'm meant to be submitting them in - a JSON blob, comma-separated..?

Hey Oliver, If you mean to the service, Something like https://ores.wikimedia.org/v2/scores/enwiki/?models=damaging&revids=724030089 would work (I guess it's not very RESTful but okay-ish)

(I forgot: https://ores.wikimedia.org/v2/scores/enwiki/?models=damaging|goodfaith&revids=724030089|122233 )

Ahh, pipe-separated; thanks! I can work with that.


0.15.0 - unknown flag: --allow-break-the-glass

After todays 0.15.0 release, upgrading from 0.12.0 I get unknown flag: --allow-break-the-glass in my logs
Same as https://github.com/weaveworks/tf-controller/issues/635
Downgrading back to 0.12.0 is my temporary solution.

Could you please check values in your HelmRelease?
The controller and runner images must also be v0.15.0

Ahh I see, I did have both the image and runner image still on v0.14.0. My mistake!


[OCP3] Cachito: report error as singleline

Errors shouldn't be multiline for easier post processing
CLOUDBLD-7342
Signed-off-by: Martin Basti<EMAIL_ADDRESS>Maintainers will complete the following section
Backport https://github.com/containerbuildsystem/atomic-reactor/pull/1660

no release notes, minor change in error msg


Handling the profile popover expand going off-screen when badges are loaded

I have a piece of feedback on how the badges are rendered in the profile popover. It seems they are always fetched at runtime, which makes the popover expand after appearing, sometimes causing the popover to appear partially off-screen. This happens with the user attributes plugin as well, though closing and reopening the popover corrects the issue because the plugin caches the attributes, and is able to render them as soon as the popover opens the second time.
However, with the badges, nothing is cached and it will reload the badges. What do you think about including a short duration cache to allow this "second load" of the popover be corrected, as it would be with the user attributes plugin?

Solved at e5cce6a46453112a4e8093fcd973cce89865368d
The final solution was to reserve enough space while loading.


Use a more canonical project structure

Go tools seem to have a "cmd/" directory for commands ("graph" in our case, more to come), and then other directories for library-ish code.
Follow the best practices, and prepare for adding the "table" command.

See https://github.com/golang-standards/project-layout


The time-pick filter tip showing time in wrong time zone.

material-react-table version
N/A
react & react-dom versions
N/A
Describe the bug and the steps to reproduce it
https://www.material-react-table.com/docs/examples/advanced
Check the example，what is shown is GMT time.

Minimal, Reproducible Example - (Optional, but Recommended)
N/A
Screenshots or Videos (Optional)
No response
Do you intend to try to help solve this bug with your own PR?
None
Terms

[X] I understand that if my bug cannot be reliably reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.

This is up to your to specify in the mui date localization providers though, right? How would this be a bug with MRT?

I tried, setting the time zone via dayjs, it didn't display correctly.
Or maybe my settings are incorrect？
import utc from 'dayjs/plugin/utc';
import timezone from "dayjs/plugin/timezone";

dayjs.extend(utc);
dayjs.extend(timezone);

function TableTest(): React.JSX.Element  {
      <LocalizationProvider dateAdapter={AdapterDayjs}>
          <MRT_Table>...
      </LocalizationProvider>
}

Also by setting the cell's  muiFilterDateTimePickerProps, it still didn't work.
  const columns = useMemo<MRTColumnDef<Data>[]>(
  () => [
    {
      accessorKey: 'timestamp',
      header: t('Time'),
      Cell: ({ cell }) => {
        const timestamp = cell.getValue<string>();
        const localTime = new Date(timestamp).toLocaleString();
        return <span>{localTime}</span>;
      },
      muiFilterDateTimePickerProps: {
        ampm: false,
        timezones: 'America/New_York',
      },
    },
  ]

Also, should the local time be displayed by default?
The GMT time shown in the example is also inconsistent with convention.

Found these issues：
https://github.com/iamkun/dayjs/issues/268
https://github.com/iamkun/dayjs/issues/1915
Should dayjs.format be called here instead of toString?
https://github.com/KevinVandy/material-react-table/blob/317a87cf4da853b2078400dd3918ce0b493a4fb9/packages/material-react-table/src/components/head/MRT_TableHeadCellFilterLabel.tsx#L94


FATAL: Failed to bump version using "auto": object not found

Hi! I'm using jx-release-version version 2.4.2 on ubuntu to get next tag and push to Gitlab. It's been working fine for me but suddenly I started seeing this error:
FATAL: Failed to bump version using "auto": object not found
I've never encountered this error before and I'm not sure why it's happening. Here is the sequence of commands I run:
git fetch origin 'refs/tags/*:refs/tags/*'
tag=$(./jx-release-version)

can you please run it again with the -debug flag - or with the JX_LOG_LEVEL env var set to debug - and copy/paste the log here? thanks

@vbehar I did not expect a super quick response! I needed to resolve quickly so I deleted all the tags in the repo and ran x-release-version and that resolved the issue.
I still have no clue what went wrong and why that error was returned. I'm unable to reproduce after deleting all the tags and starting over.

ok, I've just added more context to our error messages in #79 so if you get the error again, it should be more explicit about which tag can't be found.
I'm closing this issue for now, but if you get the error again please feel free to re-open it

@vbehar I ran into this issue again. Here is the log with debug flag
From https://gitlab...

[new tag]         0.0.4      -> 0.0.4
[new tag]         0.0.5      -> 0.0.5
[new tag]         0.0.6      -> 0.0.6
[new tag]         0.0.7      -> 0.0.7
[new tag]         0.0.8      -> 0.0.8
DEBUG: jx-release-version 2.4.3 running in debug mode in /builds/...
DEBUG: Using "auto" version reader (with "")
DEBUG: Trying to read the previous version from the git tags first...
DEBUG: Found 8 semver tags with pattern ""
DEBUG: Previous version: 0.0.8
DEBUG: Using "auto" version bumper (with "")
DEBUG: Trying to bump the version using semantic release first...
 I don't know how that's possible tho. I typically commit from the command line on my mac using git commit -m "message"
Take a look at this:

All commit messages seem to have a line break except for the last one:

@vbehar any thoughts on the above? I've been deleting all the tags when I encounter the issue and I think that has been fixing it because jx-release-version does not need to look at previous tags in this case so it's not running into the issue with the iterator but I'm looking for a more long term solution.
I'm going to try updating the commit message that is missing a line break to add a line break at the end and see if that works as well. But again, a long term solution will be necessary either way. Thanks much!
Also, I'm not able to reopen a closed issue. can you do that on your end?

ok I'm re-opening it, I'll have a look tomorrow

ok it should be good now, the new logic won't fail if it can't retrieve/decode a commit, instead it will just skip it


Graphical sudoku input

Adds the ability to create the starting sudoku using the grid.
There are no tests since the functionality is almost exclusively in gui.

Will do, thanks for good input!

Prior notices have been taken into consideration. I reworked the input mode identifier, not perfect but probably good for now.


Bump dependencies

Update all dependencies to the latest version (npm-check to the rescue).
This also removes the history module as it doesn't seem to be used anywhere.

Hello @lgeiger! It has been a really long time since this PR (my fault) was opened. I've been working on version 2 which is a complete rewrite and I've updated all the dependencies. Thank you for opening this PR though - I'll try to be more responsive to PRs!


Does the "accept" actually work?

It doesn't seem to. If so, is it comma-separated? How do I limit the files I can select, in the browser file picker?

Yes it does - I have tried it on the latest version to be sure. It simply provides such configuration to the created input element (you can find this element in the body to check it) so you can follow input accept attribute rules.
The accept parameter only defines the input element. If you use a file extension limit and assign validateExtension: true then the basic validation of extension performs. It simply parse a list of extensions (comma-separated) and tries to find the uploaded one.


Feature suggestion - serializable errors

One thing that other validation libraries (e.g. Marshmallow, Cerberus, Django Rest Framework's serializers etc.) often provide, is errors in a format that is itself easily serializable (e.g. a dict). For example:
{
    'email': ['"invalid" is not a valid email address.'],
    'name': ['Missing data for required field.']
}

It would be nice if jsonschema would provide errors in a form that can be immediately serialized and sent as part of a 400 response, etc.

I have written a function for producing a serializable list from iter_errors, as a sort of proof of concept:
def serialize_error(error):
    return {
        "absolute_path": list(error.absolute_path),
        "absolute_schema_path": list(error.absolute_schema_path),
        "message": error.message,
    }

def process_errors(iter_errors):
    return [serialize_error(err) for err in iter_errors]

I think something equivalent to this would be a reasonable default.

Hi, thanks!
You likely would be interested in weighing in on
https://github.com/json-schema-org/json-schema-spec/issues/643
When it lands, support for it will certainly land here.
On Wed, Oct 3, 2018, 08:48 Sam Frances<EMAIL_ADDRESS>wrote:

I have written a function for producing a serializable list from
iter_errors, as a sort of proof of concept:
def serialize_error(error):
return {
"absolute_path": list(error.absolute_path),
"absolute_schema_path": list(error.absolute_schema_path),
"message": error.message,
}
def process_errors(iter_errors):
return [serialize_error(err) for err in iter_errors]
I think something equivalent to this would be a reasonable default.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Julian/jsonschema/issues/473#issuecomment-426625030,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAUIXsJ2i92GgEDshuPfXKBrCsq1Bmksks5uhLIsgaJpZM4XD-to
.

Ah, ok. I wondered if there was something on this in the spec, but I couldn't find anything. I'll direct my attention there then.
Many thanks.


Add copyDirectory', etc.

I have found myself needing a copyDirectory' that tracks the entire directory as a dependency and copies it somewhere (perhaps using parallelism to improve copy performance). Is there a reason not to add it?

I know this can be done with clever use of alternative and some rules that copy single files, but that is a very messy way to accomplish this indeed.

Here's my version. It's not too hard to hand-roll, but it just seems like something that would already be provided.
copyDir :: FilePath -> FilePath -> Action ()
copyDir src dest = do
  liftIO $ Dir.createDirectoryIfMissing True dest
  files <- getDirectoryFiles src ["*"]
  forM_ files $ \file-> copyFileChanged (src</>file) (dest</>file)
  dirs <- getDirectoryDirs src
  forM_ dirs $ \dir-> copyDir (src</>dir) (dest</>dir)

A better implementation would be roughly (untested):
copyDir src dest = do
    getDirectoryFiles src ["//*"]
    forM_ files $ \file -> copyFileChanged (src </> file) (dest </> file)

However, I wonder if this will be used safely. With copyFile' usually there is an expectation that the output will be the thing that this rule is producing. However, with this rule, you are producing a directory full of stuff and there's nothing really about the output in the rule. If you delete dest/foo nothing will notice and it won't rebuild. It's fine if you then tar up the output, and the .tar is the thing your rule produces, but in essence the dest directory ends up being temporary. How are you using it?

Good intuition. I am using it to create a temporary directory where I tweak files before building them. I want the temporary directory to depend on its origin, but the output of the rule is further down the line. Does your implementation work when the destination folders are missing? copyFile' doesn't seem to create missing directories on the way to the destination.

Probably doesn't work if the output is missing - I suspect we need:
forM_ files $ \file -> do
    createDirectoryIfMissing True $ takeDirectory file
    copyFileChanged (src </> file) (dest </> file)

It seems fine to add, as long as we have a suitable disclaimer that you should be putting the files together inside the rule.

Now I wonder which is more efficient

This one is simpler, so preferable. If the createDirectoryIfMissing ends up dominating, you can keep an accumulating Set and avoid creating the same directory twice, but I suspect it's not relevant as copyFileChanged is relatively expensive. I guess copyDirectory' should call copyFile' and copyDirectoryChangedshould callcopyFileChanged`.

Sounds fine. Is the trailing ' necessary then?

For symmetry with copyFile? I guess not though.


Esphome related double entries do not revert, or my values moved to _2 sensors

System Health details
System Information

version
core-2023.11.2

installation_type
Home Assistant OS

dev
false

hassio
true

docker
true

user
root

virtualenv
false

python_version
3.11.6

os_name
Linux

os_version
6.1.59

arch
x86_64

timezone
Europe/Berlin

config_dir
/config

Home Assistant Community Store

GitHub API
ok

GitHub Content
ok

GitHub Web
ok

GitHub API Calls Remaining
5000

Installed Version
1.33.0

Stage
running

Available Repositories
1333

Downloaded Repositories
7

Home Assistant Cloud

logged_in
false

can_reach_cert_server
ok

can_reach_cloud_auth
ok

can_reach_cloud
ok

Home Assistant Supervisor

host_os
Home Assistant OS 11.1

update_channel
stable

supervisor_version
supervisor-2023.11.3

agent_version
1.6.0

docker_version
24.0.6

disk_total
30.8 GB

disk_used
16.5 GB

healthy
true

supported
true

board
ova

supervisor_api
ok

version_api
ok

installed_addons
Samba share (12.1.0), Node-RED (16.0.2), File editor (5.7.0), Terminal & SSH (9.8.1), ESPHome (2023.11.1), Samba Backup (5.0.0), ESPHome (dev) (dev), Let's Encrypt (4.12.9), WireGuard (0.9.0), Mosquitto broker (6.3.1), FiatChamp (3.0.8)

Dashboards

dashboards
2

resources
4

views
27

mode
storage

Miele

component_version
0.1.17

reach_miele_cloud
ok

Recorder

oldest_recorder_run
18. Oktober 2023 um 04:56

current_recorder_run
19. November 2023 um 18:21

estimated_db_size
2867.97 MiB

database_engine
sqlite

database_version
3.41.2

Spotify

api_endpoint_reachable
ok

Checklist

[X] I have read the FAQ to see if there is a known solution to my problem.
[X] I have enabled debug logging for my installation.
[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of currently previous issues..

Describe the issue
I have a lot Esphome devices.
This brings it, that at some times the sensor shows up with a suffix "_2".
These can be removed by removing the EspHome Device in the Integrations tab. Delete device, insert again and done.
 Or at least creates some.
The yaml looks lieke:
    - entity_id: fan.kwl_ansteuerung
      linear:
        calibrate:
          - 30 -> 10
          - 50 -> 23.2
          - 76 -> 52

and was running fine. Since HomeAssistant 2023-11 the sensor accordingliy: sensor.kwl_ansteuerung_power is not available anymore.
However the new one showed up : sensor.kwl_ansteuerung_power_2

I updated powercalc, rebooted a lot, recreated the EspHome. No matter the powercalc entities keeps working with _2 sonsors while the orignal ones do show up as not available.
How could I fix this?
Reproduction steps
don't know
Debug logs
2023-11-19 20:33:23.976 DEBUG (MainThread) [custom_components.powercalc.sensors.power] Creating power sensor (entity_id=fan.kwl_ansteuerung entity_category=None, sensor_name=KWL Ansteuerung power strategy=linear manufacturer= model= unique_id=78:21:84:7C:6B:8C-fan-kwl_ansteuerung)
2023-11-19 20:33:23.976 DEBUG (MainThread) [custom_components.powercalc.sensors.energy] Creating energy sensor: KWL Ansteuerung energy
2023-11-19 20:33:23.976 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: KWL Ansteuerung energy daily (entity_id=sensor.kwl_ansteuerung_energy_2_daily)
2023-11-19 20:33:23.977 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: KWL Ansteuerung energy weekly (entity_id=sensor.kwl_ansteuerung_energy_2_weekly)
2023-11-19 20:33:23.977 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: KWL Ansteuerung energy monthly (entity_id=sensor.kwl_ansteuerung_energy_2_monthly)
20

2023-11-19 20:33:23.999 DEBUG (MainThread) [custom_components.powercalc.sensors.abstract] Binding sensor.kwl_ansteuerung_power_2 to device 850580f2f5fd4f1f369a4ebd34c2641f
2023-11-19 20:33:23.999 DEBUG (MainThread) [custom_components.powercalc.sensors.abstract] Binding sensor.kwl_ansteuerung_energy_2 to device 850580f2f5fd4f1f369a4ebd34c2641f
2023-11-19 20:33:24.000 DEBUG (MainThread) [custom_components.powercalc.sensors.abstract] Binding sensor.kwl_ansteuerung_energy_daily_2 to device 850580f2f5fd4f1f369a4ebd34c2641f
2023-11-19 20:33:24.001 DEBUG (MainThread) [custom_components.powercalc.sensors.abstract] Binding sensor.kwl_ansteuerung_energy_weekly_2 to device 850580f2f5fd4f1f369a4ebd34c2641f
2023-11-19 20:33:24.003 DEBUG (MainThread) [custom_components.powercalc.sensors.abstract] Binding sensor.kwl_ansteuerung_energy_monthly_2 to device 850580f2f5fd4f1f369a4ebd34c2641f
20

Diagnostics dump or YAML config
No response

Not sure how to fix as there are a lot of processes in play here.
I think you might try just changing the entity_id of the entities in question with the GUI as, which you should be able to when they have a unique id.
I think that's also what happened.
ESPHome had the wrong entity_id with _2 prefix.
Powercalc created the 5 entities and used the ESPHome sensor as base for the naming, causing all Powercalc entities to also have _2.
When entity with a given unique id already exists powercalc won't change the entity id, and keep the existing entity_id.

Hi,
editing in the GUI is not feasible, there are hundreds of sensors.
I found a solution:

Remove all powercalc sensors (I hab them stored in a separate yaml, so unlinking is easy)
Remove powercalc from HACS
restart
remove all entities left over from powercalc (manually). These are almost a hundred. If they are deleted the statistics are gone.
reenable powercalc and the yaml
restart

Is there no better way? HomeAssistant changed the way unique IDs were handled with Esphome. I had trouble with this too, as unique was not really unique.
Most likely this handling change breaks powercalc. At least it would be a really strange coincidence. That is why I assume many more people will be affected.
Jan

Powercalc uses the unique id of the source sensor also as the unique id for the powercalc sensor, when you don't specifically supply it in the config.
This is done as it's the only way to get a "stable" reference to a source sensor as entity_id could be changed by the user.
Imagine your sensor, for example fan.kwl_ansteuerung, and a corresponding powercalc sensor sensor.kwl_ansteuerung_power. Unique id for both is some_uniqueid.
EspHome has changed the unique id to new_uniqueid. Powercalc sensor sensor.kwl_ansteuerung_power is still registed in HA under the old unique id. Powercalc tries to create a sensor with the name sensor.kwl_ansteuerung_power, but it's already taken causing it to create a new sensor with _2 postfix on startup.
What you could try to not lose the history and get rid of _2 sensor is to manually edit the config/.storage/core.entity_registry file. Stop HA before doing so, and also make a backup just in case.
Find the old powercalc sensor and update with the new unique_id used by EspHome. Restart afterwards. Try for one sensor first.
Do you know if HA helpers (which you can also create based on a source entity) have the same issue?

thanks for your help,
so far this is the only addon that relies on other sensors. So this is powercalc only.
I will do a clean sweep with all my ESPhome nodes. byebye history.
Not too many poeple seem to be affected. Bad luck I guess.


Sceen Setting to turn on Conversation HUD automatically

Please add per scene setting to turn on Conversation HUD automatically and to use one of the premade journals with conversation setups automatically. Changing to another scene with Conversation HUD on but different setup changes the setup. Changing to another scene with Conversation HUD off turns off the Conversation HUD.
This will speed up preparation a lot.

I will look into something like this but I don't know if I will be adding this feature as I have a couple of reservations.
Firstly, I don't know if the effort needed for something like this is worth it considering it takes a couple of seconds to manually activate a conversation (even less so if you already have notes and you embed the conversation in those notes). Thus, if it's something that might take a considerable time of effort to add then I don't know if it's really worth it.
Secondly, I don't really want to mess with the scene configuration, I am trying to alter as little as possible with this module so as to ensure compatibility with as many systems/modules as possible. Editing the scene object itself might cause some issues. (Granted, in theory there shouldn't be a lot of compatibility issues but you never know).
And finally, if I am to add this automatic toggle on/off depending on how a scene is configured and if it has a linked conversation or not. The issue lies with the automatic deactivation as there might be situations you want to change a scene and still keep the active conversation.
That said, I will look into this and see if there is a way to add what you have requested in a reasonable amount of time without too much effort (since I do think this request falls a bit out of the scope of this module). No promises however.
In the meantime, I highly suggest using the journal embed feature to start conversations, this is how I do it in my games and I think it works really well. Just drag and drop a conversation into one of your notes and then CTRL + LClick to activate. You can even drag a scene in the journal as well and then you can activate both the scene and the conversation and pretty much achieve the same result as what you have requested while also having your notes open for additional information (dialogue, character traits, etc.).

Hey there and sorry for the long delay, this took way longer than I wanted to but I just couldn't get around to working on the module. I am pleased to tell you that with release 5.2.0 you can now link conversations to scenes as per your request. You can find the new input under the Ambience tab of the Scene Config menu and in that input you can select all of the currently saved conversation sheets.
There are however a couple of things to note:
1 - Conversations will turn on automatically only when you activate a scene. This is to prevent them from appearing when you simply want to view a scene.
2 - When switching scenes, if you activate a scene that has no conversation, the currently active one will remain open. This is because I feel that there are cases where you might want to activate another scene and still keep the currently open conversation. Overall, I do not think it's a big issue considering that now you can quickly close conversations from the right side menu.
3 - If you for some reason log out and rejoin the application and the currently active scene has a conversation linked, this conversation will not appear automatically. This is a technical limitation which is why I also added a button on the Scene Config that will activate the linked conversation. This point is only an issue when there are no other users online, if there are other uses then there shouldn't be any issues as the currently active conversation will be fetched from the others.
With that long wall of text out of the way, if you have any other questions or suggestions, feel free to reach out!

Thank you very much for this amazing feature!