Astro integration is missing basic functionality

The Astro implementation seems to be missing a few key features to make it usable without significant class overrides. By default, Astro's static file generation assumes the server will auto-append index.html to directory requests (/, /blog, /blog/how-to-foo).
For reference, I'll use the following distribution behaviors mapping as the example:

It's possible to re-introduce some portion of this functionality by utilizing the defaultRootObject property on the cdk configuration, but this only solves the issues for the root directory (/) and leaves the remaining directories unresolvable (/blog, /blog/how-to-foo).
It's also possible to add a CloudFront Function to the stack as part of the defaultBehavior, but this has 2 issues at the moment:

The function will be created, but the function built into the Astro integration will be the default behavior so the function added in the config is ignored and requires going into the console and selecting the function to assign to the default behavior. (See https://github.com/serverless-stack/sst/issues/3120)

The function will only apply to the Default(*) behavior so any routes which match other behaviors will not run this function unless they are manually assigned in the console as well. So the root directory (/) and the direct children (/blog) are supported, but anything further descending will not be resolvable (/blog/how-to-foo).

I would assume the proper way to resolve this would be to update the integration to include a default function which supports the index.html appending similar to how the SvelteKitSite constructor includes a query modification.
https://github.com/serverless-stack/sst/blob/9398de7fc9576f5a46372ce1d65756d0c3d5c990/packages/sst/src/constructs/SvelteKitSite.ts#L19-L39
It would also be necessary to update the wildcard behaviors (/blog/*, /about/*) to also have the function attached.

For further reference, here's the sst.config.ts and cfFunction.js files that I'm currently using but which still leave a bit to be desired.
sst.config.ts
import {
  Function as CfFunction,
  FunctionCode as CfFunctionCode,
  FunctionEventType as CfFunctionEventType
} from 'aws-cdk-lib/aws-cloudfront'
import { HostedZone } from 'aws-cdk-lib/aws-route53'
import { AstroSite } from 'sst/constructs'
import type { SSTConfig } from 'sst'
import { Tags } from 'aws-cdk-lib'

export default {
  config(_input) {
    return {
      name: 'personal-website',
      region: 'us-west-2',
      profile: 'sst',
      bootstrap: {
        tags: {
          'Cost Center': 'Shared',
          Environment: 'Production',
          IaC: 'SST',
          Stack: 'IaC SST'
        }
      }
    }
  },
  stacks(app) {
    const isProd = app.stage === 'prod'

    Tags.of(app).add('Cost Center', 'Personal')
    Tags.of(app).add('Environment', isProd ? 'Production' : 'Development')
    Tags.of(app).add('IaC', 'SST')
    Tags.of(app).add('Stack', 'Personal Site')

    app.stack(function Site({ stack }) {
      const site = new AstroSite(stack, 'astro-site', {
        customDomain: {
          domainName: isProd
            ? 'astro.XXXXXXXXX.com'
            : `${app.stage}.XXXXXXXXX.com`,
          cdk: {
            hostedZone: HostedZone.fromHostedZoneAttributes(
              stack,
              'HostedZone',
              {
                hostedZoneId: 'XXXXXXXXX',
                zoneName: 'XXXXXXXXX.com.'
              }
            )
          }
        },
        path: './',
        runtime: 'nodejs18.x',
        cdk: {
          distribution: {
            defaultRootObject: 'index.html',
            defaultBehavior: {
              functionAssociations: [
                {
                  function: new CfFunction(stack, 'RouterFunctionV1', {
                    comment: 'Router Function (v1)',
                    code: CfFunctionCode.fromFile({
                      filePath: './cfFunction.js'
                    })
                  }),
                  eventType: CfFunctionEventType.VIEWER_REQUEST
                }
              ]
            }
          }
        }
      })
      stack.addOutputs({
        url: site.customDomainUrl
      })
    })
  }
} satisfies SSTConfig

cfFunction.js
/* eslint-disable no-var */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
function handler(event) {
  var request = event.request
  var uri = request.uri

  // Check whether the URI is missing a file name.
  if (uri.endsWith('/')) {
    request.uri += 'index.html'
  }
  // Check whether the URI is missing a file extension.
  else if (!uri.includes('.')) {
    request.uri += '/index.html'
  }

  return request
}

Oh this is useful. Thanks for sharing. I haven't gotten to it yet but is there a related Discord conversation about this?

There were a few threads started but nothing that got any further than recommending a CF Function to resolve the issue.

Let's start a new thread for this then? I need the team to take a look at it. Feel free to tag me in it or leave a link here.

My first attempt at resolving this functionality, but I immediately hit the cache-behavior limit for CloudFront. Here's the diff for posterities' sake: https://github.com/serverless-stack/sst/compare/master...bayssmekanique:sst:feat/astro-hybrid-support-v1
The fact that AWS puts a limit on behaviors leads me to believe they are expensive and likely not intended to be used in the way that they are currently used by this tool, so I'm going to take another stab at implementing using Origin Group fail-overs.

My second attempt was a little more successful.
https://github.com/serverless-stack/sst/compare/master...bayssmekanique:sst:feat/astro-hybrid-support-v2
The origin-failover behavior works surprisingly well, but it only supports GET, HEAD, and OPTION methods so it would not support PUT, POST, DELETE methods in the failover behavior.This could be worked around using custom behaviors for the paths which require those methods.
There was also a lot of heavy lifting being performed by the CF Function to predict path resolution which is hard to do without knowledge of the Origin's content.
For attempt 3 I'm considering using the S3 web-server endpoint as the primary origin for the failover, with the lambda function as secondary. This worked REALLY well when tested in the console, but with the same limitation on supported methods. It might be worth considering the failover strategy to be the default strategy for hybrid mode and using a more cache reliant strategy for server mode.

In an attempt to better handle Astro Hybrid builds, I've authored a PR to pull the Astor build properties into the SST deployment constructs. This should allow for a more optimized CF Function to be written to route origins by route pattern.

Third attempt was a success and utilizes portions of all the approaches above. There are a few small portions left to implement in the PR before it's ready for merging but the hardest problems are now solved.
https://github.com/serverless-stack/sst/pull/3176


[spaces] implement copy

There are several reasons why copying spaces is not trivial, i.e 6b3ff6d18541835a12a787251621a8e21e782695. Either the backend_ spaces are not copy constructable (as in dune-fem) or one needs additional objects which have to be copied along (as with the fe_map_ for dune-pdelab). In addition we do not want to have several spaces to hold the same shared_ptr to the backend_ (this makes shared memory paralellization a pain or even impossible). Thus we should implement all copy ctors in the following way:

copy the grid_layer of the imcoming space
recreate the backend_ and all needed and dependent objects just as in the main ctor

This will lead to spaces that are nor really a copy of each other. On the other hand, since the grid parts and views are const in dune-gdt, if a recreated copy of one of those backend_ spaces on the same grid part or view does not behave exactly as the original one there is doom and destruction pending for the corresponding discretization module.

This should be implemented by now.


[stable/kubernetes-dashboard] add README

This shouldn't need a version bump since it doesn't have any functional
change to the chart package itself.

@linki can we merge if this looks good to you?

@prydonius  Thanks for adding this. I must have missed this when merging the chart addition recently.


UHV: Move checks for headers with underscores to UHV when it is enabled

Commit Message:
While UHV has implemented checks for header names with underscores, the corresponding checks in codec_impl.cc was not disabled. This PR removes this check from codecs when ENVOY_ENABLE_UHV is defined, such that code in UHV is exercised.
Also added missing plumbing for the stats for header map modification done by UHV.
Risk Level: Low, main build is not affected
Testing: Unit Tests
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A
Signed-off-by: Yan Avlasov<EMAIL_ADDRESS>

/retest


[GLUTEN-1632][CH]Daily Update Clickhouse Version (20240825)

Auto commit by gluten daily build, please check the build status and merge it if it's green.

Run Gluten Clickhouse CI


Install Generator Broken by Commit 26f460d

Commit 26f460d breaks the install generator. Broken in v1.14.0.
Issue: include Clearance::User is injected betweet class User < and ActiveRecord::Base. The generated code looks like this:
class User <   include Clearance::User

ActiveRecord::Base

  # some other code
end

A fix should be to inject with a regex:
          inject_into_file(
            "app/models/user.rb",
            "\n  include Clearance::User\n\n",
            after: /class User < .*/,
          )

The install generator spec probably should not only check for the string to be present, but also check for proper file formatting.

It looks like a bug to me; There was no existing test to check if the generator was including the Clearance::User correctly or not.
I've submitted a pull request; It includes the necessary test to check the generator is inserting the content correctly, this should also fix this issue.
Thanks.

Thanks, great!


[SPARK-14516][FOLLOWUP] Adding ClusteringEvaluator to examples

What changes were proposed in this pull request?
In SPARK-14516 we have introduced ClusteringEvaluator, but we didn't put any reference in the documentation and the examples were still relying on the sum of squared errors to show a way to evaluate the clustering model.
The PR adds the ClusteringEvaluator in the examples.
How was this patch tested?
Manual runs of the examples.

Test build #83500 has started for PR 19676 at commit 4c4f83e.

Test build #83500 has finished for PR 19676 at commit 4c4f83e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/83500/
Test PASSed.

sorry for pinging you, what do you think about adding ClusteringEvaluator to the examples @yanboliang ? Thanks.

It's good to have this, sorry for late response, I will make a pass tomorrow. Thanks.

Test build #84681 has started for PR 19676 at commit feb619d.

Test build #84681 has finished for PR 19676 at commit feb619d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/84681/
Test PASSed.

Merged to master


Initialization doesn't seem to be working on the Raspberry Pi Pico

I've got the compiles and uploads working, but the part where it loads the dictionary doesn't seem to be working on the Raspberry Pi Pico:
Monitoring
Monitor port settings:
  baudrate=115200
  bits=8
  dtr=on
  parity=none
  rts=on
  stop_bits=1

Connecting to /dev/ttyACM0. Press CTRL-C to exit.
Hello.
LittleFS: begin ...done.
LittleFS: initialized-[word:LOAD]?--[word:C3]?-c3 - v2024.5.17 - Chris Curl
1600 code bytes used, 58680 bytes free.
5256 dictionary bytes used, 219 words.
23 variable bytes used, 98281 bytes free. ok
2 3 + .
2 3 + .

It's echoing what I type but doesn't seem to be interpreting it. This is what it does on the Linux build:
❯ ./c3
c3 - v2024.5.17 - Chris Curl
2189 code bytes used, 89203 bytes free.
6912 dictionary bytes used, 216 words.
35 variable bytes used, 4194269 bytes free.

 The error '[word:LOAD]?' is because I haven't tried running on a Pico in a while (I had changed BLOAD to LOAD on the PC version, but didn't update the INO file). The error '[word:C3]?' is because I haven't tried to use the built-in words for a while (I changed LEXICON to LEX! and didn't update sys-load.cpp). They are updated in this latest build (version 2024.11.10). Hopefully that will fix the errors loading the words. I haven't had time to dig up my Pico to try it out; I'll do that as soon as I can.
Re the "it's not executing": my best guess is that it's looking for a 13 (c3.ino, line 105) to trigger the execute, and maybe the monitor program is conigured to send a 10, not a 13?

Re the "it's not executing": my best guess is that it's looking for a 13 (c3.ino, line 105) to trigger the execute, and maybe the terminal program you are is configured to send a 10, not a 13?

It's configurable in the Arduino IDE - you can send either LF, CR or CR/LF. IIRC the Linux standard is that "Enter" sends CR and the computer echoes the CR and then responds with an LF. I'll check them both out with the new code.

OK ... it's working now both in the IDE and from the command line! And it is "CR" - I checked it in the IDE.

I keep forgetting to ask you this - would you be interested in talking about c3 and c4 at the Silicon Valley Forth Interest Group's annual Forth Day next Saturday?
https://www.meetup.com/sv-fig/events/303997241/
I'll probably be talking briefly about what I'm doing with c3, but I think the people there will be extremely interested in c4. There's been quite a lot of interest in colorForth recently.

Wow ... I never have time for those things ... the wife has me on a pretty short leash on the weekends. Plus, I wouldn't even know what to say. I can, however, see what I can do to beef up the documentation on C4 in case you happen to mention it at the meeting :). Please feel free to mention it if you want.
The other thing I have been thinking about more lately ... it feels like C4 would be a good candidate for dev boards, since the codes are all 32-bit, so the alignment issue is essentially gone for that. It would be easy enough to write a word to align an address to that fetches could be full-speed (I will do that for C3 as well).
I think I'm at the point with C4 that I can start looking at taking a copy of it and "Arduinoify-ing" it. It should be pretty straight-forward.

Wow ... I never have time for those things ... the wife has me on a pretty short leash on the weekends. Plus, I wouldn't even know what to say. I can, however, see what I can do to beef up the documentation on C4 in case you happen to mention it at the meeting :). Please feel free to mention it if you want.

OK ... if you want to see some past meetups for inspiration, here's the YouTube channel: https://www.youtube.com/@siliconvalleyforthinterest1736

The other thing I have been thinking about more lately ... it feels like C4 would be a good candidate for dev boards, since the codes are all 32-bit, so the alignment issue is essentially gone for that. It would be easy enough to write a word to align an address to that fetches could be full-speed (I will do that for C3 as well).
I think I'm at the point with C4 that I can start looking at taking a copy of it and "Arduinoify-ing" it. It should be pretty straight-forward.

That sounds great! I'd think it would be faster than C3, but probably also take up more flash space. Incidentally, the only operations I would add to either C3 or C4 are halfword signed and unsigned fetches and stores. I was working on an assembly language Forth for the RP2040 and I was able to do a lot with things like a 16x16 */MOD.


Make it work out of the box with Travis build stages

Right now I have to override verifyConditions to not include condition-travis to make it work. That adds a lot of friction in setting semantic-release up. I wonder if there is a way to check if build stages are used and if yes, don't check for the other builds to pass?

There is: see condition-travis#using-travis-build-stages.
You just have to set BUILD_LEADER_ID.

I get that, but I'm saying it's a suboptimal experience, especially for new users of semantic-release. I assume that going forward, people will use release stages over travis-deploy-once, and I wanted to discuss ways how to improve that.
It's also easy to forget to change BUILD_LEADER_ID when adding something to the test matrix. And if you want to run semantic-release in script instead of after_success (which imo you should because after_success swallows errors) then you have to disable condition-travis completely or it will fail. Where "disabling" means you have to override verifyCondition to repeat all the other plugins you do want to run, like @semantic-release/github, @semantic-release/npm.

There is a similar discussion here: semantic-release/semantic-release#486

Another thing to consider with Build Stages is that we have no way in semantic-release to verify that the configuration of Build Stages is done properly. A misconfiguration in the build stages might trigger an unwanted release.
The amount of safety check we should put in the code to prevent problems due to misconfiguration is arguable, but a lot of issue we have are related to a misconfiguration that have created a release or a tag and the user struggles to recover from that. In other type of software, I'd say that failures due to misconfiguration are completely acceptable and expected. In the case of semantic-release it result in an unwanted release which can have a lot of consequences:

Some user might upgrade to the new release before you relaize the problem happened
Tools like greenkeeper will be triggered, creating update PR, that might get merge
Any other automated tool that listening to npm publishes will be triggered (blog posts, mails, tweet, confetis, etc...)
Unpublishing the version on npm prevent to reuse the version later (if you release 2.0.0 and unpublish it, you won't be able to release 2.0.0 it again, ever.You'd have to take manual step to release 2.0.1 or 3.0.0)
All that concerns mostly big projects. But still, it's important for semantic-release to take extra care in checking everything possible before making the release.

We want to do a hard check on the release happening only if the tests of all jobs running on the CI.
That's not possible by running semantic-release on the script step.
The Travis API v3 allow to get some info about the build Stages, but I didn't find a way to determines with certainty which job is supposed to run semantic-release. So we can't guarantee that the release won't happen on the wrong job, or on multiple jobs.
The typical scenario would be to have a test Stage that run the tests on different Node version and OS and a release Stage that runs semantic-release.
But there might be a lot of other situation to handle:
-The jobs in the test Stage also run semantic-release => We need to prevent the release.

The job in the release Stage doesn't run on Node 8
The release Stage is not named release
The release Stage has multiple jobs that run semantic-release
There is another Stage after the release one

The BUILD_LEADER_ID is not ideal but it forces the user to read the doc and think about what they are configuring, rather than doing an unexpected release without the user "consent".
I spent quite some time trying to figure out a better solution, but I couldn't come up with something satisfactory so far...My conclusion is that relying on checks in the CI is cumbersome and necessarily complex. And no matter the solution there will still be the problem of projects running multiple CIs platforms.
So it's probably better to solve this issue by not running semantic-release on the CI anymore and create a Github app that monitor the CI status on the commits and trigger a custom CI build that run semantic-release. That comes with several challenges as well, but it would solve more problems I think.
That said, if you can propose a Build Stage based solution that fulfill the needs mentioned above, I will happily look at it :)

Your points are all valid. I'll have to think about this a bit more, but making some requirements like forcing the stage to be named "release" and doing harder checks could get us there. It should also be possible to validate to config locally before running the build, because it doesn't depend on any runtime things. If we make the CLI spit out guaranteed-to-work config for many use cases we can also eliminate risk. And then, maybe we can disable the check for travis-deploy-once if build stages are detected in a fuzzy way safely.

So it's probably better to solve this issue by not running semantic-release on the CI anymore and create a Github app that monitor the CI status on the commits and trigger a custom CI build that run semantic-release. That comes with several challenges as well, but it would solve more problems I think.

It's not clear to me how the GitHub app would solve all this. Is there a thread with more details that I can join? It feels a bit off-topic here.

but making some requirements like forcing the stage to be named "release" and doing harder checks could get us there.

Yes but I'm not sure it would be that much of an improvement in terms of convenience compared to using BUILD_LEADER_ID.

It should also be possible to validate to config locally before running the build, because it doesn't depend on any runtime things. If we make the CLI spit out guaranteed-to-work config for many use cases we can also eliminate risk.

Not really...The CLI might create a valid config when a user setup semantic-release but nothing prevent further modification of the travis.yml.

It's not clear to me how the GitHub app would solve all this. Is there a thread with more details that I can join? It feels a bit off-topic here.

There is a couple of mentions here and there in the repo issues. Nothing is set in stone, far from that. Once we'll have something to propose we'll open an issue to get feedback from the community.
The first task for me is to get semantic-release in it "current CI iteration" up to speed, stable, maintainer friendly and add important features (language agnostic, multiple branches/dist channel/pre-release). It turns out to be a bigger task than I though :)
I released a lot of features recently, but the documentation is lagging behind...So at the moment, regarding my time investment, writing documentation is a higher priority.

And other thing to consider is that Build Stages are in beta version and can change at any time. In addition it's not supported on Travis Pro.
Maybe it would be simple and helpful enough to check if there is a Build Stage name release or semantic-release limit the jobs considered by travis-deploy-once to the ones within this build stage?
This way if you have a Build Stage named release with one job then travis-deploy-once will automatically consider it as the build leader. If you have multiple jobs configured in the release Stage (because you do different type of release for some reason) then travis-deploy-once will use the same algorithm but limit to those jobs, so the highest Node version within the Build Stage release will be used.
We would have to modify travis-deploy-once to accept a new argument stages that will be a list of the possible Build Stages to consider. Then travis-deploy-once will consider the first one in the list that exist in the current Travis Build. Then conditions-travis would call travis-deploy-once passing ['semantic-release', 'release'].

Yeah that sounds good to me, and I think it's reasonable to default it to release if we document that.

I’d like to wait for this until stages are out of beta, because things might still change. It adds quite a lot of complexity based on a lot of assumptions right now. Do you think there is any way to get data to back "I assume that going forward, people will use release stages"?  Maybe you could ping Travis if they have any data how the adoption is going of build stages in node projects?

Sure they are in beta, but so is semantic-release ^10 - for using semantic-release for non-npm projects, semantic-release ^10 and build stages are the best way. Eventually both will come out of beta.

Maybe you could ping Travis if they have any data how the adoption is going of build stages in node projects?

Maybe @Lyoness knows?

@felixfbecker would #30 be an acceptable solution for you?
It would work transparently (without BUILD_LEADER_ID ) as long as:

the job in the release stage has a node version higher or equal to every other jobs
the release stage is the last stage to run

So you can just create a Build Stage that runs last and set it's node version to the highest in your build, or even better you can set it to node_js: node so it will always run the latest stable version and will always be considered the highest.

I think #30 is unrelated?

Oops, I meant semantic-release/travis-deploy-once#30


Remove Hippo dependency

I can't find anywhere these are used in the code.  Hippo is alluded to in the CI dependencies (e.g. https://github.com/fermyon/spin/blob/268883366d57712de1a9cc33135238b46013fe86/.github/workflows/build.yml#L119) - I am not sure if that signals that the Hippo crates are still needed somewhere?  (Or if that's redundant too?)

Or if that's redundant too?

I think that's redundant. It's there to install the hippo CLI as needed for a CI run. That flag along with the parameters in the github action should be safe to remove.

And here as well: https://github.com/fermyon/spin/blob/268883366d57712de1a9cc33135238b46013fe86/.github/actions/spin-ci-dependencies/action.yml#L127-L132

Thanks @bacongobbler - I've removed it from the various places it popped up in CI, as a separate commit so easy to revert if needed.


Multiple ServiceConnectorCreators for one Service

Hi,
I found the issue: https://github.com/spring-cloud/spring-cloud-connectors/issues/121 but I'm not able to comment or reopen it. I guess I'm just missing something (I'm new to this).
I implemented two different CloudServiceConnectors for one service. I found the solution provided in issue#121 which not really suits the needs for my use-case. In my case, I would like to make the service connectors pluggable to avoid dependencies the user might not want. If I would use a  BaseCompositeServiceInfo I would either always create two different ServiceInfos or create a ServiceInfo if it is present in the classpath to avoid forcing the user to get some dependencies.
In the Class org.springframework.cloud.AbstractCloudConnector I found the following method which returns the first InfoCreator which is suitable.
private ServiceInfo getServiceInfo(SD serviceData) {
		for (ServiceInfoCreator<? extends ServiceInfo,SD> serviceInfoCreator : serviceInfoCreators) {
			if (serviceInfoCreator.accept(serviceData)) {
				return serviceInfoCreator.createServiceInfo(serviceData);
			}
		}

		// Fallback with a warning
		ServiceInfo fallackServiceInfo = getFallbackServiceInfoCreator().createServiceInfo(serviceData);
		logger.warning("No suitable service info creator found for service " + fallackServiceInfo.getId()
				+ " Did you forget to add a ServiceInfoCreator?");
		return fallackServiceInfo;
	}

This method could return a list of ÌnfoCreators or check if the object a user requested (cloud.getSingletonServiceConnector(SomeConnector.class, null) is suitable with one of the Infos instead of returning the first it finds, couldn't it?
Regards
Morten

Spring Cloud Connectors is in maintenance mode. Please consider migrating to Java CFEnv and creating an issue in that project if you can't configure it as desired.


try up from docker-compose issue

Hi,
I try run project use images from docker hub.
docker-compose.yml
version: '3.5'

services:
  stringer-postgres:
    image: postgres:9.5-alpine
    restart: always
    hostname: stringer-postgres
    container_name: stringer-postgres
    volumes:
      - ./volumes/db:/var/lib/postgresql/data
    environment:
       POSTGRES_PASSWORD: ********
       POSTGRES_DB: stringer
  stringer:
    image: stringerrss/stringer:latest
    restart: always
    ports:
      - 8000:8080
    environment:
       PORT: 8080
       DATABASE_URL: postgres://postgres:*********@stringer-postgres/stringer
       SECRET_KEY_BASE: *********
       ENCRYPTION_PRIMARY_KEY: *********
       ENCRYPTION_DETERMINISTIC_KEY: *********
       ENCRYPTION_KEY_DERIVATION_SALT: *********
       FETCH_FEEDS_CRON: "*/5 * * * *"
       CLEANUP_CRON: "0 0 * * *"

log:
stringer_1           | 2023-09-02 19:19:21,774 DEBG 'puma' stdout output:
stringer_1           | Warning: You specified code to run in a `before_fork` block, but Puma is not configured to run in cluster mode (worker count > 0 ), so your `before_fork` block did not run
stringer_1           |
stringer_1           | 2023-09-02 19:19:21,777 DEBG 'puma' stdout output:
stringer_1           | Warning: You specified code to run in a `on_worker_boot` block, but Puma is not configured to run in cluster mode (worker count > 0 ), so your `on_worker_boot` block did not run
stringer_1           | Warning: You specified code to run in a `on_worker_shutdown` block, but Puma is not configured to run in cluster mode (worker count > 0 ), so your `on_worker_shutdown` block did not run
stringer_1           | [11] Puma starting in cluster mode...
stringer_1           | [11] * Puma version: 6.3.1 (ruby 3.2.2-p53) ("Mugi No Toki Itaru")
stringer_1           | [11] *  Min threads: 2
stringer_1           | [11] *  Max threads: 2
stringer_1           | [11] *  Environment: production
stringer_1           | [11] *   Master PID: 11
stringer_1           | [11] *      Workers: 2
stringer_1           | [11] *     Restarts: (✔) hot (✖) phased
stringer_1           | [11] * Preloading application
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,560 DEBG 'puma' stdout output:
stringer_1           | [11] * Listening on http://<IP_ADDRESS>:8080
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,567 DEBG 'puma' stdout output:
stringer_1           | [11] ! WARNING: Detected 5 Thread(s) started in app boot:
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,569 DEBG 'puma' stdout output:
stringer_1           | [11] ! #<Thread:0x00007fb7f1034278@worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/postgresql/database_statements.rb:48:in `exec'
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,571 DEBG 'puma' stdout output:
stringer_1           | [11] ! #<Thread:0x00007fb7f10324f0@io-worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep_forever> - <internal:thread_sync>:18:in `pop'
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,573 DEBG 'puma' stdout output:
stringer_1           | [11] ! #<Thread:0x00007fb7f10578e0@GoodJob::Scheduler(queues=* max_threads=5)-worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `exec_params'
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,576 DEBG 'puma' stdout output:
stringer_1           | [11] ! #<Thread:0x00007fb7f0f0e470@GoodJob::Scheduler(queues=* max_threads=5)-thread-2 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep_forever> - /usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/model_schema.rb:563:in `synchronize'
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,577 DEBG 'puma' stdout output:
stringer_1           | [11] ! #<Thread:0x00007fb7f0f0d7c8@worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:53:in `sleep'
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,578 DEBG 'puma' stdout output:
stringer_1           | [11] Use Ctrl-C to stop
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,579 DEBG 'puma' stdout output:
stringer_1           | bundler: failed to load command: puma (/usr/local/bundle/bin/puma)
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,647 DEBG 'puma' stdout output:
stringer_1           | /usr/local/bundle/gems/puma-6.3.1/lib/puma/launcher.rb:312:in `write': No such file or directory @ rb_sysopen - tmp/pids/server.pid (Errno::ENOENT)
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/launcher.rb:312:in `write_pid'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/launcher.rb:121:in `write_state'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/cluster.rb:408:in `run'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/launcher.rb:194:in `run'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/cli.rb:75:in `run'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/bin/puma:10:in `<top (required)>'
stringer_1           |  from /usr/local/bundle/bin/puma:25:in `load'
stringer_1           |  from /usr/local/bundle/bin/puma:25:in `<top (required)>'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli/exec.rb:58:in `load'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli/exec.rb:58:in `kernel_load'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli/exec.rb:23:in `run'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli.rb:486:in `exec'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli.rb:31:in `dispatch'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli.rb:25:in `start'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/exe/bundle:48:in `block in <top (required)>'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/exe/bundle:36:in `<top (required)>'
stringer_1           |  from /usr/local/bundle/bin/bundle:25:in `load'
stringer_1           |  from /usr/local/bundle/bin/bundle:25:in `<main>'
stringer_1           |
stringer_1           | 2023-09-02 19:19:24,671 DEBG fd 9 closed, stopped monitoring <POutputDispatcher at<PHONE_NUMBER>41584 for <Subprocess at<PHONE_NUMBER>82224 with name puma in state RUNNING> (stdout)>
stringer_1           | 2023-09-02 19:19:25,673 WARN exited: puma (exit status 1; not expected)
stringer_1           | 2023-09-02 19:19:25,674 DEBG received SIGCHLD indicating a child quit
stringer_1           | 2023-09-02 19:19:26,682 INFO spawned: 'puma' with pid 26
stringer_1           | 2023-09-02 19:19:27,683 INFO success: puma entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
stringer_1           | 2023-09-02 19:19:29,589 DEBG 'puma' stdout output:
stringer_1           | Warning: You specified code to run in a `before_fork` block, but Puma is not configured to run in cluster mode (worker count > 0 ), so your `before_fork` block did not run
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,590 DEBG 'puma' stdout output:
stringer_1           | Warning: You specified code to run in a `on_worker_boot` block, but Puma is not configured to run in cluster mode (worker count > 0 ), so your `on_worker_boot` block did not run
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,590 DEBG 'puma' stdout output:
stringer_1           | Warning: You specified code to run in a `on_worker_shutdown` block, but Puma is not configured to run in cluster mode (worker count > 0 ), so your `on_worker_shutdown` block did not run
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,592 DEBG 'puma' stdout output:
stringer_1           | [26] Puma starting in cluster mode...
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,593 DEBG 'puma' stdout output:
stringer_1           | [26] * Puma version: 6.3.1 (ruby 3.2.2-p53) ("Mugi No Toki Itaru")
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,594 DEBG 'puma' stdout output:
stringer_1           | [26] *  Min threads: 2
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,594 DEBG 'puma' stdout output:
stringer_1           | [26] *  Max threads: 2
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,595 DEBG 'puma' stdout output:
stringer_1           | [26] *  Environment: production
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,595 DEBG 'puma' stdout output:
stringer_1           | [26] *   Master PID: 26
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,596 DEBG 'puma' stdout output:
stringer_1           | [26] *      Workers: 2
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,597 DEBG 'puma' stdout output:
stringer_1           | [26] *     Restarts: (✔) hot (✖) phased
stringer_1           |
stringer_1           | 2023-09-02 19:19:29,597 DEBG 'puma' stdout output:
stringer_1           | [26] * Preloading application
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,829 DEBG 'puma' stdout output:
stringer_1           | [26] * Listening on http://<IP_ADDRESS>:8080
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,831 DEBG 'puma' stdout output:
stringer_1           | [26] ! WARNING: Detected 5 Thread(s) started in app boot:
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,832 DEBG 'puma' stdout output:
stringer_1           | [26] ! #<Thread:0x00007f8886d7d258@worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/postgresql/database_statements.rb:19:in `exec'
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,835 DEBG 'puma' stdout output:
stringer_1           | [26] ! #<Thread:0x00007f8886d78460@io-worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep_forever> - <internal:thread_sync>:18:in `pop'
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,836 DEBG 'puma' stdout output:
stringer_1           | [26] ! #<Thread:0x00007f8886d8bc68@GoodJob::Scheduler(queues=* max_threads=5)-worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep_forever> - /usr/local/bundle/gems/activesupport-<IP_ADDRESS>/lib/active_support/concurrency/load_interlock_aware_monitor.rb:17:in `enter'
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,837 DEBG 'puma' stdout output:
stringer_1           | [26] ! #<Thread:0x00007f8886dacaa8@GoodJob::Scheduler(queues=* max_threads=5)-thread-2 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/pg-1.5.3/lib/pg/connection.rb:703:in `set_default_encoding'
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,838 DEBG 'puma' stdout output:
stringer_1           | [26] ! #<Thread:0x00007f8886dab388@worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:53:in `sleep'
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,839 DEBG 'puma' stdout output:
stringer_1           | [26] Use Ctrl-C to stop
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,839 DEBG 'puma' stdout output:
stringer_1           | bundler: failed to load command: puma (/usr/local/bundle/bin/puma)
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,879 DEBG 'puma' stdout output:
stringer_1           | /usr/local/bundle/gems/puma-6.3.1/lib/puma/launcher.rb:312:in `write': No such file or directory @ rb_sysopen - tmp/pids/server.pid (Errno::ENOENT)
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/launcher.rb:312:in `write_pid'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/launcher.rb:121:in `write_state'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/cluster.rb:408:in `run'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/launcher.rb:194:in `run'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/lib/puma/cli.rb:75:in `run'
stringer_1           |  from /usr/local/bundle/gems/puma-6.3.1/bin/puma:10:in `<top (required)>'
stringer_1           |  from /usr/local/bundle/bin/puma:25:in `load'
stringer_1           |  from /usr/local/bundle/bin/puma:25:in `<top (required)>'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli/exec.rb:58:in `load'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli/exec.rb:58:in `kernel_load'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli/exec.rb:23:in `run'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli.rb:486:in `exec'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli.rb:31:in `dispatch'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/cli.rb:25:in `start'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/exe/bundle:48:in `block in <top (required)>'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
stringer_1           |  from /usr/local/bundle/gems/bundler-2.3.25/exe/bundle:36:in `<top (required)>'
stringer_1           |  from /usr/local/bundle/bin/bundle:25:in `load'
stringer_1           |  from /usr/local/bundle/bin/bundle:25:in `<main>'
stringer_1           |
stringer_1           | 2023-09-02 19:19:31,896 DEBG fd 9 closed, stopped monitoring <POutputDispatcher at<PHONE_NUMBER>03472 for <Subprocess at<PHONE_NUMBER>82224 with name puma in state RUNNING> (stdout)>
stringer_1           | 2023-09-02 19:19:32,898 WARN exited: puma (exit status 1; not expected)
stringer_1           | 2023-09-02 19:19:32,899 DEBG received SIGCHLD indicating a child quit
stringer_1           | 2023-09-02 19:19:33,902 INFO spawned: 'puma' with pid 37
stringer_1           | 2023-09-02 19:19:34,905 INFO success: puma entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
stringer_1           | 2023-09-02 19:19:36,611 DEBG 'puma' stdout output:
stringer_1           | Warning: You specified code to run in a `before_fork` block, but Puma is not configured to run in cluster mode (worker count > 0 ), so your `before_fork` block did not run
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,612 DEBG 'puma' stdout output:
stringer_1           | Warning: You specified code to run in a `on_worker_boot` block, but Puma is not configured to run in cluster mode (worker count > 0 ), so your `on_worker_boot` block did not run
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,613 DEBG 'puma' stdout output:
stringer_1           | Warning: You specified code to run in a `on_worker_shutdown` block, but Puma is not configured to run in cluster mode (worker count > 0 ), so your `on_worker_shutdown` block did not run
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,614 DEBG 'puma' stdout output:
stringer_1           | [37] Puma starting in cluster mode...
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,615 DEBG 'puma' stdout output:
stringer_1           | [37] * Puma version: 6.3.1 (ruby 3.2.2-p53) ("Mugi No Toki Itaru")
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,615 DEBG 'puma' stdout output:
stringer_1           | [37] *  Min threads: 2
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,616 DEBG 'puma' stdout output:
stringer_1           | [37] *  Max threads: 2
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,617 DEBG 'puma' stdout output:
stringer_1           | [37] *  Environment: production
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,617 DEBG 'puma' stdout output:
stringer_1           | [37] *   Master PID: 37
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,618 DEBG 'puma' stdout output:
stringer_1           | [37] *      Workers: 2
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,618 DEBG 'puma' stdout output:
stringer_1           | [37] *     Restarts: (✔) hot (✖) phased
stringer_1           |
stringer_1           | 2023-09-02 19:19:36,619 DEBG 'puma' stdout output:
stringer_1           | [37] * Preloading application
stringer_1           |
stringer_1           | 2023-09-02 19:19:38,822 DEBG 'puma' stdout output:
stringer_1           | [37] * Listening on http://<IP_ADDRESS>:8080
stringer_1           |
stringer_1           | 2023-09-02 19:19:38,838 DEBG 'puma' stdout output:
stringer_1           | [37] ! WARNING: Detected 5 Thread(s) started in app boot:
stringer_1           | [37] ! #<Thread:0x00007faacc4a0140@worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/postgresql/database_statements.rb:48:in `exec'
stringer_1           | [37] ! #<Thread:0x00007faacc4ccba0@io-worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep_forever> - <internal:thread_sync>:18:in `pop'
stringer_1           | [37] ! #<Thread:0x00007faacc4c1160@GoodJob::Scheduler(queues=* max_threads=5)-worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `exec_params'
stringer_1           | [37] ! #<Thread:0x00007faacc37dd30@GoodJob::Scheduler(queues=* max_threads=5)-thread-2 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/pg-1.5.3/lib/pg/connection.rb:690:in `connect_poll'
stringer_1           | [37] ! #<Thread:0x00007faacc37cc50@worker-1 /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:332 sleep> - /usr/local/bundle/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:53:in `sleep'
stringer_1           | [37] Use Ctrl-C to stop
stringer_1           | bundler: failed to load command: puma (/usr/local/bundle/bin/puma)
stringer_1           |
stringer_1           | 2023-09-02 19:19:38,868 DEBG 'puma' stdout output:

@dogonovm hi! I don't have a solution for your issue (yet), but you should probably change your postgres password, as well as the secret keys passed to stringer. I think you accidentally posted them here, which means anyone can see them - I can edit your message but it will still be in the history of the comment.

Confirming here that the issue is present on the latest build on Dockerhub. @mockdeep

I think it's related to this line. Maybe we have to create that directory first? source

@guidopetri we should already have that directory, so I wonder if it's having a hard time finding the file itself. Is it maybe executing from the wrong path?

Hmm... I'm not sure. As far as I can tell this is somehow related to the updated dependencies - nothing else seems to have materially changed in the past couple of weeks.

sounds good, I wait feedback from you! ))))

Found the issue: https://github.com/stringer-rss/stringer/blob/main/.dockerignore#L4 we specifically ignore everything in ./tmp to be added in Docker. I think in this case it's acceptable to add that in. I wonder if some behavior changed in one of the recent dependency updates where the folder wasn't getting created by default anymore.

@dogonovm we should be all set now, but feel free to reopen the issue if this is still not working for you with the latest image!


[WIP] pokemon_optimizer: fix transfer and evolve for xp

Short Description:
Trying to fix the optimizer logic
Right now it always tries to evolve for xp, so it's holding back many useless pokemon and ignores a part of the config ('evolve_for_xp', 'evolve_only_with_lucky_egg')
Fixes/Resolves/Closes (please use correct syntax):

https://github.com/PokemonGoF/PokemonGo-Bot/issues/5685

Evolve for xp is working with a whitelist and blacklist. So your change is just a hack.
You can either have
        elif self.config_evolve_for_xp is False:
            self.config_evolve_for_xp = []
            self.config_evolve_for_xp_blacklist = self.pokemon_names
```

or

```
        if (not self.config_evolve_for_xp) or (family_name in self.config_evolve_for_xp_blacklist):
            xp = []
            transfer = crap
```

They are both one line code change

I added a PR that implement the second one

yes, this is why it just was a work in progress...
-> https://github.com/PokemonGoF/PokemonGo-Bot/pull/5707


[BUG]   unrecognized class name 'GtkTable'

2021/09/12 17:14:37 unrecognized class name 'GtkTable'
panic: unrecognized class name 'GtkTable'
build, err := gtk.BuilderNewFromFile("tp/test.glade")
table1, err := build.GetObject("table1")

GtkTable has been deprecated. Use GtkGrid instead. It provides the same capabilities as GtkTable for arranging widgets in a rectangular grid, but does support height-for-width geometry management.

source: https://docs.gtk.org/gtk3/class.Table.html
I don't see any bindings for it and I doubt anyone will implement bindings for sth. that

And gtk.Grid is still here in gtk4 so you''ll be fine for the next upgrade.

Should we tag this as : missing feature + deprecated + won't fix and close?
The ui file displayed says gtk 2.16 (2009-03), it's time to update.
Table is deprecated since: 3.4 (2012-03)

sounds like a good combination of tags to me


Fixed movement pruning JSON schema and refactored sparse structure

Changes
Fixed movement pruning JSON schema and refactored sparse structure
Reason for changes
can't create NNCFConfig without validation
Related tickets
n/a
Tests
movement pruning tests

@vuiseng9
@yujiepan-work


rename to -> 2 in command names

This is obviously more readable.
Original issue by ghost on Wed Mar 19 2014 at 09:46.
Closed by an unknown user on Wed Mar 19 2014 at 09:56.

fixed in ed91e9604e09d1ff1de057efed52fcbedfedca53
Original comment by @bmesuere on Wed Mar 19 2014 at 10:03.


Still getting wandb logging issues

IceNet version: 0.2.5

Description
Running an ensemble, the output evaluation metrics for a test run still aren't logging. Again this is an issue with wandb de-init'ing, probably because of an odd scope issue. It's a real headache because so many activities take place against the module.
What I Did
# Run an ensemble
# No metrics uploaded

# Investigate run logs and find
wandb: Find logs at: ./wandb/run-20230710_121450-qhw3ase4/logs
Traceback (most recent call last):
  File "/data/hpcdata/users/jambyr/miniconda3/envs/icenet/bin/icenet_train", line 33, in <module>
    sys.exit(load_entry_point('icenet', 'console_scripts', 'icenet_train')())
  File "/data/hpcdata/users/jambyr/icenet/icenet/icenet/model/train.py", line 458, in main
    wandb.log(
  File "/data/hpcdata/users/jambyr/miniconda3/envs/icenet-new/lib/python3.8/site-packages/wandb/sdk/wandb_run.py", line 371, in wrapper
...
PermissionError: [Errno 13] Permission denied: '/users'

This happens due to the default init against the module being invoked because the previous init call, I assume, lost scope: that scope had the correct configuration which points the config lookup not to /users but to a dedicated configuration (a quirk of our HPC)...

Still getting the error after the attempt to revise the situation with that commit (which to be fair is a bit nicer anyway because it places the imports at the top of the script.) Upgrading wandb, to see if that makes any difference...


Please add phpDoc at Command for IDE auto completion

add like this method at Commando/Command

@package Commando
@method \Commando\Command option (string $name)
@method \Commando\Command flag ()
@method \Commando\Command argument ()
@method \Commando\Command boolean ()
@method \Commando\Command require()
@method \Commando\Command alias()
@method \Commando\Command title()
@method \Commando\Command describe()
@method \Commando\Command map()
@method \Commando\Command must()
@method \Commando\Command needs()
@method \Commando\Command file()
@method \Commando\Command default()

Thanks

@13leaf This may be an odd question but why don't you add it yourself and open a pull request? This can easily be achieved just using the github "edit" button...

OK,I have create a pull request.
My IDE is phpstorm7.
FQN cause a bug,please see http://stackoverflow.com/questions/21122007/phpstorm-7-method-bug-or-im-wrongly-using-phpdocumentor-annotations


added ci files.

need to fix a bunch of stuff local to the files here to fix build

well, found a bunch of unnecessary hal_conf files, and such while checking the style check locally.
So rather than have those get completely rewritten by the style fix I'm just going to go through and remove them and make sure the builds still work.
It's misleading to have them there, and if they're not up-to-date they could actually cause other build issues.


Bug 1821427: Giving Image Config resource its own controller

Created a separated controller to manager image config resource.

/assign @dmage @adambkaplan @coreydaley

/test e2e-aws-image-registry

/lgtm


obsolete/merge hemifacial microsomia

close #6452

@nicolevasilevsky is it ok if I review this?

Yes, it is ready for review now (as long as the QC passes)

this can be merged when the QC passes


Group (Team/Shard) to do list interrogation

Have a request please.
Will it be possible to add group “To do list”  interrogation.
We have external user adding to the list and want to make is visible in HA.
Thank you for the great work on this.
Regards

Sorry, it's not clear what you mean by ToDo group.

Shared lists.

Please find the relevant apis in the ms graph api - https://learn.microsoft.com/en-us/graph/api/resources/todo-overview?view=graph-rest-1.0

This from 2020 says they aren't available in the api - https://github.com/microsoftgraph/microsoft-graph-docs/issues/7041. Not clear if they are now.

Task:
Group.Read.All, Group.ReadWrite.All

That is a permission not an api call. I need the api link.

I suspect you mean this - https://github.com/microsoftgraph/microsoft-graph-docs/blob/main/api-reference/beta/resources/planner-overview.md. This is tasks within a (bucket within a ) plan within a group. https://learn.microsoft.com/en-us/graph/api/resources/plannerplan?view=graph-rest-1.0
At this time I am unlikely to start trying to build up any type of planning support, because it won't just be displaying the tasks, but the intelligently creating and maintaining the tasks in the plan and I can see at a glance that it is complex. And then maintaining the buckets and the plans, etc, etc.
Maybe at some point in the future,  but I have other projects I'm engaged in at this time.

Will this work? (Nee to all of this)
https://developer.microsoft.com/graph/graph-explorer/?request=me%2FmemberOf%2F%24%2Fmicrosoft.graph.group%3F%24filter%3DgroupTypes%2Fany(a%3Aa%2520eq%2520'unified')&version=v1.0

Will this work? (Nee to all of this)
https://developer.microsoft.com/graph/graph-explorer/?request=me%2FmemberOf%2F%24%2Fmicrosoft.graph.group%3F%24filter%3DgroupTypes%2Fany(a%3Aa%2520eq%2520'unified')&version=v1.0

Please see my previous comment


Add custom header icons (in the style of sortable, filterable, toggleable)

Describe the solution you'd like
I'd love to add custom header actions (icons) in the style of sortable, filterable, toggleable. Filter comes closest, as it allows to show a custom overlay, I'd like to take it a step further and allow any kind of action handler, custom icons, possibly a render function, etc.
Use cases are for example:

Edit: rename the column title
Remove: similar to toggle, but custom logic
Move left/right: without drag and drop, shift the column to the left or right

Or potentially even allow to override the default implementations (for sortable, filterable, toggleable) in order to put them into a context menu (nesting) or override their default behavior.
Describe alternatives you've considered
Hijacked the filter feature to add custom buttons within its render function. It works, but not really the right icon (no way to override that), nor the intended use case.

Alternatively was considering to use the onContextMenu for header columns. The event triggers, but there weren't any examples on how to use it for the header column and I don't need it anywhere else yet, so wanted to avoid the extra dependency and overall overhead.
Additional context
Depending on how we implement this, it could add a lot of overhead and unnecessary complexity. Maybe there is a more clever way to achieve this? Also might make sense to have some collapse feature (if there are too many header action icons, they get moved into a context menu) or only allow custom header actions within a context menu (one icon with three dots visible, opens a popover) by default.

PS: Happy to help with the implementation, but would love feedback on the approach first. Here a short sketch in code of what it might look like https://github.com/icflorescu/mantine-datatable/compare/main...noxan:mantine-datatable:main

I'm a bit up to my ears in a commercial project at the moment (oss maintainers have to eat too 😉), but I like the idea, so I'm open to a PR on the matter. I am a bit worried about the added overhead, though.

@icflorescu thanks for being so transparent and highly appreciate how responsive you are given the situation :)
I will draft a first attempt and try to keep it simple. If you have any considerations or constraints (as I'm quite new to this project) I'd be glad to hear and learn. I'll give you an update about next week with some code and thoughts.


⚠ Bofrost.de has degraded performance

In 9614823, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1024 ms

Resolved: Bofrost.de performance has improved in b33f2fe.


set file offset when seeking over end

The proposed change sets the file offset to the file's end when the file size is smaller than the expected seek index. This allows to use seek to put the file location to a certain position or the end.

The last commit takes into account the changes done for fixing #120 (#122). The change sets the Position of the file to it's end or to the requested position in SPIFFS_lseek which to me is a quite close match to the posix behaviour

Yes, I agree, makes sense. Thanks!


docs(README): add missing import in example

Description:
Add a missing import statement for Observable.of. Without this fix, the
example code would generate an error message like
'Uncaught TypeError: _Observable.Observable.of is not a function(…)'
at runtime.

Coverage remained the same at 97.686% when pulling 7f7a04fa350a971490b80332a5382bccdf10b860 on dliv:minor-readme-fix into e036e79b30c35df19aa036390e7fe0c94b7a8ff6 on ReactiveX:master.

Coverage remained the same at 97.686% when pulling 98b5c530aaee8b82146ac54f42eaeb44e52375dc on dliv:minor-readme-fix into e036e79b30c35df19aa036390e7fe0c94b7a8ff6 on ReactiveX:master.

There were several other instances of missing imports, I amended your PR with them. Thanks!


Catalina tests have closed the tree due to missing device

2020-11-10T16:36:30.848888: "/Users/flutter/.cocoon/flutter/bin/flutter" exit code: 0
2020-11-10T16:36:30.861078: Task failed: DeviceException: No connected iOS devices found.2020-11-10T16:36:30.861333:

Stack trace:
2020-11-10T16:36:30.883336: package:flutter_devicelab/framework/adb.dart 683:7         IosDeviceDiscovery.discoverDevices
===== asynchronous gap ===========================
dart:async                                                 _asyncErrorWrapperHelper
package:flutter_devicelab/framework/framework.dart         _TaskRunner._performTask.<fn>
package:stack_trace                                        Chain.capture
package:flutter_devicelab/framework/framework.dart 216:11  _TaskRunner._performTask
package:flutter_devicelab/framework/framework.dart 119:41  _TaskRunner.run

marked as a duplicate of https://github.com/flutter/flutter/issues/70244.


If a trigger already exists, it is created after remove

Trigger cannot be generated if a trigger exists.
Related to #231

Why not just use IF NOT EXIST? Wouldn't that work?

Also, tests

Why not just use IF NOT EXISTS? Wouldn't that work?

Oh, I used the old method.
The latest version of sqlite is supported.

Also, commit title / PR title is not accurate anymore

I still don't see a test that restart works. It's not the first time that a functionality as simple as restart gets broken, so please add a test.


Failure to show children in docked document when AutoScaleMode is not None

This took me a while to identify, but when the main form's AutoScaleMode is set to either Font or Dpi, the child controls of docked documents (DockState.Document) will not appear at all. Floating the window will make them appear, or docking it to another pane will make it appear, but re-docking the window to the center/document pane will make them vanish again.
This is using some absolute minimal example. All designer properties are default, except for the DockPanel set to Dock = Fill and Form1.IsMdiContainer = true, as well as AutoScaleMode = Font on all forms.
namespace TestApp
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();

			Form2 f2 = new Form2();
			f2.Show(dockPanel1);
		}
	}
}

namespace TestApp
{
	public partial class Form2 : DockContent
	{
		public Form2()
		{
			InitializeComponent();
		}
	}
}

I am using VS2017 on Win10 64-bit.

I'm seeing this behavior on VS2017 and VS2015.

I encountered the same bug using VS2017, Windows, Compiling in 64bits and using .Net 4.6.2.
Only the DockState.Document is impacted.

This library was invented before higher DPI becomes ordinary. Thus, this is a debt.
Pull requests are welcome.

Is there a workaround?


⚠ Turnos 24x7 has degraded performance

In aa255e9, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 3097 ms

Resolved: Turnos 24x7 performance has improved in 710ef1b.


Capstone v4

I had to update the stack.yaml resolver to have a version of c2hs that supports the anonymous union that was introduced in capstone, as stack was not utilizing the explicitly-specified version from extra-deps. I also switched to using build-tool-depends to put a lower bound on the version of c2hs that will be used just in case (it's currently listed as 0.28.7, which seems to work), and thus specified a minimum cabal version of 2 as that is when build-tool-depends was introduced.
I did try running the tests too but stack test fails due to missing StorableSpec/Default modules for Evm and several other architectures, and even when those are commented out in hapstone.cabal it fails due to improper types/incorrect function names when building Internal.Arm.Default and the like. I got the x86 tests working, at least (which is all I'm concerned with at the moment), but the lack of proper implicit architecture-specific details is a pain. (For some reason the cs_detail field in cs_insn is not holding the right data even when accessed directly, but this isn't a capstone issue as the same version of capstone has no issue showing instruction detail with its C tests.)

Something really weird is going on, in fact. All usages of capstone.h that I can interact with have the cs_detail.regs_read field being a twelve-element uint16_t array. However, when actually reading the data, the arrays that are produced are only using eight-bit elements! The data (or at least some of it) is there, but it does not match up to the interface capstone provides. Is hapstone relying on a separate capstone library than the one I have installed?


[Suggestion] New Settings Page?

Issue Type: Suggestion
This idea is aimed to improve the settings experience, targeted at the April Iteration Plan.
The current settings page is pretty cool, however I feel that the User Experience could be improved drastically. Instead of opening the Settings in a new window/tab, it would open a new screen (in the same window?) with Categories on the left and the settings for the categories on the right (from what I've seen, this is similar to Atom). Below, I created some dummy images representing what this screen could look like
PLEASE NOTE: These Images are rough sketches of my vision of Settings 2.0; Based off my theme: One Dark Pro Vivid

Note: I made this rough sketch on Inkscape, don't judge pls
What this contains:
On the left: Sidebar of settings, not all settings are there as this is concept, but it will be scrollable to accomodate the others, and they are collapsible
The rest of the screen, the area in which you actually customize settings, using selectors (true/false), textboxes for custom values and dropdowns for a range of fixed values.
Hopefully you understand where I'm going with this (ehem Atom) and I hope you'll consider my idea, thanks and have a great day!

@beastdestroyer thanks for the ideas! This was well-timed, I am actually working on something like this. I posted a mockup at https://github.com/Microsoft/vscode/issues/3355, let me know what you think.

I have experimented with a similar list, but my problem is that the category list is pretty long and a bit overwhelming. Grouping them together seems nice but they overlap in different ways and there isn't a perfect way to do that. Plus it's not always clear what the categories mean and why a setting is in one and not another.
But, I'm still experimenting with different types of category navigation aids.

Ah yes, the Settings is kinda clustered (Personally, I feel someone should take the time and kinda sort out all of these settings in the back-end or something), but in terms of 'category navigation aids', what about "bookmarks" to different categories then?
For example, in my sidebar, I mentioned a more organised system for setings, if that cannot happen without some magic, then what about just replacing them with all the current setting categories, and clicking on one of these buttons will either scroll/show those settings only:
Example in Action:

I have a button called "CSS Language Settings" (it will point to VSCode's current CSS Category)
Click it.
Settings for CSS show up automatically (preferably scrolled animation so no one has to deal with hide/show events for every button)

Also, I had this suggestion for a while but keep forgettign to mention: everytime a user switches to a different editor and comes back to settings, it keeps resetting to the top, please fix that; with the amount of settings that VSCode, coupled with extensions, a constant resets to the top gets annoying!

I agree that we should do a better job of persisting the view state, but it's hard to fix for technical reasons. :(


fix(Modal): fix positioning when "as" prop is a component

I found that when I use <Modal as={SomeComponent} /> in React 16, the modal positioning broke.  This is an easy and straight forward way to remedy the problem.  Let me know if there is an alternative approach that I should be taking.
Re Testing: I didn't see any tests that covered this particular function so I didn't add any.  If that is desired I can try to figure something out.

Codecov Report

Merging #2623 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master    #2623   +/-   ##
=======================================
  Coverage   99.74%   99.74%
=======================================
  Files         160      160
  Lines        2748     2748
=======================================
  Hits         2741     2741
  Misses          7        7

Impacted Files
Coverage Δ

src/modules/Modal/Modal.js
100% <100%> (ø)
:arrow_up:

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 9b4f0e3...73f89fa. Read the comment docs.

Now that I have had some time to think about this, I believe this could be easily solved by wrapping the content element in a Ref component and using that to set the ref.  Would that be something you guys would approve?

@layershifter Thanks for getting back to me.  I updated the PR per your request.  Let me know if there is anything else I should do.
FYI we use SUIR for a large scale web application at my company and we love it! Thanks for such a great library!

@layershifter this looks OK to me for a short-term fix, merge at will.  Perhaps we should add these TODOs to #2306 so we remember to clean them up.


Release 2.1.100

On the docket:

[ ] Pull in Pip fixes. #1805

Unlikely / backlog:

[ ] PEX_INHERIT_PATH+default shebangs don't interact well with virtualenvs #1344
[ ] Pex interpreter cache is not upgrade / downgrade safe. #1176
[ ] Provide a better resolve error message for a Platform DistributionTarget when --resolve-local-platforms. #1070
[ ] Remove PEX_PYTHON_PATH from build time interpreter selection. #1075

Split off from " Release 2.1.99 #1847" to make way for a fix for #1852.


XMPP fix

fix for the https://github.com/askmike/gekko/issues/466#issuecomment-251964791
Changed from using node-xmpp 0.12.0 to node-xmpp-client 3.0.2

Great! Thanks :)

You are welcome.


Website: OT-2 Page

As a user, I would like to be able to learn about the new OT-2 robot when I visit opentrons.com
Acceptance Criteria

Create OT-2 page as per @pantslakz's design spec.
Note page should not go live until PR launch date (~3/20)

note: i estimated this as a medium moving forward but in reality its a large given the amount of work done on friday.


feat: adapt Kafka bindings to v3

Description
This is the companion PR to https://github.com/asyncapi/bindings/pull/221.
As discussed and proposed here in issue #182, this PR:

Duplicates previous version 0.4.0 in v2-0.4.0 and v3-0.4.0 to keep track of bindings changes related to AsyncAPI v3 or v3
Schemas related to v2 are referencing the v2 specification extensions schema (https://raw.githubusercontent.com/asyncapi/spec-json-schemas/v2.14.0/schemas/2.4.0.json#/definitions/specificationExtension)
Schemas related to v3 are referencing the v3 specification extension schema (http://asyncapi.com/definitions/3.0.0/specificationExtension.json)

Another PR with specific schemas for v2 and v3 is on its way on asyncapi/spec-json-schemas.
Related issue(s)
Relates to https://github.com/asyncapi/bindings/issues/182

@lbroudoux you need to re-target the PR to next-major-spec 🙂

Oops...

Tests are failing but seem normal as http://asyncapi.com/bindings/kafka/v3-0.4.0/server.json is not yet deployed and available.

Now replaced by https://github.com/asyncapi/spec-json-schemas/pull/453
Could you all confirm we can cancel this one?

Now replaced by #453
Could you all confirm we can cancel this one?

yeh, makes sense to me


Add upgraded packages to autosnap description?

First of all thank for great script:)
I love it:)
To make it even better - would it be possible to add to autosnap description files that were upgraded / installed ?

Thanks for the suggestion.
This can be surely achieved as this package uses timeshift to do the snapshots. As timeshift is based on either rsync or on btrfs snapshots, this can be easily achieved by comparing snapshots. For instance, if you use btrfs you can use e.g. as described here:
btrfs send --no-data -p /snapshots/parent /snapshots/child
to get a list of changes. Note that the snapshots are located at /run/timeshift/backup/timeshift-btrfs, whereas your current subvolume @ and @home are available in /run/timeshift/backup/. So you could compare subvolume here.
There is most likely a similar command way for rsync, so if someone could point me to it, then I could have a look if this is easily implementable or someone can raise a pull request.

Actually timeshift with rsync creates those files automatically, see rsync-log and rsync-log-changes. So I guess there is no real need for this feature?

Thanks for fast response:)
I was rather thing about making it visible at snap level (and so easier to distinguish with snap contains with upgraded/intalled packages), cause now if you don't do it manully it's hard to guess what packages were upgraded.
My current snapshot list
$ sudo timeshift --list
(..)
Num     Name                 Tags  Description
------------------------------------------------------------------------------
0    >  2020-06-07_13-00-01  M
1    >  2020-06-09_20-48-29  O W   {timeshift-autosnap-apt} {created before call to APT}
2    >  2020-06-09_20-48-35  O     {timeshift-autosnap-apt} {created before call to APT}
3    >  2020-06-09_21-49-04  O
4    >  2020-06-15_12-46-49  O
5    >  2020-06-15_13-30-59  O     {timeshift-autosnap-apt} {created before call to APT}
6    >  2020-06-15_22-04-40  O     {timeshift-autosnap-apt} {created before call to APT}
7    >  2020-06-17_10-42-29  O     {timeshift-autosnap-apt} {created before call to APT}
8    >  2020-06-17_12-13-30  O     {timeshift-autosnap-apt} {created before call to APT}
9    >  2020-06-17_12-13-35  O     {timeshift-autosnap-apt} {created before call to APT}
10   >  2020-06-18_11-23-54  O     {timeshift-autosnap-apt} {created before call to APT}
11   >  2020-06-18_11-24-00  O     {timeshift-autosnap-apt} {created before call to APT}
12   >  2020-06-20_17-42-46  O     {timeshift-autosnap-apt} {created before call to APT}
16   >  2020-06-24_15-12-47  O     {timeshift-autosnap-apt} {created before call to APT}
17   >  2020-06-24_15-12-53  O     {timeshift-autosnap-apt} {created before call to APT}
18   >  2020-06-26_10-28-49  O     {timeshift-autosnap-apt} {created before call to APT}
19   >  2020-06-26_10-28-55  O     {timeshift-autosnap-apt} {created before call to APT}
20   >  2020-06-26_12-31-52  O     {timeshift-autosnap-apt} {created before call to APT}
21   >  2020-06-28_17-56-32  O     {timeshift-autosnap-apt} {created before call to APT}
22   >  2020-06-29_10-01-53  O     {timeshift-autosnap-apt} {created before call to APT}
23   >  2020-06-29_10-01-59  O     {timeshift-autosnap-apt} {created before call to APT}
24   >  2020-07-01_09-19-07  O     {timeshift-autosnap-apt} {created before call to APT}
25   >  2020-07-01_09-19-14  O     {timeshift-autosnap-apt} {created before call to APT}
26   >  2020-07-03_10-12-56  O     {timeshift-autosnap-apt} {created before call to APT}
27   >  2020-07-03_10-13-04  O     {timeshift-autosnap-apt} {created before call to APT}
28   >  2020-07-04_11-35-47  O     {timeshift-autosnap-apt} {created before call to APT}
29   >  2020-07-04_11-35-54  O     {timeshift-autosnap-apt} {created before call to APT}
30   >  2020-08-06_09-10-30  O     {timeshift-autosnap-apt} {created before call to APT}
31   >  2020-08-06_09-10-35  O     {timeshift-autosnap-apt} {created before call to APT}
32   >  2020-08-06_12-00-01  W M
33   >  2020-08-17_18-00-01  W
34   >  2020-08-17_22-37-20  O     {timeshift-autosnap-apt} {created before call to APT}
35   >  2020-08-18_09-43-18  O     {timeshift-autosnap-apt} {created before call to APT}
36   >  2020-08-18_09-43-25  O     {timeshift-autosnap-apt} {created before call to APT}
37   >  2020-08-19_10-17-47  O     {timeshift-autosnap-apt} {created before call to APT}
38   >  2020-08-19_10-17-56  O     {timeshift-autosnap-apt} {created before call to APT}

if description will contain (instead {timeshift-autosnap-apt} {created before call to APT}) upgraded/installed packages would be easier to guess which of those snapshot upgraded e.g. gnome ;)
whould that be possible ? e.g as optional feature?

Ah I see! I totally misunderstood you, sorry about that. This is a good feature request, I will look into that!

This would be valuable.  I don't reboot my system all that often so it's feasible I might have applied several batches of updates and trying to figure out WHICH backup I needed to go back to would currently be a guessing game.

While not exactly the issue you're trying to solve, this seems to give some background on how to possibly implement:
https://unix.stackexchange.com/questions/236833/apt-hook-to-check-for-specific-package-changes
Since timeshift-autosnap-apt is invoked via 80-timeshift-autosnap-apt that contains the single line:
DPkg::Pre-Invoke {"/usr/bin/timeshift-autosnap-apt"; };
it will not receive a list of packages and therefore cannot possibly know which ones to add to the snapshot's description.  Perhaps there is a way to change 80-timeshift-autosnap-apt to trigger on DPkg::Pre-Install-Pkgs instead so that the array of packages that are passed to that trigger can be used to populate the snapshot's description as desired.

Commenting to show interest in the feature.
Also asking if anybody has managed to create their own solution in the meantime?


Implement Thread::join

This allows to wait for a thread to be in an exit state.
Also rearrange ThreadState to be closer to Horizon states.

Why is state_event arc'd? It doesn't look necessary.

updated


PERF: Use tolerant_equals instead of np.allclose in order types.

np.allclose creates a vector of size 1 if passed a scalar, which showed
up as a bottleneck in algorithms with a large number of
order_target_percent calls.

cc: @jfkirk

A thing of beauty. A work of art. A generational event.
A mere :+1: can not suffice.


Remove allowDynamicClientSelection

Remove allowDynamicClientSelection - this will be removed from other implementations

I just merged: https://github.com/pac4j/pac4j/pull/284/files to remove useless concepts: things may be broken on your side.


[feat] Register URI scheme for the app to install plugins by clicking a link

URI scheme should be cli://
Example : https://github.com/wwaites/pyfinger/blob/master/pyfinger/fingerurl.py
Doc : https://docs.python.org/3/library/urllib.request.html#basehandler-objects
SO : https://stackoverflow.com/questions/11504088/is-it-possible-to-register-an-uri-scheme-using-python

See if possible to make X platform


2023-08-07: Add weekly report

I'm not used to data collection from issues/milestone. I'll investigate further to collect issues/task completion during the past week. In the meantime, most of it is here and can be reviewed.

@CohenArthur this PR missed accurate data for the whole milestone/GitHub data thing.

@P-E-P that's okay, no worries. It's only a weekly report and I wanted a base for today's report :) it will be all good in the monthly report. Now go back to vacation!


Is there any way to get the number of the range days?

It would be interesting to have a callback method to return the number of the range days.

up

you can use
  const [startDate, setStartDate] = useState(null);
  const [endDate, setEndDate] = useState(null);

  const totalDays = totalDaysHandler(startDate, endDate);

  function totalDaysHandler(startDate, endDate) {
    if (!startDate || !endDate) return 0;

    const millisecondsPerDay = 24 * 60 * 60 * 1000;
    const days = Math.round((endDate - startDate) / millisecondsPerDay) + 1;

    return days;
  }


Add project documentation

It's nessesary to add documentation to project.
The documentation should include:

[x] Instructions on how to set up the project locally

[x] Explanation of any custom libraries or modules used in the project

[x] Contribution guidelines and code of conduct

I propose that we use a tool like Sphinxto generate the documentation, and we can host it on https://readthedocs.org/.

Closes #10


build: Update Vulkan-Headers and -Tools to 1.3.208

CI Vulkan-ExtensionLayer build queued with queue ID 2025.

CI Vulkan-ExtensionLayer build # 127 running.

CI Vulkan-ExtensionLayer build # 127 passed.


Qt theme for windows

Recreation of https://github.com/Nuitka/Nuitka/pull/256
Thank your for contributing to Nuitka!
!! Please check that you select the develop branch (details see below link) !!
Before submitting a PR, please review the guidelines:
https://github.com/kayhayen/Nuitka/blob/master/CONTRIBUTING.md
What does this PR do?
Why was it initiated? Any relevant Issues?
PR Checklist

[ ] Correct base branch selected? develop for new features and bug fixes too. If it's
part of a hotfix, it will be moved to master during it.
[ ] All tests still pass. Check the developer manual about Running the Tests. There
are Travis tests that cover the most important things however, and you are
welcome to rely on those, but they might not cover enough.
[ ] Ideally new features or fixed regressions ought to be covered via new tests.
[ ] Ideally new or changed features have documentation updates.

So it seems "all" and "sensible,styles" should already work for you, can you try --enable-plugin=qt-plugins=sensible,styles and see if that does it without the code change? That would leave us with answering if including styles would be sensible or not.
Does your application pick a style (how), or is this about avoiding a fallback to unstyled that is very ugly, if I recall it correctly?

I tried the command with PyQt5WithPIL.py
nuitka --standalone --mingw64 --remove-output --enable-plugin=qt-plugins=sensible,styles  PyQt5WithPIL.py --show-progress
It solved the problem ! I think the meaning of qt-plugins=sensible,styles should be explained  in the documentation.

Hello there,

It solved the problem ! I think the meaning of qt-plugins=sensible,styles
should be explained in the documentation.

I think it should just be part of "sensible", which is the default. I still
need to check out how large an effect it is. The ImportError and Qt
plugin discovery problem is something I am going to look into later. I have
access to a Windows machine, but too low on time right now.
But thanks on persisting in reporting on this issue, it seems easy now.
Yours,
Kay

To merge this change, I would need to know what kind of impact including styles has one Windows and Linux in terms of distribution size, otherwise this could easily lead to creep in dependencies on KDE, Gnome, what not, and even for styles on Windows, how many are there, which effect does it have, do we want to include only one?

Closing for lack of feedback.


Files for Predictive Analytics in KNIME - Machine Learning AI to Predict Customer Churn

Hi the files for the last chapter Predictive Analytics in KNIME - Machine Learning AI to Predict Customer Churn are not available.
Can you please upload them? Thanks, great course!

Hi
Thank you for bringing this to our attention. We have updated the code bundle.
https://github.com/PacktPublishing/KNIME-A-Guide-for-Absolute-Beginners/blob/78eaeb137d06fda562337e5b01ed87805ebda2fd/Predictive Analytics Customers.xlsx
https://github.com/PacktPublishing/KNIME-A-Guide-for-Absolute-Beginners/blob/main/New Customer Prediction.xlsx


Builder generates empty sourcemaps for typescript project

I've got a really radical reproduction repository right here:
https://github.com/bnolan/systemjs-coverage
If you run gulp - it outputs the sourcemap:
  sourceMap: '{"version":3,"sources":[],"names":[],"mappings":"","file":"undefined"}',

Not sure what I'm doing wrong / what's wrong with system?

Apologies for the delayed response, I missed this one.
Just to follow up - the advised workflow here is to use https://github.com/frankwallis/plugin-typescript instead of the internal typescript support.


terminal scan command can not run through swift code.

Issue Description
when i use "scan" from terminal, it runs properly.
but if i want to run this scan command through swift code like below:
import Foundation
class runTest{
class func shell(args: String...) -> Int32 {
    let task = NSTask()
    task.launchPath = "/usr/bin/env"
    task.arguments = args
    task.currentDirectoryPath = "/Users/username/Desktop/Xocde/ios-ui-automation-demo-master/"
    task.launch()
    task.waitUntilExit()
    return task.terminationStatus
}

}
runTest.shell("scan") //func call
it gives the below error:
env: scan: No such file or directory
Program ended with exit code: 0
Complete output when running fastlane, including the stack trace and command used
error:
env: scan: No such file or directory
Program ended with exit code: 0

I don't believe this is a supported way of running scan or any other tool within fastlane. What's the end goal here?

actually i want to run the "scan" command through swift code in osx. In terminal it scan command runs but in swift code it does not.

Right, but what are you trying to achieve running scan in Swift?

Actually i am using this  for testing automation purpose.  I have done a lot of things by my code. I used a lot of terminal command in my swift code. But i stuck when i use this "scan" terminal command in my swift code. Actually it will be very helpful for me if i can run this terminal "scan" command through my swift code.


Writing program output to file

Can you please give an example of how to write resulting trajectories to file?
According to the main.cpp, it seems that providing more than 2 command-line arguments should cause the call to print_solution(), and it indeed happens, but it doesn't write anything to file and the program terminates with a segmentation fault.
I've used provided file input_MOT_seq07_followme.txt as input, in case it helps.

The issue is noted. We will come back to you soon.

Hi Alexey, you can change the line 61 of Graph.cpp from "if (false) {" to "if (true) {". Then print function should work correctly.
This is because if we want to evaluate or output the flow results, we will need several variables for "org_graph". For finding the min-cost, they are not needed.
Best,

Thank you for a prompt feedback, it resolves the issue!


fixed dates

Tried to fix the date on the second part of harry potter article

all done, hopefully


chore: build

🚶

⚡ Deploying PR Preview f92da82bcb3823e111de16ff98ec85b6e97e309f to surge.sh ... Build logs

🤖 By surge-preview


[Windows Simulator]: runtime bug downloading plug-ins

Describe the bug
After switching from google v3 billing to the new billing plug-in the simulator will crash with
15:09:18.905  ERROR: Runtime error
15:09:18.905  D:\a\corona\corona\subrepos\composer\composer.lua:1457: D:\a\corona\corona\platform\resources\init.lua:931: module 'plugin_google_iap_billing' not found:
15:09:18.905  	no field package.preload['plugin_google_iap_billing']
Target platform and where build was made:

Device: Windows 10
Solar Build: 3622 and 3621

Additional context
I cleared ~\AppData\Roaming\Corona Labs\Corona Simulator\Plugins and  ~\AppData\Roaming\Solar2DPlugins\Caches
I have also uninstalled/reinstall Solar
After doing this, now NO in-app plugins will download.  Apple, Amazon, etc will give the same error

This is weird. Can you attach your build.settings?

build settings attached.  I have also tried to revert to an old build settings we've used for years and it gives similar errors.
build.zip

So the issue is supportedPlatforms. You can omit that or wait for a fix, where simulator forces plugins to download, regardless of the supportedPlatforms value. Probably coming in today.


Numerical Stability Concerns

Hi, this seems like a super promising direction for making large language model training more scalable and accessible. However, as was also noted in #10, there seems to be a slight, but potentially significant numerical mismatch with the reference Pytorch attention implementation. A quick check of the computed values with a 768-dimension, 4,096 sequence length setup yields:
plain_fwd = attention_ref(qkv, attention_mask_bool, dropout_p, causal=causal)
flash_fwd = flash_attn_func(qkv[0], cu_seqlens, dropout_p, max_seqlen_in_batch, causal=causal)
delta = plain_fwd - flash_fwd
total_value = lambda val: val.abs().sum().item()
print(f'Total Activations: plain={total_value(plain_fwd):.2f}, flash={total_value(flash_fwd):.2f}, delta: {total_value(delta):.2f}')
# Total Activations: plain=65408.00, flash=65408.00, delta: 7.32

That is, while both functions achieve the same total value, small differences sum up to a meaningful delta. An inspection of the difference shows that about 86% of the values in delta are "true" zeros, with the remainder being off by about 1.7e-5 on average. Locations where the delta was non-zero were not particularly different in absolute activation.
Note that I removed all padding and replaced qkv_unpad with qkv[0] to make these more comparable -- using qkv_unpad even without any padding tokens present cause the delta to grow to 93.31 and the total activations to diverge. I also disabled dropout to ensure this is not due to randomness in the function itself.
Do you have any leads on where this instability might originate and if it can be remedied? If it can be fixed, this optimization could be really impactful.
-Vincent

Thanks for the investigation, this is great!
I think that amount of numerical error might be expected since we're using fp16.
This topic of numerical error is super interesting. I'd love to understand your use case better!
More details: we probably want to compare the numerical error of the Pytorch implementation in fp16 - Pytorch implementation in fp32, and Flash (in fp16) - Pytorch implementation in fp32.
They have similar max absolute error, and FlashAttention has slightly higher relative error.
This could be because of the difference in the order of operations.
Btw you can cast the delta to float so that summation doesn't exceed 64K (which is the limit of fp16).
ref_fp32_fwd = attention_ref(qkv, attention_mask_bool, dropout_p, causal=causal, upcast=True)
ref_fwd = attention_ref(qkv, attention_mask_bool, dropout_p, causal=causal)
flash_fwd = flash_attn_func(qkv_unpad, cu_seqlens, dropout_p, max_seqlen_in_batch, causal=causal)
flash_fwd = rearrange(flash_fwd, '(b s) h d -> b s h d', b = batch_size)
delta_ref = ref_fwd - ref_fp32_fwd
delta_flash = flash_fwd - ref_fp32_fwd
total_value = lambda val: val.float().abs().sum().item()
print(f'Reference fp16 max absolute error = {delta_ref.abs().max().item()}')
print(f'Reference fp16 mean relative error = {total_value(delta_ref) / total_value(ref_fp32_fwd)}')
print(f'Flash max absolute error = {delta_flash.abs().max().item()}')
print(f'Flash mean relative error = {total_value(delta_flash) / total_value(ref_fp32_fwd)}')

# Reference fp16 max absolute error = 6.103515625e-05
# Reference fp16 mean relative error = 7.466496773477096e-05
# Flash max absolute error = 6.103515625e-05
# Flash mean relative error = 0.00011073935366785967

As another example of order of operations causing numerical differences, if you simply multiply the result by 3.0 then divide it by 3.0, you get a numerical difference of the same magnitude.
delta_mul = ref_fwd - (ref_fwd * 3.0) / 3.0
print(f'Multiply fp16 max absolute error = {delta_mul.abs().max().item()}')
print(f'Multiply fp16 mean relative error = {total_value(delta_mul) / total_value(ref_fwd)}')
# Multiply fp16 max absolute error = 6.103515625e-05
# Multiply fp16 mean relative error = 8.713470482512265e-05

Btw we're working on implementing FlashAttention for bf16 format. The folk wisdom seems to be that bf16 training is more stable than fp16 training in general.

Btw we're working on implementing FlashAttention for bf16 format. The folk wisdom seems to be that bf16 training is more stable than fp16 training in general.

+1 that would be great

Hi, thanks a ton for getting back to me! I appreciate the further analysis; it sounds like you are saying that these very minor deltas are expected given the low resolution of 16-bit floats (and the 64K total makes sense now, didn't think of that). The difference between qkv[0] and qkv_unpad must be a similar reason: despite x and x_unpad being identical (modulo batch shape), their results after being passed to Wqkv diverge by a similarly small amount.
I guess the only other risk would be if these kinds of small deltas are more prone to occurring in large attention values, since the softmax would then amplify such differences, which can even cause overflows. I haven't noticed a consistent skew like that so far, but it might still explain the instabilities that others noticed. bf16 would go a long way towards addressing that risk since it uses a much larger exponent. Looking forward to seeing that support!
For some contenxt: I am considering training a large language model like PolyCoder with this attention implementation to see if it will allow better scaling on limited resources. Especially the vastly reduced memory footprint should make a big difference by allowing larger batch sizes. I was trying to see if someone else had done something similar (e.g., #12 asks for the same) and found the issue by lucidrains that mentions that it seems like there are numerical instabilities that might complicate training. Hence this issue checking on whether/to what extent those could pose problems.
Thanks again!
-Vincent

bf16 is now supported.

@tridao tremendous! eager to hear if this solves the issue!

Same, thanks for adding that! @lucidrains do you still have the GPT-2 wrapper with this attention that you mentioned in #10? It'd be great to see if training is more stable now; happy to run it on my machine if you can point me to the code.

@VHellendoorn Tri indicated he has some experiments in progress https://github.com/HazyResearch/flash-attention/commit/5b838a8bef78186196244a4156ec35bbb58c337d#commitcomment-77949422 was going to touch base with him early next week

@VHellendoorn that figure actually came from the paper itself

Ah, I see! Thanks, I'll see if I can put something together too.

@VHellendoorn same, i'll do a small run with enwik8 later tonight, as a litmus test

all things said and done, if Tri is able to smooth out all the issues, i owe him and his team a dinner. Markus Rabe too

We all will. Let me know if you're ever in Pittsburgh, Tri! :) I'm definitely very excited about seeing this get merged into Apex. That would help a lot of people very quickly.


add check for excessive libvirtd memory usage

there have been some reports from the field about libvirtd consuming more memory than usual, sometimes steadily growing over time into the 100s of GBs which would clearly indicate a memory leak. We can easily check how memory is being used in hotsos so lets add a check and warn if usage goes above e.g. 5G which should be plenty of memory.

see https://github.com/canonical/hotsos/blob/main/hotsos/defs/scenarios/openvswitch/ovn/service_mem_usage.yaml for an example


chore: mark dendron.dendron-markdown-links as incompatible

The extension dendron.dendron-markdown-links is unnecessary since the note graph is built into Dendron now, but it also breaks the built-in note graph. This change will warn users if they have the extension installed.

Looks like there's a failing test:
@dendronhq/plugin-core:   2) FIND_INCOMPATIBLE_EXTENSIONS
@dendronhq/plugin-core: 	at process.topLevelDomainCallback (node:domain:152:15)
@dendronhq/plugin-core:        GIVEN findIncompatibleExtensions selected
@dendronhq/plugin-core: 	at process.callbackTrampoline (node:internal/async_hooks:128:24)
@dendronhq/plugin-core:          THEN List all as not installed if found none:
@dendronhq/plugin-core:       AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
@dendronhq/plugin-core: 11 !== 10

Thanks for catching the error in the tests!
@hikchoi I added this extension to that list already, but yes we should add any others we know cause bugs.

Thanks for catching the error in the tests!
@hikchoi I added this extension to that list already, but yes we should add any others we know cause bugs.

ah right. I didn't notice the update to the docs because a docs PR wasn't linked to this 😅


Back end maintenace

Create a new Rails API app called 'hello-rails-back-end'.
Initialize your project with Git.
Make sure that your project has a Postgres database set up.
Create a table for storing your messages and create 5 different greetings.
Create an API endpoint that selects a random greeting from your table (you will need a controller with an action and rails route).
In the README file for the Rails API, add a link to your React app.
Also, in the README file for the React app, add a link to your Rails API.
When submitting for a review - use a link to the pull request in your Rails API.
In the repo for the frontend part - include a PR with changes.
The pull request for the front end:
https://github.com/OnlyUnknown/hello-react-front-end/pull/1

hello @mukhammadrizooff Kindly check the dev branch he added a descriptive README otherwise I wouldn't be able to proceed with the review

hello @mukhammadrizooff Kindly check the dev branch he added a descriptive README otherwise I wouldn't be able to proceed with the review

Hi @OnlyUnknown, Kindly you right but Student will merge this  branch and current README file implement as a main