Seedcracker crashes

07:20:17.908
Mod lod uses the version 1.6.11a which isn't compatible with Loader's extended semantic version format (Could not parse version number component '11a'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version
07:20:17.921
Mod com_seedfinding_mc_biome uses the version b2271807a047bb43ac60c8c20ad47e315f19b9a6 which isn't compatible with Loader's extended semantic version format (Could not parse version number component 'b2271807a047bb43ac60c8c20ad47e315f19b9a6'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version
07:20:17.951
Mod com_seedfinding_mc_noise uses the version a6ab8e6c688491829f8d2adf845392da22ef8e9c which isn't compatible with Loader's extended semantic version format (Could not parse version number component 'a6ab8e6c688491829f8d2adf845392da22ef8e9c'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version
07:20:17.957
Mod com_seedfinding_mc_feature uses the version c29fd1fcd746e14c1bcdb127da3113ba273db1fd which isn't compatible with Loader's extended semantic version format (Could not parse version number component 'c29fd1fcd746e14c1bcdb127da3113ba273db1fd'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version
07:20:17.959
Mod com_seedfinding_mc_core uses the version d685a37f0a466d4bf800e7f285daf9ef73c81678 which isn't compatible with Loader's extended semantic version format (Could not parse version number component 'd685a37f0a466d4bf800e7f285daf9ef73c81678'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version
07:20:17.966
Mod com_seedfinding_mc_seed uses the version 5518e3ba3ee567fb0b51c15958967f70a6a19e02 which isn't compatible with Loader's extended semantic version format (Could not parse version number component '5518e3ba3ee567fb0b51c15958967f70a6a19e02'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version
07:20:17.968
Mod com_seedfinding_mc_terrain uses the version 9e937ddb838e28e79423c287fa18b1ce66f061d7 which isn't compatible with Loader's extended semantic version format (Could not parse version number component '9e937ddb838e28e79423c287fa18b1ce66f061d7'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version
07:20:18.014
Mod com_seedfinding_mc_reversal uses the version ca64c0890c106f1a2207623c316fce86f250b918 which isn't compatible with Loader's extended semantic version format (Could not parse version number component 'ca64c0890c106f1a2207623c316fce86f250b918'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version
07:20:18.261
Mod com_seedfinding_mc_math uses the version 0eb505174da8a92550f8ec6efe254e0fa936cc0d which isn't compatible with Loader's extended semantic version format (Could not parse version number component '0eb505174da8a92550f8ec6efe254e0fa936cc0d'!), SemVer is recommended for reliably evaluating dependencies and prioritizing newer version
Now, i know that this mod does work in 1.19.4 but for some reason i have forgotten which fabric loader to use and i've gone through all of then from 14.14-14.17

latest.log


Organize options to support a large number of ImageMagick commands

ImageMagick has so many command line options, we need to decide a better way to organize them in this library.
In the "FFmpex" library I catalog the options in simple structs, and use a macro to turn them into functions. https://github.com/talklittle/ffmpex/tree/master/lib/ffmpex/options -- Maybe we could use a similar approach in Mogrify?

@talklittle awesome work you guys doing. Just wanted to tell if no one is working on this one I would like to give back and contribute to some Elixir projects. I have been paying with Elixir for a while and would to help as much as possible.
Thanks Gustavo.

@GustavoCaso Sure, please do! I don't think anyone is actively working on this one. Thank you for offering.

@talklittle how you doing? I'm working on this one 🎉
Following your other library what about this DSL for mogrify
open(@fixture)
|> add_option(option_rotate("-90>"))
|> save


[compatible] dune: run dune fmt at the project root

On top of https://github.com/MinaProtocol/mina/pull/16128.
Explain your changes:
*
Explain how you tested your changes:
*
Checklist:

[ ] Dependency versions are unchanged

Notify Velocity team if dependencies must change in CI

[ ] Modified the current draft of release notes with details on what is completed or incomplete within this project
[ ] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[ ] Tests were added for the new behavior

Document test purpose, significance of failures
Test names should reflect their purpose

[ ] All tests pass (CI will check this if you didn't)
[ ] Serialized types are in stable-versioned modules
[ ] Does this close issues? List them

Closes #0000

!ci-build-me

Closing for now. I would certainly open a new one in the future when I'll be back on Mina.


github.com/google/protobuf moved to github.com/protocolbuffers/protobuf?

Up until recently, github.com/google/protobuf hosted the main protobuf compiler (or at least the releases for it).
Some doc references still point to it, like https://grpc.io/docs/protoc-installation/#install-pre-compiled-binaries-any-os and https://developers.google.com/protocol-buffers/docs/downloads (the Old Versions link).
Now, github.com/google/protobuf redirects to github.com/google/protobuf.dart.
https://github.com/protocolbuffers/protobuf appears to be the new home of the compiler.
Were the repos moved recently? Some of our build automation is now failing to download a tagged release from this github repo. Seems like this would break a lot of other users too.

Our build is also breaking because of this change. Did it just happen?

I can confirm the same, looks like it just started happening. My build fails with 404 error when downloading https://github.com/google/protobuf/releases/download/v3.9.0/protoc-3.9.0-linux-x86_64.zip

It seems they've fixed the problem now by fixing the redirect. https://github.com/google/protobuf now redirects to https://github.com/protocolbuffers/protobuf

Great, the redirect is fixed.
I'm updating our references of github.com/google/protobuf to github.com/protocolbuffers/protobuf, and suggest others do the same.


compileKotlin task of build with kotlin-dsl applied emits warnings when configuration-cache is enabled

Expected Behavior
No warning as when the configuration-cache is disabled.
Current Behavior
With the configuration cache the warning silencer is discarded
https://github.com/gradle/gradle/blob/20edc4fbec838b4d4aad55664ddbac5d5e62b23c/subprojects/kotlin-dsl-plugins/src/main/kotlin/org/gradle/kotlin/dsl/plugins/dsl/KotlinDslCompilerPlugins.kt#L80
and the task produces a large scary warning:
> Task :compileKotlin
w: ATTENTION!
This build uses unsafe internal compiler arguments:

-XXLanguage:+DisableCompatibilityModeForNewInference
-XXLanguage:-TypeEnhancementImprovementsInStrictMode

This mode is not recommended for production use,
as no stability/compatibility guarantees are given on
compiler or generated code. Use it at your own risk!

Context (optional)
No response
Steps to Reproduce

git clone https://github.com/eskatos/issue-reproducers.git
cd issue-reproducers/gradle-25483
./gradlew compileKotlin

Gradle version
8.1.1
Build scan URL (optional)
https://scans.gradle.com/s/jus72kvlg5kky/console-log?page=1#L7
Your Environment (optional)
No response

CC support for Task.logging.captureStandardOutput() is also missing, https://github.com/gradle/gradle/blob/4aba237c7ebe088fe691baa4b7befb9417c22d57/subprojects/logging/src/integTest/resources/org/gradle/internal/logging/LoggingIntegrationTest/logging/project1/build.gradle#L36-L41

Thank you for providing a valid reproducer.
The issue is in the backlog of the relevant team and is prioritized by them.

If you modularize you build-logic it prints this out for every subproject.
Are there any workarounds that would allow us to suppress this in 8.3 pending the real fix?


cargo edit: 0.5.0 -> 0.6.0

Motivation for this change
New release: https://github.com/killercup/cargo-edit/releases/tag/v0.6.0
Additional changes:

Add myself as maintainer
Some workspace test failed with a cargo config error, I didn't investigate too much. This was a problem in earlier versions, too.

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

ping @bhipple should be good to merge

1 package built:
cargo-edit


Add hover state for footer's menu

What would you like to share?

Align text to the left on English mode.
Hover mode-
Text font changes to bold, and changes it's color to-
Dark mode- blue 400 (#60A5FA)
Light mode- blue 600 (#3B82F6)

Additional information
No response

assigned


usage: jupyter.py [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir]
[--paths] [--json] [--debug]
[subcommand]

Ok so it looks like Jupyter is not working outside vscode as well, i.e. its not a problem with the Jupyter extension but a problem with the Python environment itself (i.e. its a user environment issue).
As this is outside the control of vscode, i'm closing this issue.
@eleanorjboyd I would suggest using Conda for working with Data Science (Jupyter) packages, that works best and almost flawlessly.

Sounds good thanks for the help!

The problem is simple
Based on the docs the users need to update their PATH variable, its actually event printed in the terminal
More information here https://github.com/microsoft/vscode-jupyter/issues/12808#issue-1579598340

This should be fixed in the latest stable version
@eleanorjboyd please could you test with the laetst insiders and pre-release version of Jupyter extension and pre-release of P6ytohn extesnion
Please ensure you select the homebew version of Python as the kernel as well as the interpreter to start jupyter

Open the command palette, and select the command Select Interpreter to Start Jupyter, and select the Homebrew version of Python
When prompted, install the dependencies and things shioudl now work

@connor4312 please could you also test this in the linux environment you used, you can use the same Python (I believe it was apt-get python3) as mentioned here https://github.com/microsoft/vscode-jupyter/issues/12632#issuecomment-1402831929
Please let me know how that goes

jupyter log.txt.zip

@connor4312 looks like you have the older version of the Jupyter extension, you need version 2023.2.*
Perhaps you might want to install stable version of VS Code and then install the pre-release version
Not sure why you aren't getting last months pre-release versions in your VS Code insiders

Ah, apologies. Here we go: seems like it detected what was wrong this time

@connor4312 please could you run the following and upload the contents of output.txt file
/bin/python3 -m pip install -U --user jupyter notebook --force-reinstall > output.txt
Basically I would like to see all of the output (the logs do not have everything as the packages were already isntalled)

ms-toolsai-jupyter-insiders.vsix.zip
@connor4312 please could you install this VSIX and let me know how this goes. Thanks, testing for the release

That's working for me now!

closing as verified


How can I get credentials for authentication for the kubernetes/client-node library?

Don't see anything at https://googleapis.dev/nodejs/container/latest/index.html#reference for auth / credentials.
I'm essentially looking for what gcloud container clusters get-credentials standard-cluster-1   --zone us-central1-a woud be doing. But instead for the client API. kubernetes/client-node.

@chrissound if you're running on GKE, you should be able to specify a default service account to apply to containers that are provisioned. In turn, when you instantiate a library such as nodejs-cloud-container, it will use these default service credentials (which are automatically associated with the container). It does so using google-auth-library-nodejs under the hood.

Yeah authentication is fine, but how do I get the k8s credentials/contexts?
I mean this is essentially what I came up with, but I basically gave up...
const k8s = require('@kubernetes/client-node');
const yaml = require('js-yaml');
const fs   = require('fs');
const { spawn } = require('child_process');
const { auth, Cluster } = require('google-auth-library');
const {google} = require('googleapis');
const container = require('@google-cloud/container');

exports.createJob = async function(){

    try {

        // const authClient = await auth.getClient({
            // scopes: [
                // 'https://www.googleapis.com/auth/cloud-platform',
            // ],
        // });
//
        const client = new container.v1.ClusterManagerClient();

        const zone = 'us-central1-a';
        const projectId = await client.getProjectId();
        const clusterId = "standard-cluster-1";
        const request = {
          projectId: projectId,
          zone: zone,
          clusterId: clusterId
        };

        const response = await client.getCluster(request);

        const kc = new k8s.KubeConfig();
        kc.loadFromOptions({clusters: [response]});
        console.log(kc.getContexts());

        const k8sApi = kc.makeApiClient(k8s.BatchV1Api);
    } catch (e) {
        console.log(e);
        process.exit(1);
    }
}

is there any API to get admin credentials from cluster ?

I'm still looking for an answer on this too.
This is where I got up to
// get the cluster information based on my existing application default credentials
        const [clusterResponse] = await gcpClient.getCluster(clusterProp);
        console.log(clusterResponse)

//recreate the structure of the `~/.kube/config` file in objects
        cluster = {
            name: `gke_${projectId}_${zone}_${clusterId}`,
            server: `https://${clusterResponse.endpoint}`,
            skipTLSVerify: true,
            caData: clusterResponse.masterAuth.clusterCaCertificate
        }
// this pulls the master username and password -> turns out this is NOT useful...
        user = {
            name: clusterResponse.masterAuth.username,
            password: clusterResponse.masterAuth.password
        }
        context = {
            name: 'my-context',
            user: user.name,
            cluster: cluster.name
        }

//then use the actual kube client
        const kc = new k8s.KubeConfig()
//this is the mocked up `~/.kube/config` setup
        kc.loadFromOptions({
            clusters: [cluster],
            users: [user],
            contexts: [context],
            currentContext: context.name
        })
        const k8sApis = kc.makeApiClient(k8s.CoreV1Api);
        return k8sApis.listNamespacedPod('default').then((response) => {
            console.log(`pods are: ${JSON.stringify(response.body)}`)
        })
        .catch((err) => {
            console.error(`caught: ${err.message}`)
            console.error(err)
        })

Except this gives me a 403 because the user from the masterAuth is an anonymous system user that can't do anything...
So I'm STILL stuck on trying to figure out how to get credentials from gcp.

@chrissound found a solution:
  const request = { projectId, zone, clusterId: clusterName };
  const cluster = (await client.getCluster(request))[0];
  const kc = new k8s.KubeConfig();

  kc.loadFromClusterAndUser(
    {
      name: cluster.name,
      server: `https://${cluster.endpoint}`,
      skipTLSVerify: true
    },
    {
      username: cluster.masterAuth.username,
      password: cluster.masterAuth.password
    }
  );
  const k8sApi = kc.makeApiClient(k8s.AppsV1Api);

  // find the particular deployment
  const res = await k8sApi.readNamespacedDeployment(name, namespace);

I ran into similar situation where I need to authenticate to GKE cluster externally from a GCE VM. Inspired by this post, I managed to get it working with the following code:
const k8s = require('@kubernetes/client-node');
const {GoogleAuth} = require('google-auth-library');

const clusterId = 'xxx-cluster';
const gke_zone = 'us-central1-a';

// This is google-auth-library application default authentication API
// It'll fetch the GCE service account automatically, we will use it for GKE credential
// Reference: https://github.com/googleapis/google-auth-library-nodejs#choosing-the-correct-credential-type-automatically
const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/cloud-platform'
});

async function getPods(namespace) {
    const cluster = await configCluster(gke_zone, clusterId);
    /**
     * Automatically obtain application default credentials, and return
     * an access token for making requests.
     */
    const auth_token = await auth.getAccessToken();
    const k8s_client = new k8s.CoreV1Api('https://' + cluster.endpoint);

    // This method picks up GCP ADC to k8s context
    // It decorate API calls to GKE via  Oauth token
    k8s_client.setDefaultAuthentication({
        applyToRequest: (opts) => {
            // this is forming the certificate-authority for the api server
            opts.ca = Buffer.from(cluster.masterAuth.clusterCaCertificate, 'base64');
            if (!opts.headers) {
                opts.headers = [];
            }
            opts.headers.Authorization = 'Bearer ' + auth_token;
        },
    });

    k8s_client.listNamespacedPod('default').then((res) => {
	   console.log(res.body);
        },
        (err) => {
            console.log('Error!: ' + err);
        },
    );
}

/**
 * This method is equivalent of
 * gcloud container clusters get-credentials cluster1 --zone us-central1-a --project project1
 */
async function configCluster(zone, clusterId) {

    /**
     * Instead of specifying the type of client you'd like to use (JWT, OAuth2, etc)
     * this library will automatically choose the right client based on the environment.
     */
    const client = await auth.getClient();

    const projectId = "project-xxx";
    const res = await client.request({
        url: `https://container.googleapis.com/v1/projects/${projectId}/zones/${zone}/clusters/${clusterId}`,
    });
    return res.data;
}

getPods('default').catch(console.error);

I have the GCE VM service account configured to access GKE cluster and integrated with GKE RBAC.

@donmccasland a few folks have gotten tripped up here - sounds like a worthwhile thing to add to the docs on cloudsite!

agreed.  we'll start looking at a doc change.

I tried with @gangchen03's method but failed with this error:
{ HttpError: HTTP request failed
    at Request.localVarRequest [as _callback] (xxx/node_modules/@kubernetes/client-node/dist/gen/api/coreV1Api.js:10042:40)
    at Request.self.callback (xxx/node_modules/request/request.js:185:22)
    at Request.emit (events.js:198:13)
    at Request.<anonymous> (xxx/node_modules/request/request.js:1154:10)
    at Request.emit (events.js:198:13)
    at IncomingMessage.<anonymous> (xxx/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:286:20)
    at IncomingMessage.emit (events.js:203:15)
    at endReadableNT (_stream_readable.js:1143:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
...
  response:
       IncomingMessage {
             ....
             body:
             { kind: 'Status',
               apiVersion: 'v1',
               metadata: {},
               status: 'Failure',
               message:
                  'pods is forbidden: User "system:anonymous" cannot list resource "pods" in API group "" in the namespace "default"',
               reason: 'Forbidden',
               details: [Object],
               code: 403
             }
       },
   ...
}

I have tested the API via Postman with the same Bearer token, with the https://${endpoint}/api/v1/namespaces/default/pods, without enabling the "SSL certification verification", it successfully returns the correct response (showing all the pods).
So I tried with the same solution but added the opts.strictSSL = false;
k8s_client.setDefaultAuthentication({
    applyToRequest: (opts => {
        opts.ca = Buffer.from(clusterCaCertificate, 'base64');
        if (!opts.headers) {
            opts.headers = [];
        }
        opts.headers.Authourization = 'Bearer ' + auth_token;
        opts.strictSSL = false;
    }),
});

Does anyone has any idea on this error? Would this be the permission setting of my GCP service account? (But it works via Postman Api call).

The three essential components that are added to the kube-config file when gcloud container clusters get-credentials ... is called is:

The certificate authority data
The master node endpoint
The access token specific to the GCP service account that's used with the gcloud cli

The gcloud CLI tools updates the kube/config automatically to add a new context so that it can be used with the kubectl command subsequently. The following is a sample based off of what @gangchen03 has shared to get the same information as what's updated by gcloud when get-credentials is called. The example subsequently uses the @kubernetes/client-node library to list the services on the cluster
const googleContainer = require('@google-cloud/container');
const k8s = require('@kubernetes/client-node');

// Create the Cluster Manager Client
const client = new googleContainer.v1.ClusterManagerClient();

/**
 * The following function is equivalent to the 'get-credentials' call using
 * gcloud. The client assumes that the 'GOOGLE_APPLICATION_CREDENTIALS'
 * environment variable is set to the json key file associated to your GCP
 * service account (https://cloud.google.com/docs/authentication/production#create_service_account).
 *
 * The return values of this method are the credentials that are used to update
 * the k8s config file (~/.kube/config) to add a new context when
 * 'get-credentials' is invoked by the 'gcloud' CLI
 */
async function getCredentials(cluster, zone) {
  const projectId = await client.getProjectId();
  const accessToken = await client.auth.getAccessToken();
  const request = {
    projectId: projectId,
    zone: zone,
    clusterId: cluster
  };

  const [response] = await client.getCluster(request);
  // the following are the parameters added when a new k8x context is created
  return {
    // the endpoint set as 'cluster.server'
    endpoint: response.endpoint,
    // the certificate set as 'cluster.certificate-authority-data'
    certificateAuthority: response.masterAuth.clusterCaCertificate,
    // the accessToken set as 'user.auth-provider.config.access-token'
    accessToken: accessToken
  }
}

async function listServices() {
  const k8sCredentials = await getCredentials('smean-cluster', 'us-central1-c');
  const k8s_client = new k8s.CoreV1Api('https://' + k8sCredentials.endpoint);
  /**
   * This method uses the same credentials that is stored in the k8s config file
   */
  k8s_client.setDefaultAuthentication({
    applyToRequest: (opts) => {
      opts.ca = Buffer.from(k8sCredentials.certificateAuthority, 'base64');
      if (!opts.headers) {
          opts.headers = [];
      }
      opts.headers.Authorization = 'Bearer ' + k8sCredentials.accessToken;
    },
  });

  k8s_client.listNamespacedService('default').then(
    (res) => {
      printServices(res.body.items);
    },
    (err) => {
      console.log('Error!: ' + err);
    },
  );
}

function printServices(services) {
  services.forEach(svc => {
    const name = svc.metadata.name;
    const type = svc.spec.type;
    const clusterIp = svc.spec.clusterIP;
    const externalIP = svc.spec.externalIPs || "<none>";
    let ports = "";
    svc.spec.ports.forEach((p) => ports += `${p.port}/${p.protocol},`)
    ports = ports || "<none>"
    console.log("" +
      name + "\t" +
      type + "\t" +
      clusterIp + "\t" +
      externalIP + "\t" +
      ports
    );
  });
}

listServices();

@chrissound - You can also use the return values from getCredentials() above to build a .kube/config like configuration as follows and use the @kubernetes/client-node client methods.
I have just re-written the listServices() method from the sample in my earlier comment
async function listServices(cluster, zone) {
  const k8sCredentials = await getCredentials(cluster, zone);
  const k8sClientConfig = new k8s.KubeConfig();
  k8sClientConfig.loadFromOptions({
    clusters: [{
      name: `my-gke-cluster_${cluster}`,            // any name can be used here
      caData: k8sCredentials.certificateAuthority,  // <-- this is from getCredentials call
      server: `https://${k8sCredentials.endpoint}`, // <-- this is from getCredentials call
    }],
    users: [{
      name: `my-gke-cluster_${cluster}`,
      authProvider: 'gcp',                          // the is not a required field
      token: k8sCredentials.accessToken             // <-- this is from getCredentials call
    }],
    contexts: [{
      name: `my-gke-cluster_${cluster}`,
      user: `my-gke-cluster_${cluster}`,
      cluster: `my-gke-cluster_${cluster}`
    }],
    currentContext: `my-gke-cluster_${cluster}`,
  });
  const k8sApi = await k8sClientConfig.makeApiClient(k8s.CoreV1Api);
  k8sApi.listNamespacedService('default').then((res) => {
    printServices(res.body.items);
  });
}

Closing this issue, since the question is mostly specific to the usage of @kubernetes/client-node library with the k8s configuration returned by the @google-cloud/container library. Sufficient directions has been discussed.
Please let us know if it's still required more clarification.

Thank you


memory error caused by too big picture?

hi , your work is so nice!
i am trying to training with my custom data, i used labelme to make instance segmentation data annotation and turned it into coco fomat. following the readme, all is well until i ran the training order:
python train.py --config=yolact_base_config --batch_size=1
different errors occurs, sometime say memory is not enough(32GB total),sometime say cuda memory is not enough(my computer has 2*2080TI), sometime other error imformation. i open the system monitor and run the order, find that the memory usually increase from 3GB to 32GB and then error occurs.
i think the key problem is that my custom dataset use too big picture ,which is 5760x3840
do you have any suggestions?should i change some config parameters? should i resize all pictures to small one and use labelme to make annotations again? how small should i resize? i have only two classes of objects need to be segmantated and these two kind of objects are relatively small to the whole picture, one picture may have over 100 objects.
and considering that use labelme to make annotations again is quite tiring, if there is some fancy way to resize pictures and their relatated annotations,it will be awesome!
i am new to deep learning, thanks for your kindness!

Hmm that's an interesting use case. You're correct in that your image size is the issue, but I'm not to sure YOLACT would work for a huge image with 100s of objects anyway. The first thing the network does is resize the image down to 550x550, meaning most of the objects would probably be impossible to see.
 I recommend creating a script to open your dataset's coco-format annotation file, then in the "annotations" array, there will be a bunch of objects with a field called "segmentation". You'll have to check, but I think that's just going to be a list of points for you. So all you need to do is scale each point in that list down the same amount as you scaled the image down (so if 550x550, multiply the x by 550/5760 and the y by 550/3840), and then do the same for each annotation.

thanks a lot for your reply!
i change the size of pictures and the related json annotation files, the memory error seems to be solved but new error occur, which i have no idea of how to solve it
the error imformation is as follows:
Traceback (most recent call last):
File "train.py", line 382, in
train()
File "train.py", line 257, in train
losses = criterion(out, wrapper, wrapper.make_mask())
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/modules/module.py", line 489, in call
result = self.forward(*input, **kwargs)
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 143, in forward
outputs = self.parallel_apply(replicas, inputs, kwargs)
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 153, in parallel_apply
return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)])
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 83, in parallel_apply
raise output
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 59, in _worker
output = module(*input, **kwargs)
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/modules/module.py", line 489, in call
result = self.forward(*input, **kwargs)
File "/home/sjtu/yolact/layers/modules/multibox_loss.py", line 141, in forward
pos_idx = pos.unsqueeze(pos.dim()).expand_as(loc_data)
RuntimeError: The expanded size of the tensor (20730) must match the existing size (10365) at non-singleton dimension 1.  Target sizes: [1, 20730, 4].  Tensor sizes: [1, 10365, 1]
is it something wrong with two 2080TI? or maybe the config file is not filled correctly?

my config file is as follows, thanks for your kindness!
from backbone import ResNetBackbone, VGGBackbone, ResNetBackboneGN, DarkNetBackbone
from math import sqrt
import torch
for making bounding boxes pretty
COLORS = ((244,  67,  54),
(233,  30,  99),
(156,  39, 176),
(103,  58, 183),
( 63,  81, 181),
( 33, 150, 243),
(  3, 169, 244),
(  0, 188, 212),
(  0, 150, 136),
( 76, 175,  80),
(139, 195,  74),
(205, 220,  57),
(255, 235,  59),
(255, 193,   7),
(255, 152,   0),
(255,  87,  34),
(121,  85,  72),
(158, 158, 158),
( 96, 125, 139))
These are in BGR and are for ImageNet
MEANS = (103.94, 116.78, 123.68)
STD   = (57.38, 57.12, 58.40)
COCO_CLASSES = ('person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus',
'train', 'truck', 'boat', 'traffic light', 'fire hydrant',
'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog',
'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe',
'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat',
'baseball glove', 'skateboard', 'surfboard', 'tennis racket',
'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl',
'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot',
'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop',
'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', 'oven',
'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase',
'scissors', 'teddy bear', 'hair drier', 'toothbrush')
COCO_LABEL_MAP = { 1:  1,  2:  2,  3:  3,  4:  4,  5:  5,  6:  6,  7:  7,  8:  8,
9:  9, 10: 10, 11: 11, 13: 12, 14: 13, 15: 14, 16: 15, 17: 16,
18: 17, 19: 18, 20: 19, 21: 20, 22: 21, 23: 22, 24: 23, 25: 24,
27: 25, 28: 26, 31: 27, 32: 28, 33: 29, 34: 30, 35: 31, 36: 32,
37: 33, 38: 34, 39: 35, 40: 36, 41: 37, 42: 38, 43: 39, 44: 40,
46: 41, 47: 42, 48: 43, 49: 44, 50: 45, 51: 46, 52: 47, 53: 48,
54: 49, 55: 50, 56: 51, 57: 52, 58: 53, 59: 54, 60: 55, 61: 56,
62: 57, 63: 58, 64: 59, 65: 60, 67: 61, 70: 62, 72: 63, 73: 64,
74: 65, 75: 66, 76: 67, 77: 68, 78: 69, 79: 70, 80: 71, 81: 72,
82: 73, 84: 74, 85: 75, 86: 76, 87: 77, 88: 78, 89: 79, 90: 80}
----------------------- CONFIG CLASS -----------------------
class Config(object):
"""
Holds the configuration for anything you want it to.
To get the currently active config, call get_cfg().
To use, just do cfg.x instead of cfg['x'].
I made this because doing cfg['x'] all the time is dumb.
"""

def __init__(self, config_dict):
    for key, val in config_dict.items():
        self.__setattr__(key, val)

def copy(self, new_config_dict={}):
    """
    Copies this config into a new config object, making
    the changes given by new_config_dict.
    """

    ret = Config(vars(self))

    for key, val in new_config_dict.items():
        ret.__setattr__(key, val)

    return ret

def replace(self, new_config_dict):
    """
    Copies new_config_dict into this config object.
    Note: new_config_dict can also be a config object.
    """
    if isinstance(new_config_dict, Config):
        new_config_dict = vars(new_config_dict)

    for key, val in new_config_dict.items():
        self.__setattr__(key, val)

def print(self):
    for k, v in vars(self).items():
        print(k, ' = ', v)

----------------------- DATASETS -----------------------
dataset_base = Config({
'name': 'Base Dataset',
# Training images and annotations
'train_images': './data/coco/images/',
'train_info':   'path_to_annotation_file',

# Validation images and annotations.
'valid_images': './data/coco/images/',
'valid_info':   'path_to_annotation_file',

# Whether or not to load GT. If this is False, eval.py quantitative evaluation won't work.
'has_gt': True,

# A list of names for each of you classes.
'class_names': COCO_CLASSES,

# COCO class ids aren't sequential, so this is a bandage fix. If your ids aren't sequential,
# provide a map from category_id -> index in class_names + 1 (the +1 is there because it's 1-indexed).
# If not specified, this just assumes category ids start at 1 and increase sequentially.
'label_map': None

})
coco2014_dataset = dataset_base.copy({
'name': 'COCO 2014',
'train_info': './data/coco/annotations/instances_train2014.json',
'valid_info': './data/coco/annotations/instances_val2014.json',

'label_map': COCO_LABEL_MAP

})
coco2017_dataset = dataset_base.copy({
'name': 'COCO 2017',
'train_info': './data/coco/annotations/instances_train2017.json',
'valid_info': './data/coco/annotations/instances_val2017.json',

'label_map': COCO_LABEL_MAP

})
coco2017_testdev_dataset = dataset_base.copy({
'name': 'COCO 2017 Test-Dev',
'valid_info': './data/coco/annotations/image_info_test-dev2017.json',
'has_gt': False,

'label_map': COCO_LABEL_MAP

})
my_custom_dataset = dataset_base.copy({
'name': 'My Dataset',
'train_images': '/home/SENSETIME/kongzelong/labelme/examples/instance_segmentation/data_dataset_coco',
'train_info':   '/home/SENSETIME/kongzelong/labelme/examples/instance_segmentation/data_dataset_coco/annotations.json',

'valid_images': '/home/SENSETIME/kongzelong/labelme/examples/instance_segmentation/data_dataset_coco',
'valid_info':   '/home/SENSETIME/kongzelong/labelme/examples/instance_segmentation/data_dataset_coco/annotations.json',

'has_gt': False,
'class_names': ('glassInsulator', 'compositeInsulator')

})
----------------------- TRANSFORMS -----------------------
resnet_transform = Config({
'channel_order': 'RGB',
'normalize': True,
'subtract_means': False,
'to_float': False,
})
vgg_transform = Config({
# Note that though vgg is traditionally BGR,
# the channel order of vgg_reducedfc.pth is RGB.
'channel_order': 'RGB',
'normalize': False,
'subtract_means': True,
'to_float': False,
})
darknet_transform = Config({
'channel_order': 'RGB',
'normalize': False,
'subtract_means': False,
'to_float': True,
})
----------------------- BACKBONES -----------------------
backbone_base = Config({
'name': 'Base Backbone',
'path': 'path/to/pretrained/weights',
'type': object,
'args': tuple(),
'transform': resnet_transform,
'selected_layers': list(),
'pred_scales': list(),
'pred_aspect_ratios': list(),

'use_pixel_scales': False,
'preapply_sqrt': True,
'use_square_anchors': False,

})
resnet101_backbone = backbone_base.copy({
'name': 'ResNet101',
'path': 'resnet101_reducedfc.pth',
'type': ResNetBackbone,
'args': ([3, 4, 23, 3],),
'transform': resnet_transform,
'selected_layers': list(range(2, 8)),
'pred_scales': [[1]]*6,
'pred_aspect_ratios': [ [[0.66685089, 1.7073535, 0.87508774, 1.16524493, 0.49059086]] ] * 6,

})
resnet101_gn_backbone = backbone_base.copy({
'name': 'ResNet101_GN',
'path': 'R-101-GN.pkl',
'type': ResNetBackboneGN,
'args': ([3, 4, 23, 3],),
'transform': resnet_transform,
'selected_layers': list(range(2, 8)),
'pred_scales': [[1]]*6,
'pred_aspect_ratios': [ [[0.66685089, 1.7073535, 0.87508774, 1.16524493, 0.49059086]] ] * 6,

})
resnet50_backbone = resnet101_backbone.copy({
'name': 'ResNet50',
'path': 'resnet50-19c8e357.pth',
'type': ResNetBackbone,
'args': ([3, 4, 6, 3],),
'transform': resnet_transform,
})
darknet53_backbone = backbone_base.copy({
'name': 'DarkNet53',
'path': 'darknet53.pth',
'type': DarkNetBackbone,
'args': ([1, 2, 8, 8, 4],),
'transform': darknet_transform,
'selected_layers': list(range(3, 9)),
'pred_scales': [[3.5, 4.95], [3.6, 4.90], [3.3, 4.02], [2.7, 3.10], [2.1, 2.37], [1.8, 1.92]],
'pred_aspect_ratios': [ [[1, sqrt(2), 1/sqrt(2), sqrt(3), 1/sqrt(3)][:n], [1]] for n in [3, 5, 5, 5, 3, 3] ],

})
vgg16_arch = [[64, 64],
[ 'M', 128, 128],
[ 'M', 256, 256, 256],
[('M', {'kernel_size': 2, 'stride': 2, 'ceil_mode': True}), 512, 512, 512],
[ 'M', 512, 512, 512],
[('M',  {'kernel_size': 3, 'stride':  1, 'padding':  1}),
(1024, {'kernel_size': 3, 'padding': 6, 'dilation': 6}),
(1024, {'kernel_size': 1})]]
vgg16_backbone = backbone_base.copy({
'name': 'VGG16',
'path': 'vgg16_reducedfc.pth',
'type': VGGBackbone,
'args': (vgg16_arch, [(256, 2), (128, 2), (128, 1), (128, 1)], [3]),
'transform': vgg_transform,
'selected_layers': [3] + list(range(5, 10)),
'pred_scales': [[5, 4]]*6,
'pred_aspect_ratios': [ [[1], [1, sqrt(2), 1/sqrt(2), sqrt(3), 1/sqrt(3)][:n]] for n in [3, 5, 5, 5, 3, 3] ],

})
----------------------- MASK BRANCH TYPES -----------------------
mask_type = Config({
# Direct produces masks directly as the output of each pred module.
# This is denoted as fc-mask in the paper.
# Parameters: mask_size, use_gt_bboxes
'direct': 0,
# Lincomb produces coefficients as the output of each pred module then uses those coefficients
# to linearly combine features from a prototype network to create image-sized masks.
# Parameters:
#   - masks_to_train (int): Since we're producing (near) full image masks, it'd take too much
#                           vram to backprop on every single mask. Thus we select only a subset.
#   - mask_proto_src (int): The input layer to the mask prototype generation network. This is an
#                           index in backbone.layers. Use to use the image itself instead.
#   - mask_proto_net (list<tuple>): A list of layers in the mask proto network with the last one
#                                   being where the masks are taken from. Each conv layer is in
#                                   the form (num_features, kernel_size, **kwdargs). An empty
#                                   list means to use the source for prototype masks. If the
#                                   kernel_size is negative, this creates a deconv layer instead.
#                                   If the kernel_size is negative and the num_features is None,
#                                   this creates a simple bilinear interpolation layer instead.
#   - mask_proto_bias (bool): Whether to include an extra coefficient that corresponds to a proto
#                             mask of all ones.
#   - mask_proto_prototype_activation (func): The activation to apply to each prototype mask.
#   - mask_proto_mask_activation (func): After summing the prototype masks with the predicted
#                                        coeffs, what activation to apply to the final mask.
#   - mask_proto_coeff_activation (func): The activation to apply to the mask coefficients.
#   - mask_proto_crop (bool): If True, crop the mask with the predicted bbox during training.
#   - mask_proto_crop_expand (float): If cropping, the percent to expand the cropping bbox by
#                                     in each direction. This is to make the model less reliant
#                                     on perfect bbox predictions.
#   - mask_proto_loss (str [l1|disj]): If not None, apply an l1 or disjunctive regularization
#                                      loss directly to the prototype masks.
#   - mask_proto_binarize_downsampled_gt (bool): Binarize GT after dowsnampling during training?
#   - mask_proto_normalize_mask_loss_by_sqrt_area (bool): Whether to normalize mask loss by sqrt(sum(gt))
#   - mask_proto_reweight_mask_loss (bool): Reweight mask loss such that background is divided by
#                                           #background and foreground is divided by #foreground.
#   - mask_proto_grid_file (str): The path to the grid file to use with the next option.
#                                 This should be a numpy.dump file with shape [numgrids, h, w]
#                                 where h and w are w.r.t. the mask_proto_src convout.
#   - mask_proto_use_grid (bool): Whether to add extra grid features to the proto_net input.
#   - mask_proto_coeff_gate (bool): Add an extra set of sigmoided coefficients that is multiplied
#                                   into the predicted coefficients in order to "gate" them.
#   - mask_proto_prototypes_as_features (bool): For each prediction module, downsample the prototypes
#                                 to the convout size of that module and supply the prototypes as input
#                                 in addition to the already supplied backbone features.
#   - mask_proto_prototypes_as_features_no_grad (bool): If the above is set, don't backprop gradients to
#                                 to the prototypes from the network head.
#   - mask_proto_remove_empty_masks (bool): Remove masks that are downsampled to 0 during loss calculations.
#   - mask_proto_reweight_coeff (float): The coefficient to multiple the forground pixels with if reweighting.
#   - mask_proto_coeff_diversity_loss (bool): Apply coefficient diversity loss on the coefficients so that the same
#                                             instance has similar coefficients.
#   - mask_proto_coeff_diversity_alpha (float): The weight to use for the coefficient diversity loss.
#   - mask_proto_normalize_emulate_roi_pooling (bool): Normalize the mask loss to emulate roi pooling's affect on loss.
#   - mask_proto_double_loss (bool): Whether to use the old loss in addition to any special new losses.
#   - mask_proto_double_loss_alpha (float): The alpha to weight the above loss.
'lincomb': 1,

})
----------------------- ACTIVATION FUNCTIONS -----------------------
activation_func = Config({
'tanh':    torch.tanh,
'sigmoid': torch.sigmoid,
'softmax': lambda x: torch.nn.functional.softmax(x, dim=-1),
'relu':    lambda x: torch.nn.functional.relu(x, inplace=True),
'none':    lambda x: x,
})
----------------------- FPN DEFAULTS -----------------------
fpn_base = Config({
# The number of features to have in each FPN layer
'num_features': 256,
# The upsampling mode used
'interpolation_mode': 'bilinear',

# The number of extra layers to be produced by downsampling starting at P5
'num_downsample': 1,

# Whether to down sample with a 3x3 stride 2 conv layer instead of just a stride 2 selection
'use_conv_downsample': False,

# Whether to pad the pred layers with 1 on each side (I forgot to add this at the start)
# This is just here for backwards compatibility
'pad': True,

})
----------------------- CONFIG DEFAULTS -----------------------
coco_base_config = Config({
'dataset': coco2014_dataset,
'num_classes': 81, # This should include the background class
'max_iter': 400000,

# The maximum number of detections for evaluation
'max_num_detections': 100,

# dw' = momentum * dw - lr * (grad + decay * w)
'lr': 1e-3,
'momentum': 0.9,
'decay': 5e-4,

# For each lr step, what to multiply the lr with
'gamma': 0.1,
'lr_steps': (280000, 360000, 400000),

# Initial learning rate to linearly warmup from (if until > 0)
'lr_warmup_init': 1e-4,

# If > 0 then increase the lr linearly from warmup_init to lr each iter for until iters
'lr_warmup_until': 500,

# The terms to scale the respective loss by
'conf_alpha': 1,
'bbox_alpha': 1.5,
'mask_alpha': 0.4 / 256 * 140 * 140, # Some funky equation. Don't worry about it.

# Eval.py sets this if you just want to run YOLACT as a detector
'eval_mask_branch': True,

# See mask_type for details.
'mask_type': mask_type.direct,
'mask_size': 16,
'masks_to_train': 100,
'mask_proto_src': None,
'mask_proto_net': [(256, 3, {}), (256, 3, {})],
'mask_proto_bias': False,
'mask_proto_prototype_activation': activation_func.relu,
'mask_proto_mask_activation': activation_func.sigmoid,
'mask_proto_coeff_activation': activation_func.tanh,
'mask_proto_crop': True,
'mask_proto_crop_expand': 0,
'mask_proto_loss': None,
'mask_proto_binarize_downsampled_gt': True,
'mask_proto_normalize_mask_loss_by_sqrt_area': False,
'mask_proto_reweight_mask_loss': False,
'mask_proto_grid_file': 'data/grid.npy',
'mask_proto_use_grid':  False,
'mask_proto_coeff_gate': False,
'mask_proto_prototypes_as_features': False,
'mask_proto_prototypes_as_features_no_grad': False,
'mask_proto_remove_empty_masks': False,
'mask_proto_reweight_coeff': 1,
'mask_proto_coeff_diversity_loss': False,
'mask_proto_coeff_diversity_alpha': 1,
'mask_proto_normalize_emulate_roi_pooling': False,
'mask_proto_double_loss': False,
'mask_proto_double_loss_alpha': 1,

# SSD data augmentation parameters
# Randomize hue, vibrance, etc.
'augment_photometric_distort': True,
# Have a chance to scale down the image and pad (to emulate smaller detections)
'augment_expand': True,
# Potentialy sample a random crop from the image and put it in a random place
'augment_random_sample_crop': True,
# Mirror the image with a probability of 1/2
'augment_random_mirror': True,

# If using batchnorm anywhere in the backbone, freeze the batchnorm layer during training.
# Note: any additional batch norm layers after the backbone will not be frozen.
'freeze_bn': False,

# Set this to a config object if you want an FPN (inherit from fpn_base). See fpn_base for details.
'fpn': None,

# Use the same weights for each network head
'share_prediction_module': False,

# For hard negative mining, instead of using the negatives that are leastl confidently background,
# use negatives that are most confidently not background.
'ohem_use_most_confident': False,

# Use focal loss as described in https://arxiv.org/pdf/1708.02002.pdf instead of OHEM
'use_focal_loss': False,
'focal_loss_alpha': 0.25,
'focal_loss_gamma': 2,

# The initial bias toward forground objects, as specified in the focal loss paper
'focal_loss_init_pi': 0.01,

# Whether to use sigmoid focal loss instead of softmax, all else being the same.
'use_sigmoid_focal_loss': False,

# Use class[0] to be the objectness score and class[1:] to be the softmax predicted class.
# Note: at the moment this is only implemented if use_focal_loss is on.
'use_objectness_score': False,

# Adds a global pool + fc layer to the smallest selected layer that predicts the existence of each of the 80 classes.
# This branch is only evaluated during training time and is just there for multitask learning.
'use_class_existence_loss': False,
'class_existence_alpha': 1,

# Adds a 1x1 convolution directly to the biggest selected layer that predicts a semantic segmentations for each of the 80 classes.
# This branch is only evaluated during training time and is just there for multitask learning.
'use_semantic_segmentation_loss': False,
'semantic_segmentation_alpha': 1,

# Match gt boxes using the Box2Pix change metric instead of the standard IoU metric.
# Note that the threshold you set for iou_threshold should be negative with this setting on.
'use_change_matching': False,

# Uses the same network format as mask_proto_net, except this time it's for adding extra head layers before the final
# prediction in prediction modules. If this is none, no extra layers will be added.
'extra_head_net': None,

# What params should the final head layers have (the ones that predict box, confidence, and mask coeffs)
'head_layer_params': {'kernel_size': 3, 'padding': 1},

# Add extra layers between the backbone and the network heads
# The order is (bbox, conf, mask)
'extra_layers': (0, 0, 0),

# During training, to match detections with gt, first compute the maximum gt IoU for each prior.
# Then, any of those priors whose maximum overlap is over the positive threshold, mark as positive.
# For any priors whose maximum is less than the negative iou threshold, mark them as negative.
# The rest are neutral and not used in calculating the loss.
'positive_iou_threshold': 0.5,
'negative_iou_threshold': 0.5,

# If less than 1, anchors treated as a negative that have a crowd iou over this threshold with
# the crowd boxes will be treated as a neutral.
'crowd_iou_threshold': 1,

# This is filled in at runtime by Yolact's __init__, so don't touch it
'mask_dim': None,

# Input image size. If preserve_aspect_ratio is False, min_size is ignored.
'min_size': 200,
'max_size': 300,

# Whether or not to do post processing on the cpu at test time
'force_cpu_nms': True,

# Whether to use mask coefficient cosine similarity nms instead of bbox iou nms
'use_coeff_nms': False,

# Whether or not to have a separate branch whose sole purpose is to act as the coefficients for coeff_diversity_loss
# Remember to turn on coeff_diversity_loss, or these extra coefficients won't do anything!
# To see their effect, also remember to turn on use_coeff_nms.
'use_instance_coeff': False,
'num_instance_coeffs': 64,

# Whether or not to tie the mask loss / box loss to 0
'train_masks': True,
'train_boxes': True,
# If enabled, the gt masks will be cropped using the gt bboxes instead of the predicted ones.
# This speeds up training time considerably but results in much worse mAP at test time.
'use_gt_bboxes': False,

# Whether or not to preserve aspect ratio when resizing the image.
# If True, uses the faster r-cnn resizing scheme.
# If False, all images are resized to max_size x max_size
'preserve_aspect_ratio': False,

# Whether or not to use the prediction module (c) from DSSD
'use_prediction_module': False,

# Whether or not to use the predicted coordinate scheme from Yolo v2
'use_yolo_regressors': False,

# For training, bboxes are considered "positive" if their anchors have a 0.5 IoU overlap
# or greater with a ground truth box. If this is true, instead of using the anchor boxes
# for this IoU computation, the matching function will use the predicted bbox coordinates.
# Don't turn this on if you're not using yolo regressors!
'use_prediction_matching': False,

# A list of settings to apply after the specified iteration. Each element of the list should look like
# (iteration, config_dict) where config_dict is a dictionary you'd pass into a config object's init.
'delayed_settings': [],

# Use command-line arguments to set this.
'no_jit': False,

'backbone': None,
'name': 'base_config',

})
----------------------- YOLACT v1.0 CONFIGS -----------------------
yolact_base_config = coco_base_config.copy({
'name': 'yolact_base',
# Dataset stuff
'dataset': my_custom_dataset,
###############'num_classes': len(coco2017_dataset.class_names) + 1,
'num_classes': 3,

# Image Size
############################################'max_size': 550,
#'max_size': 5760,
'max_size': 5760,

# Training params
#######################################'lr_steps': (280000, 600000, 700000, 750000),
##################################'max_iter': 800000,
'lr_steps': (2800, 6000, 7000, 7500),
'max_iter': 8000,

# Backbone Settings
########################################'backbone': resnet101_backbone.copy({
'backbone': resnet50_backbone.copy({
    'selected_layers': list(range(1, 4)),
    'use_pixel_scales': True,
    'preapply_sqrt': False,
    'use_square_anchors': True, # This is for backward compatability with a bug

    'pred_aspect_ratios': [ [[1, 1/2, 2]] ]*5,
    'pred_scales': [[24], [48], [96], [192], [384]],
}),

# FPN Settings
'fpn': fpn_base.copy({
    'use_conv_downsample': True,
    'num_downsample': 2,
}),

# Mask Settings
'mask_type': mask_type.lincomb,
'mask_alpha': 6.125,
'mask_proto_src': 0,
'mask_proto_net': [(256, 3, {'padding': 1})] * 3 + [(None, -2, {}), (256, 3, {'padding': 1})] + [(32, 1, {})],
'mask_proto_normalize_emulate_roi_pooling': True,

# Other stuff
'share_prediction_module': True,
'extra_head_net': [(256, 3, {'padding': 1})],

'positive_iou_threshold': 0.5,
'negative_iou_threshold': 0.4,

'crowd_iou_threshold': 0.7,

'use_semantic_segmentation_loss': True,

})
yolact_im400_config = yolact_base_config.copy({
'name': 'yolact_im400',
'max_size': 400,
'backbone': yolact_base_config.backbone.copy({
    'pred_scales': [[int(x[0] / yolact_base_config.max_size * 400)] for x in yolact_base_config.backbone.pred_scales],
}),

})
yolact_im700_config = yolact_base_config.copy({
'name': 'yolact_im700',
'masks_to_train': 300,
'max_size': 700,
'backbone': yolact_base_config.backbone.copy({
    'pred_scales': [[int(x[0] / yolact_base_config.max_size * 700)] for x in yolact_base_config.backbone.pred_scales],
}),

})
yolact_darknet53_config = yolact_base_config.copy({
'name': 'yolact_darknet53',
'backbone': darknet53_backbone.copy({
    'selected_layers': list(range(2, 5)),

    'pred_scales': yolact_base_config.backbone.pred_scales,
    'pred_aspect_ratios': yolact_base_config.backbone.pred_aspect_ratios,
    'use_pixel_scales': True,
    'preapply_sqrt': False,
    'use_square_anchors': True, # This is for backward compatability with a bug
}),

})
yolact_resnet50_config = yolact_base_config.copy({
'name': 'yolact_resnet50',
'backbone': resnet50_backbone.copy({
    'selected_layers': list(range(1, 4)),

    'pred_scales': yolact_base_config.backbone.pred_scales,
    'pred_aspect_ratios': yolact_base_config.backbone.pred_aspect_ratios,
    'use_pixel_scales': True,
    'preapply_sqrt': False,
    'use_square_anchors': True, # This is for backward compatability with a bug
}),

})
Default config
cfg = yolact_base_config.copy()
def set_cfg(config_name:str):
""" Sets the active config. Works even if cfg is already imported! """
global cfg
# Note this is not just an eval because I'm lazy, but also because it can
# be used like ssd300_config.copy({'max_size': 400}) for extreme fine-tuning
cfg.replace(eval(config_name))

def set_dataset(dataset_name:str):
""" Sets the dataset of the current config. """
cfg.dataset = eval(dataset_name)

hi !
i have followed your commands. the training command i use is
python train.py --config=yolact_base_config --batch_size=1
if i do not write something about CUDA,the error imformation is as follows:

Multiple GPUs detected! Turning off JIT.
loading annotations into memory...
Done (t=0.01s)
creating index...
index created!
loading annotations into memory...
Done (t=0.01s)
creating index...
index created!
Initializing weights...
Begin training!
Traceback (most recent call last):
File "train.py", line 382, in
train()
File "train.py", line 257, in train
losses = criterion(out, wrapper, wrapper.make_mask())
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/modules/module.py", line 489, in call
result = self.forward(*input, **kwargs)
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 143, in forward
outputs = self.parallel_apply(replicas, inputs, kwargs)
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 153, in parallel_apply
return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)])
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 83, in parallel_apply
raise output
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 59, in _worker
output = module(*input, **kwargs)
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/modules/module.py", line 489, in call
result = self.forward(*input, **kwargs)
File "/home/sjtu/yolact/layers/modules/multibox_loss.py", line 141, in forward
pos_idx = pos.unsqueeze(pos.dim()).expand_as(loc_data)
RuntimeError: The expanded size of the tensor (19248) must match the existing size (9624) at non-singleton dimension 1.  Target sizes: [1, 19248, 4].  Tensor sizes: [1, 9624, 1]
(yolact) sjtu@sjtu-WS-Z390-PRO:~/yolact$ export CUDA_VISIBLE_DEVICES=1

if i run export CUDA_VISIBLE_DEVICES=0 before the training command,the error information change as follows:

loading annotations into memory...
Done (t=0.01s)
creating index...
index created!
loading annotations into memory...
Done (t=0.01s)
creating index...
index created!
Initializing weights...
Begin training!
Traceback (most recent call last):
File "train.py", line 382, in
train()
File "train.py", line 257, in train
losses = criterion(out, wrapper, wrapper.make_mask())
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/modules/module.py", line 489, in call
result = self.forward(*input, **kwargs)
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 141, in forward
return self.module(*inputs[0], **kwargs[0])
File "/home/sjtu/anaconda3/envs/yolact/lib/python3.7/site-packages/torch/nn/modules/module.py", line 489, in call
result = self.forward(*input, **kwargs)
File "/home/sjtu/yolact/layers/modules/multibox_loss.py", line 163, in forward
losses.update(self.lincomb_mask_loss(pos, idx_t, loc_data, mask_data, priors, proto_data, masks, gt_box_t, inst_data))
File "/home/sjtu/yolact/layers/modules/multibox_loss.py", line 510, in lincomb_mask_loss
pred_masks = proto_masks @ proto_coef.t()
RuntimeError: cublas runtime error : the GPU program failed to execute at /opt/conda/conda-bld/pytorch_1549635019666/work/aten/src/THC/THCBlas.cu:258

it seems to be something wrong with my cuda version?
my cuda version is:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

my ubunu is 16.04 and my pytorch is '1.0.1.post2' and my python is 3.7.2
i guess i need to reinstall cuda next
thanks for your patience and kindness!

So a couple things: Use a batch size greater than 1 or YOLACT won't train properly (I recommend the default of 8), but I don't think that's your problem here.
Instead, note that the rtx cards are only supported on Cuda versions 10 and above so you'll need to reinstall pytorch with Cuda 10 support.

yes! training is ok!
i have install CUDA10.0 and reinstall pytorch1.0.1 with conda
before the training command, i first run command
export CUDA_VISIBLE_DEVICES=0,1
then training with batchsize=8 is ok
i still have several small questions to bother you
first, my pics is 576*384 now, so should i change the number to 576 or just keep the origin 550 in the following config file?

yolact_base_config = coco_base_config.copy({
'name': 'yolact_base',
# Dataset stuff
'dataset': my_custom_dataset,
'num_classes': 3,

# Image Size
'max_size': 576,

second, when training, i find the gpu utility is not so high, in nvidia-smi , most time the utility number is around 10%, is it right?
third, when training,the terminal window keeps outputing map information, i think these calculation is too much, can i just training without keep calculating map?
thanks a lot~~

I recommend only using 1 gpu in your case instead of both since your work load will probably be faster on one gpu.
Then I output validation map every 2 epochs (cycles through the entire dataset), so since your dataset is much smaller, you'll want to increase that by setting --validation_epoch=200 or some other high number like that.

ok,i get it.
and should i change image size from 550 to 576 in my config file?
thank you~~

Nah, you should keep it 550 since everything's set up for that image size. The code will automatically scale it to that size.

thank you!
i will restart the training for a whole night
let us see whether yolact can solve small objects in small pics tomorrow
hope the result is fancy!

oh the result is bad :(
i will cut the origin pic into 550*550 small blocks and label them again
to make objects relatively big
thanks for your timely help!


Updates to allow successful build on OpenSSL 1.1+

Updating;
-- paymentrequestplus.cpp
-- crypter.cpp
To allow successful build on new releases of Debian (stretch), Ubuntu (18+), Fedora wherein OpenSSL is version 1.1
Following the update lbrycrdd builds successfully.

FYI, this is also fixed upstream (and would be repaired by #174 ).

@BrannonKing Thanks :+1:

Marked as on-hold pending upstream merge.  If needed can revisit then, but as indicated, it should no longer be necessary at that point.

closing in favor of #221

This is now merged/fixed.


Allow partial chunk tables

This fixes #1642, re-enabling partial chunk table reconstruction and processing.

Should we be worried about the fuzz test fail?

Should we be worried about the fuzz test fail?

oh, probably. it is failing square in where I was changing behaviour, but is not part of the standard tests...


Cannot read property 'split' of undefined

Tried running the default demo and got some errors related to missing pages and posts. Also get - Cannot read property 'split' of undefined.

Same "exact"  issue for me. Only difference is trying on a live server and not localhost.

@e-g-b @oleteacher can you throw up your environments? i.e. web server you are using?

Thanks for finding @e-g-b @oleteacher 👍 Should be fixed with #107


pre-release?

Hello,
what about a pre-release, or an announcement of a new release, so we can test the application, change plugins and update translation befor final release?

@fguillot it seems you use SemVer, if yes you could create a release like 1.0.30-alpha or 1.0.30-beta
see SemVer's pre-release Info's for more details

@fguillot I really like the approach that atom takes, they talk about it in depth in their blog: http://blog.atom.io/2015/10/21/introducing-the-atom-beta-channel.html

I agree with levlaz.
The way you released in the past would best fit to the "release train model" with three rails, master, beta, stable. You work on master like you do right now. We do the testing and language work on beta, until it is stable and the "end user" gets the build from stable. New features have to be introduced to master. This leads to a time gap in releasing new fetures, but right now it's the same. 1.0.28 is stable, 1.0.29 is beta...

Your suggestions have been taken into consideration: https://kanboard.net/news/release-cycle
We will try like that and adjust if necessary.


Test that functions don't mutate their inputs

Tests need to be added to ensure that the bgls functions don't mutate their inputs.

This also needs to be checked for curve specific functions.


Snap-it cannot serialize non inline images?

To reproduce, snapshotting https://en.wikipedia.org/wiki/Flower.
Expect:

What actually happens:

So compared with the original page, the image in https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Flower_poster_2.jpg/660px-Flower_poster_2.jpg doesn't get to display. Not sure if there is an easy way to fix this.

See also http://crbug.com/762705


Arbitrary ROIs defined as Healpix maps

I added a new HealpixMapROI class which supports arbitrarily shaped ROIs via healpix maps. The maps can be read in from a fits file or created in the analysis script and passed as a list.
The user still  has to supply a center position and radius for the model map, as  for HealpixConeROI. A warning is printed if the ROI is not fully contained in the model 'cone'.
In case the user-specified healpix map has a different NSIDE than the data maps, hp.pixelfunc.ud_grade is used to re-sample the ROI map to the same NSIDE as the data map.
Some tests have been added to verify that the same pixels are selected by a cone ROI and by a map ROI with the same circular  active region.
Non-circular ROIs are useful for example to cut out bright nearby sources or galactic diffuse emission.

This is awesome, thanks!
Please take care of at least the major problems found by Scrutinizer though. They are easy fixes (names of variables to change, and so on).

Done (I think).


log/syslog : support tcp/udp for non-linux platforms

Hi,
I tried to use the log/syslog package under windows and i've seen that it is not available, even when i tried to use it with a windows compatible protocol like udp.
After checking the sources i noticed that the package is not actually compiled for windows.
// +build !windows,!nacl,!plan9

I found a way to patch it. I compiled the syslog.go file for windows and moved the call to UnixSyslog in the syslog_unix.go file. This doesn't change the behaviour under a linux platform and permits the support of some protocols under windows.
I already have forked the package and patched/tested it.
Go Version : 1.4.x
OS & processor architecture : linux/amd64 and windows/amd64

The log/syslog package in the standard library is frozen and probably shouldn't have been included in the standard library in the first place. See https://godoc.org/?q=syslog or community-maintained versions.
See also: #1108 (also closed0


docs(add support for query string parsing)

@wardbell
I have added a simple query string parser to the in mem api.
This will allow us to implement a type to search box for the TOH Http chapter.
The existing api remains unchanged, but I added the ability to pass a regex pattern in a query string param.
Ex:
app/heroes/?name=magn+ or app/heroes?name=magn+
In this example I am filtering based on regex matches in the 'name' column.
Both the column name and the pattern value are dynamic, so you can search based on arbitrary column names and regex patterns.

Added a simple description of the query string format in the readme

Made a few additional "improvements" before merging in 86926e0


Psalm

Hi,
Do you think it would be interesting to integrate Psalm with GitHub Actions?

For information PHPStan was added (I personally prefer Psalm a bit more), I'm not sure it makes sens to have both, the overlap is big.
https://github.com/symfony/demo/pull/1391

I have no idea :)

@javiereguiluz Do I close this issue?


Flaky proptest

https://github.com/firezone/firezone/actions/runs/10373700120/job/28719443723?pr=6276

https://github.com/firezone/firezone/actions/runs/10373777221/job/28719688715

I hit this one too, also on macOS in CI

https://github.com/firezone/firezone/actions/runs/10376413271/job/28728321446?pr=6287

Already fixed yesterday: https://github.com/firezone/firezone/pull/6273.


Can't create a new docker-machine bc of failure downloading boot2docker

When I do
$ docker-machine create --driver virtualbox default
It tries to download boot2docker v17.09.1-ce and fails "connection refused". So I haven't been able to create a machine. I just downloaded docker for the first time.
Information
A-MacBook-Pro:Desktop user$ docker-machine create --driver virtualbox default
Running pre-create checks...
(docker2) No default Boot2Docker ISO found locally, downloading the latest release...
(docker2) Latest release for github.com/boot2docker/boot2docker is v17.09.1-ce
(docker2) Downloading /Users/adolfoyanes/.docker/machine/cache/boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v17.09.1-ce/boot2docker.iso...
Error with pre-create check: "Get https://github-production-release-asset-2e65be.s3.amazonaws.com/14930729/4662e3c6-dc0f-11e7-8ef7-898750671fde?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20171210%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20171210T161627Z&X-Amz-Expires=300&X-Amz-Signature=220250736a8169e4d96e97d224e03dca052495a90ed7b75ad2dbb0f74a596c3e&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B filename%3Dboot2docker.iso&response-content-type=application%2Foctet-stream: dial tcp [::1]:443: getsockopt: connection refused"
Steps to reproduce the behavior
I downloaded Docker community edition
download and install Virtual Machine 5
Start Docker
run on terminal docker-machine create --driver virtualbox default
Other option,
I tried downloading boot2docker from source and creating an .iso image but then i get this error
Running pre-create checks...
(newbox) Unable to get the local Boot2Docker ISO version:  Did not find prefix "-v" in version string
(newbox) Default Boot2Docker ISO is out-of-date, downloading the latest release...
and then the it tries to download and fails

I got the same error:
(default) Unable to get the local Boot2Docker ISO version: Did not find prefix "-v" in version string
Then it tries to download it but the enterprise server is not connected to internet so that's fine...

me too:
(default) Unable to get the local Boot2Docker ISO version: Did not find prefix "-v" in version string,with not connect to internet

On my side, docker-machine creation starts to download Boot2Docker ISO every time.


QKC/OP Devs Meeting #2 Agenda

Meeting Info

May 18, 2024, 10:00 UTC+8
Duration: 60 minutes
Meeting link
Anyone can comment on the agenda where they would like this to be discussed.

Agenda

Protocol/App/Research progress

Prepare a discussion thread https://github.com/ethereum-optimism/specs/discussions/191


New Leaderboard: Lapland lite

Hi guys I was curious if you might be ably to tell me if the following outlines for a Pointless prize were feasible?
Thanks!
Bill
Lapland lite
So this Reindeer game pays homage to the home of some of the largest reminding herd in Lapland Finland. The average temperature there in Feb is -10 C so this prize will be awarded to those doing the most Hains point “laps” near these temperatures.
Participants will install the Kilmat app that tags the ride’s “Feels like” temperature. Right below where the Ride Title Hashtags (can that be grabbed?)
Then any ride tallied on the
https://freezingsaddles.org/alt_scoring/team_hains
leaderboard will be multiplied by the result of this formula :
Points = 0.1e(0.5 * “Feels like” Temp from Klimat)
Cheat Sheet for the Mathematically Challenged
1 Mile At __Temp = Points
deg F deg C Points
30.2 -1 = 0.55
28.4 -2 = 0.61
26.6 -3 = 0.67
24.8 -4 = 0.75
23.0 -5 = 0.82
21.2 -6 = 0.91
19.4 -7 = 1.01
17.6 -8 = 1.11
15.8 -9 = 1.23
14.0 -10 = 1.36
12.2 -11 = 1.50
10.4 -12 = 1.66
8.6 -13 = 1.83
6.8 -14 = 2.03
5.0 -15 = 2.24
3.2 -16 = 2.48
1.4 -17 = 2.74
-0.4 -18 = 3.02
-2.2 -19 = 3.34
-4 -20 = 3.69
-5.8 -21 = 4.08
-7.6 -22 = 4.51
-9.4 -23 = 4.99
-11.2 -24 = 5.51
-13 -25 = 6.09
Note default settings show C temps which this game is calibrated for.
Ringers can play with F if they wish
What do you think?
Initial Triage
I don't think that you can grab Klimat integrations from Strava.
Also, our weather integration is busted right now as we have to integrate a new API, the old one we were using shut down. I'd love to do it but it is a long shot this year.

This is blocked until we fix #116 with the new Dark Sky APIs.


Responsive Column Offset

Can we have a responsive setting of column offset?
It would be nice if we can set specific offset based on the device's size.
I'm not able to see any example in the documentation so it seems it is not yet added.

Besides component framwork you will also need CSS framework.(just like most people).
I don't know about when vuesax will implement this.
So, if you are going to use css framework, why dont you try tailwind css?? Their's grid is awesome. Check that out.link

Cool! That's a good idea.
But yeah hopefully in the future it will be implemented with the other necessary features as well so we can avoid having more dependencies.

In next updates we will take this into account, thank you very much

I can make this a PR if there's interest. Just reply and I'll submit it, I'm working on right now but for my proyect


Fold doesn't work with soft wrap

I have soft wrap enabled and there's a block which is wrapped to the next line. When I fold it soft wrap stops working.

Thanks for the report! This looks like a duplicate of https://github.com/atom/atom/issues/5740 – please subscribe there for updates.

I think this is a duplicate of #5740


To/From headers with quotation marks in them

It appears the mail gem doesn't handle creating a Mail object with a to or from value that has quotation marks in it.
For example
puts Mail.new(to: 'Nat "King" Cole<EMAIL_ADDRESS>
results in
Date: Tue, 04 Feb 2020 14:34:17 +0900
To: King<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

whereas I think it should be
Date: Tue, 04 Feb 2020 14:34:17 +0900
To: "Nat \"King\" Cole"<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Is quoting of display names something that should be handled by the mail gem, or is quoting and escaping display names something I'm supposed to do as a user of the gem?

Hi, @pwim, you can automatically escape them by doing (code extracted from ActionMailer):
address = Mail::Address.new.tap do |builder|
  builder.address =<EMAIL_ADDRESS>  builder.display_name = 'Nat "King" Cole'
end

You can address.to_s.
Sorry for the late reply :) But I ran into this.

@carolina-y Awesome, thanks for pointing out this method!


SDN Firewall

Write a pox program that implements a simple firewall, such as only permitting traffic to or from certain ports and IP ranges.  The rules should be read from a file in some kind of reasonable format.  Check the utils.py file for some code on reading configuration files.

@Chryel and I will work on this

no immediate due date for this, but you may find it useful practice for your geni competition entry.


Favorite Hotspot: Search and Favorite

Breaking the feature out into smaller section.
This issue will track the ability to search for a Hotspot by name (using autocomplete) via algolia.
Once a user starts typing a Hotspot name, suggestions will populate with the full name and its city/country location.
Tapping the Hotspot will bring up a temporary view of its details, with the option to favorite the Hotspot on the card details (top left corner).
Once favorited, the Hotspot will appear in the "Favorited" list on the Hotspot tab.

dupe


Custom launch arguments

As a user, I should be able to set launch arguments for the client/server

Added this option with https://github.com/rzaba0/soldat-launcher/commit/bb3d349b344d8c91075bb848537f525668938fa8 and https://github.com/rzaba0/soldat-launcher/commit/1daf3d2b3b0c07b449d2cdd3376c52fed66e989c. You can set client's launch arguments in Settings > Game, and local server's arguments in Local > Advanced. Launch arguments will be persisted across multiple sessions - they are saved to launcher.json file.


[Bug] Property 'file' does not exist on type 'RouteRecordNormalized'

In package/client/src/components/pages/RoutesTable.vue, it has type error.

In fact, there is no file attribute in the sorted here.

I track the source of sorted and found that it came from window.__VUE_DEVTOOLS_ROUTER_INFO__, Maybe for some reason, it was planned to add the file attribute at package/devtools-kit/src/core/router/index.ts 15line, but it was not added in the end?

/cc @webfansplz, is it deprecated now?


feat: add in documentation site for @blockstack/ui

So much .js 😢

@hstove yes, will convert over to tsx after it's in :)


IE - new genome data problem w/ collection date -  or just problem when displayed in workspace

you should know the drill by now :-)
to reproduce
global search for PRJNA259658
click on the 1st genome listed.   Looking at the metadata on the Genome Summary page, the Collection Date field looks OK.
Add Genome to Workspace
and when you look at it in the workspace  in IE the Collection Date says NaN/NaN/aN
looking at the exact same genome in my workspace on Mac Safari or Chrome, the date looks fine.
(but as a side comment .... I was so hoping that in the new tables that I was going to be able to select a field and copy it .... alas, that seems not to be the case)

I confirmed this happens on IE only (checked chrome on Windows). I think this is a javascript date parsing issue.

Harry changed this to use a string.  Can you retest in IE and close if this is resolved please?

I verified that this works on IE 11 (Win7)


Using notification id as optinal parameter

having a notification that updates like a volume indicator the possibility to overwrite existing notifications is crucial.
notify_rust already implements this functionality with an id.
This functionality is provided by dunstify.
However, notify-send and toastify lack of this feature so far, even tho it is trivial to implement.

I had not considered that meaningful since you would need to get the original ID of that notification you'd want to update - but it appears you can just make one up from the start. feels a bit weird, but ok, the spec isn't completely clear here
what desktops have you tried this out on?

also, you can go ahead and remove rust 1.0.0 from the .travis.yml this is what keeps travis from giving you full thumbs up

actually, don't change the travis file, I just cleaned that up myself :D

I had not considered that meaningful since you would need to get the original ID of that notification you'd want to update - but it appears you can just make one up from the start. feels a bit weird, but ok, the spec isn't completely clear here
what desktops have you tried this out on?

I am using i3 and haven't been testing it on other desktops.
The Arch wiki suggests the functionality of using the Notification-ID aswell, which was so far only implemented by dunstify

Sorry for the mess, hope it's alright now.. haven't been squashing commits so far.
Alternatively I could rebase aswell

just do git fetch && git rebase -i origin/master and change pick to fixup everywhere but commit named "implemented notification id as optional paramter"

thank you!
now go to bed :grin:


DNSPolicy manages all DNS resources for a target Gateway

Closes #221
Moves all DNS related resource management (DNSRecord, DNS Health checks etc ...), out of the Gateway reconciliation and into the DNSPolicy reconciliation. With this change it is now required for a DNSPolicy to be created that targets the Gateway before any DNSRecord resources will be created. To avoid unnecessary extra steps for a user, a default DNSPolicy will be created for each Gateway.
DNSPolicy is updated to use the same pattern for policy attachment and lifecycle as other kuadrant policies RateLimitPolicy and AuthPolicy, moving us towards more consistency across the two streams of work.
Kuadrant polices maintain an annotation on the target resource (Always Gateway in our case), and this can be used to build up a list of Gateways that need resources created/updated(Gateway created/updated) for them, or resources removed (Target ref changed, Gateway deleted etc..). It should cover the following:

DNSPolicy is created. Triggers policy reconcile, and creates DNSRecords for Gateway listeners with appropriate ManagedZones available (Same logic as always) with the target Gateway set as the owner. Creates HealthChecks based on the policy config, these belong to the policy.
Gateway targeted by a policy is deleted. Triggers policy reconcile, and deletes resources created and owned by the policy (HealthChecks only, DNSRecords belong to target).
DNSPolicy is deleted. Triggers policy reconcile, and deletes resources created and owned by the policy (HealthChecks only, DNSRecords belong to target). Deletes the dnspolicy annotation from the target gateway allowing it be targeted by another policy.
DNSPolicy target ref changes. Triggers policy reconcile, follows the same steps for DNSPolicy deletion for the old target, and follows the DNSPolicy create steps for the new target.

Move SetEndpoints to  provider (Prep for multiple dns provider implementations).
ToDo

[x] Create default DNSPolicy on initial Gateway discovery
[x] Update policy status
[x] Add/ Update all tests

I'm verifying the PR and I see that the default DNSPolicy gets created automatically, but when the HTTPRoute is created afterwards, the DNSPolicy is not reconciled so the DNSRecord is not created. I had to manually edit the DNSPolicy to trigger a reconcile loop and then they did get created. Maybe we need an extra event handler to make sure it gets reconciled automatically?

I'm verifying the PR and I see that the default DNSPolicy gets created automatically, but when the HTTPRoute is created afterwards, the DNSPolicy is not reconciled so the DNSRecord is not created. I had to manually edit the DNSPolicy to trigger a reconcile loop and then they did get created. Maybe we need an extra event handler to make sure it gets reconciled automatically?

Hmm ok, what steps are you doing so i can make sure we have a test for it?

/hold
The DNSPolicy reconcile isn't getting triggered on route attachment. Seems like we relied on manifest work and placement events in the gateway controller to do this. Ideally the dnspolicy controller would not need to concern itself with this, and instead rely on appropriate updates of the gateway to trigger a reconcile.

/hold cancel
The issue with route attachment was caused by a bug in the policy reconciler, it was updating a single annotation, instead of having one for both the direct ref and all back refs https://github.com/Kuadrant/multicluster-gateway-controller/pull/237/commits/ebfea0a2951ac5831319545613e181ac26d01d0b. This was causing it to try and parse a string as json, which fails, and doesn't queue the policy on gateway change.


support RHSSO authentication for Lightspeed

Adds support for Red Hat Single Sign On authentication to the Lightspeed service. This is being added specifically to address scenarios where redirect URL would be invalid when using the Lightspeed OAuth provider, such as hosted devspaces.
This PR attempts to avoid confusing the end user by NOT displaying both "Sign in with Ansible Lightspeed to use Ansible" and "Sign in with Red Hat to use Ansible". Instead, it prefers the Lightspeed auth unless we detect we're in an unsupported scenario, in which case it prefers RHSSO. It also adds commands to explicitly sign in with one or the other to allow for testing, preferences, etc. We can refine this approach over time as this gets use.
The Red Hat Authentication extension v0.2.0 needs to be installed in order to use the Sign in with Red Hat option. The extension is otherwise not required.

@robinbobbitt I think this is too big for a "minor" label PR...


scripts: Add script to find stale containers

A stale container is one which was running at the time assets (kernel +
rootfs image) were updated: they are using older asset versions than
are currently available on the system.
Provide a script to determine these stale containers to allow an
administrator to decide if they should be restarted to take advantage
of the new asset versions.
Fixes #630.
Signed-off-by: James O. D. Hunt<EMAIL_ADDRESS>

Blocked on #629.

Remove dnm label now #629 is merged.

Another occurrence of #622.
Actually, I'm glad it isn't merged yet since I've had a change of heart: rather than creating yet-another-script, how about we just extend the fields displayed by --cc-all to add one more that defines whether any assets are "stale"? We have full control over the fields displayed with that option as it's not a standard one. Hence, we could have something like:

All assets for container are up-to-date:
STALE
no

Single asset not current:
STALE
image

List of assets for container that are stale:
STALE
kernel,image

@sameo, @grahamwhaley - what do you think - script or built-in feature [*]?

[*] - which is probably less likely to go stale itself ;-)

Added dnm label until we've finished this discussion.

I think moving it to cc-runtime list --cc-all or thereabouts is probably the right move.
The output from that is already somewhat 'wide' - another column, what will it hurt ;-)
I think the column data above would be OK. I tried to think up some sort of 'inverted' version that would make it more obvious which ones were stale, but could not come up with anything. I think the 'STALE: no' item bugs me as I'd probably rather just have the column entry empty if nothing was stale - but then that puts a 'gap' in the column formatting.

I agree. I don't really like the name STALE for a column heading. Maybe it could be UPDATABLE with values of no, or kernel, image,kernel, or image?
Yes, I'd rather we don't have any (more) "gaps" as #294 is already annoying in that the number of fields can vary: imho that number of fields should always be fixed.
Another tack we couild take is to add a new option to list. Something like list --cc-show-all-stale-containers that would only show a subset of those containers that were actually stale.

I considered a separate option just to show the stale containers - and I think that might be best. +1 from me.

Closing as we don't want to use a script now.


GPL-568 Log LH plate maps data that fails to parse

User story
GPL-568 | As dev manager (Rich L) I want the Lighthouse plate map file names or root sample ids of data that fails to parse to be available in a human readable format to feedback to lighthouse via PAM
Who are the primary contacts for this story
Rich L
Acceptance criteria
To be considered successful the solution must allow:

[ ] text output of LH plate map data that fails to parse available from URL, for a given date
[ ] File fails due to unrecoverable error (e.g. no file header in first row or not csv extension)
[ ] Individual sample fails due to unanticipated values (e.g. RNA plate barcode format)*1
[ ] Divide output by lab
[ ] Date output

Assumptions
Log of failures can be run as asynchronous child of +ves on site report (Available here: https://psd.pages.internal.sanger.ac.uk/lighthouse_reports/)
Mock up
Date files parsed: 13/07/2020
Laboratory: Milton Keynes
plate map file MK_sanger_report_200527_0818.csv failed to parse due to no file header found
plate map file AP_sanger_report_200527_0818.xls failed to parse due to unexpected file extension
sample  failed to parse due to unexpected RNA plate id
sample  failed to parse due to unexpected RNA plate id
...
sample  failed to parse due to unexpected RNA plate id
Laboratory: Cambridge-az
plate map file CB_sanger_report_200527_0818.xls failed to parse due to unexpected file extension
sample  failed to parse due to unexpected RNA plate id
...
sample  failed to parse due to unexpected RNA plate id
Laboratory: Alderney park
...
Laboratory: Glasgow
...

Questions
Q1. In this output *1 most errors appear to be a result of RNA plate barcode failing regex. What is impact of not checking RNA plate format (variation looks high), currently 9 variants known: https://ssg-confluence.internal.sanger.ac.uk/x/OpoKBg (see section 4.2.1 Variants of RNA plate barcode)
Dependencies
Not blocked but recommend doing first

sanger/https://github.com/sanger/crawler/issues/62<issue_no.>

Additional context
*1 This is potentially a good starting point?: http://uat.lighthouse.psd.sanger.ac.uk/imports
Providing this manual record to PAM from 23/24th July: https://ssg-confluence.internal.sanger.ac.uk/x/OpoKBg

To make-crawler-forgiving-epic

Added comments where validation can be improved,
TODO - suss what error messages are to be added to Imports collection, errors list,
TODO - make a UI to display errors nicely:
possibly by adding a view to Lighthouse-UI, providing a centre and date,
which will query the imports collection, and display errors in a table


Missing construct dependency in README

Describe the bug
Crash because of missing dependency.
Fixed with pip install --user construct
Script logs
Traceback (most recent call last):
  File "./teleparser.py", line 45, in <module>
    import tblob
  File "/home/william/outils/teleparser/tblob.py", line 33, in <module>
    from construct import * # pylint: disable=W0401,W0622,W0614

OS used to execute the script (please complete the following information):

OS: Linux

Telegram app (please complete the following information):
*
Additional context

Thanks @Aztorius , I'll add the requirements file.


[v1.13-backport] Introduce fromEgressProxyRule

[ ] https://github.com/cilium/cilium/pull/31923

This introduces fromEgressProxyRule on 1.14 but doesn't install the rule. It just tries to remove it to guarantee no stale fromEgressProxyRule installed by higher version during ci-ipsec-downgrade.

/test-backport-1.13


Deep immutability w/ tests

Unfortunately a downside of this new functionality is that the readability of the codebase has been affected quite significantly. Not sure of a way around that considering the minified source comes in at 1023kb. It took me a few hours to whittle it down, but I got there in the end! 😱 👍

Ah- I forgot about the linting... I might have to remove this in favour of the new functionality as the manual minification has broken lots of the linting rules.


add use client to PendingRetryables

as is stale data is getting cached

https://nextjs.org/docs/app/building-your-application/data-fetching#static-and-dynamic-data-fetching
You can test it in local using yarn start, and adding console.log in fetchPendingRetryables. It should show in the console every time you access the page.

@chrstph-dvx lgtm! (i can't approve my own PR :)


DotPlot are not clickable

How can I achieve dot plots clickable? I want to fire the event on the selected plot.

any update on this?

How can I achieve dot plots clickable? I want to fire the event on the selected plot.

I can suggest you to invert the calculatePosition(atIndex: , value:) -> CGpoint to get index, and then handle this

How do you mean, s

How can I achieve dot plots clickable? I want to fire the event on the selected plot.

I can suggest you to invert the calculatePosition(atIndex: , value:) -> CGpoint to get index, and then handle this

How do you mean?


INNO - Add support for Draft PR

What's in this PR?

Passed new property draft to devinfo/bulk API
Added 2 new actions for PRs in the webhook-receiver-post

Why

For supporting Draft PR in Jira

Whats Next?
The data is passed from GH4J, but it will need to be accepted by Jira backend and displayed appropriately in Jira frontend. So, to make this possible, this will require additional changes to be done in 5 services(could be more), all of which are tightly coupled and will require significant testing before any of these changes could be merged.

@krazziekay Are you accepting PRs if I wanted to help with this?

So, need to do some changes in other repos services.

@krazziekay Are you accepting PRs if I wanted to help with this?

@mjonas87 Ya sure I can help out with your PRs, but I don't think theres much that can be done in this app besides this.
The new draft property has been added from this app, but it needs to be handled properly in Jira side.
I'm currently busy with another project work, so haven't done much there.

Ah, gotcha. Sounds like an internal project then.

Looks good but think we need to add some tests. Now that we have a lot of different scenarios when mapping the PR state, we should aim to account for as many of them as possible.

I think if at least we can grab smart value like {{pullRequest.is_draft}}, we could utilize it inside If/Else condition rule. What I didn't understand is if this PR is adding draft as smart value or it is a key in API response being used as webhook?

Close it for now as inactive for long time. Can re-open if need to.

We were waiting for this feature forever and now you close it @gxueatlassian, this is sad man.

Hi all, we know you’ve been patiently waiting for this feature. We’re pleased to let you know it’s now in final testing stages and should be available soon.

I’m happy to announce this feature is now available for everyone! New draft PRs will now be highlighted as DRAFT in your Jira issues. Thanks so much for your patience and let us know what you think of the change.


Robert Columbia: Watch ffmpeg.zeranoe.com

Robert Columbia requests the watch of the watch_keyword ffmpeg\.zeranoe\.com. See the MS search here and the Stack Exchange search here.

ffmpeg\.zeranoe\.com has been seen in 1 true positive, 8 false positives, and 0 NAAs.

Too many fp's on SE


[ci] Drop travis CI

rate limited, no longer open source friendly, and github actions is light years ahead.
Basic github actions added that does all that is necessary.  I'm not 100% clear why we are testing the release deployment features here but all that can be done via actions if we need something similar and probably only a few minutes worth of work.  Dropping it as travis is just bad at this point.

+1. Only good reason to still use Travis is if you need to test on ARM hardware, which is not relevant for this plugin.


OpenCV DNN vs Compute library

Have anyone benchmarked Compute library against DNN module in OpenCV 3 version?

Hello @gunasekaran7,
Thank you for your questions. We have no information at the moment.

Closed by inactivity. Please reopen if you could share performance numbers relative to OCV3.


No announcement mails are being received

Inside my profile, I have announcement emails turned on since the start of this feature.
I never got any mail relating to the last week's security exploit inside my mailbox.

Are SES creds set, @Undo1?

I just realised that even I didn't receive an email about the announcement. My announcement emails have also been turned ON since a long time.

Yep @ArtOfCode-, just tested it with a password reset email and it comes through fine.

Is this still a problem?

@thesecretmaster If you create a new announcement, I’ll tell you if I get the email.

Calling this [status-meh]


Make build.ps1 crossplatform

Move InstallAtom into a separate step Remove auto-install step from build script.
Move RunBuild and RunTests into functions so they can be reused
Leverage Get-Command atom as a cross-platform way of getting the atom executable path

Oh I see. I think it's reasonable to ask the person to download atom manually for their platform in the error message instead. What do you think?

I'd agree. The appveyor task relies on the portable version but I can be explicit instead of calling build.ps1 in appveyor.yml.

I will merge this in tomorrow when I have time to fix Appveyor since it will break CI.


Use PHP 5.4 short array syntax.

Coverage remained the same at 100.0% when pulling d5f72c4e0ce054d8496f82318484b0270a1fa2db on php-54-array-syntax into 8312fe2ba6a2c057911a5cbd63fdb0d8ba33a4a0 on master.


SchedulerSuite.TestOmniJobs: unexpected status 500

FAIL: test_scheduler.go:310: SchedulerSuite.TestOmniJobs

++ 02:16:40.297 created app mules-join-brock (b0a973994d12429a9fb16b46cf248458)
++ 02:16:40.357 scaling formation to map[printer:2]
++ 02:16:40.396 waiting for job events: map[printer:map[up:2]]
++ 02:16:40.486 got job event: printer eb71518a-cbe27b32b1794149b9d9464482044fa0 starting
++ 02:16:40.497 got job event: printer 3b882de9-9648ffd42aa34d1d900afcea1e75734e starting
++ 02:16:41.486 got job event: printer 3b882de9-9648ffd42aa34d1d900afcea1e75734e up
++ 02:16:41.616 got job event: printer eb71518a-cbe27b32b1794149b9d9464482044fa0 up
++ 02:16:41.616 scaling formation to map[printer:3 omni:2]
++ 02:16:41.625 waiting for job events: map[printer:map[up:1] omni:map[up:6]]
++ 02:16:41.676 got job event: omni 3b882de9-21e011db810b430b986191ab1cd0d5a6 starting
++ 02:16:41.736 got job event: omni eb71518a-6226ed87cbd44004ae3ffddbe1b183fb starting
++ 02:16:41.777 got job event: omni 1728ec80-24cbd9922b25445a9c44d3edd0f7b5ba starting
++ 02:16:42.576 got job event: omni eb71518a-f36583cdc36e4564afabd497e3520aae starting
++ 02:16:42.586 got job event: omni eb71518a-6226ed87cbd44004ae3ffddbe1b183fb up
++ 02:16:42.896 got job event: omni 3b882de9-30f998d2d0d84b15881fe06600adab79 starting
++ 02:16:42.911 got job event: omni 3b882de9-21e011db810b430b986191ab1cd0d5a6 up
++ 02:16:43.157 got job event: omni 1728ec80-fcaef2b52baa4ed5b2fdcbd5946ee189 starting
++ 02:16:43.176 got job event: omni 1728ec80-24cbd9922b25445a9c44d3edd0f7b5ba up
++ 02:16:43.986 got job event: omni eb71518a-f36583cdc36e4564afabd497e3520aae up
++ 02:16:44.116 got job event: omni 3b882de9-30f998d2d0d84b15881fe06600adab79 up
++ 02:16:44.687 got job event: printer 1728ec80-9365424a6beb4e0690b9c0953359eea3 starting
++ 02:16:44.716 got job event: omni 1728ec80-fcaef2b52baa4ed5b2fdcbd5946ee189 up
++ 02:16:46.026 got job event: printer 1728ec80-9365424a6beb4e0690b9c0953359eea3 up
++ 02:16:46.026 scaling formation to map[printer:1 omni:1]
++ 02:16:46.036 waiting for job events: map[printer:map[down:2] omni:map[down:3]]
++ 02:16:46.086 got job event: omni 1728ec80-fcaef2b52baa4ed5b2fdcbd5946ee189 down
++ 02:16:46.166 got job event: omni 3b882de9-30f998d2d0d84b15881fe06600adab79 down
++ 02:16:46.236 got job event: omni eb71518a-f36583cdc36e4564afabd497e3520aae down
++ 02:16:46.326 got job event: printer 1728ec80-9365424a6beb4e0690b9c0953359eea3 down
++ 02:16:46.386 got job event: printer eb71518a-cbe27b32b1794149b9d9464482044fa0 down
++ 02:16:46.386 adding 2 hosts
test_scheduler.go:367:
    // Check that new hosts get omni jobs
    newHosts := s.addHosts(t, 2, false)
helper.go:192:
    t.Assert(err, c.IsNil)
... value *url.Error = &url.Error{Op:"POST", URL:"https://<IP_ADDRESS>:443/cluster/e8e30904", Err:(*errors.errorString)(0xc2086b0540)} ("POST https://<IP_ADDRESS>:443/cluster/e8e30904: httpclient: unexpected status 500")

https://ci.flynn.io/builds/20150322020918-27d5ee97

The actual error on the runner side was:
runner.go:681: clusterAPI err in POST /cluster/e8e30904: error starting instance 0: failed to create COW filesystem: fork/exec /usr/bin/qemu-img: cannot a
llocate memory

We are using most of the RAM for tmpfs. I have added some swap to CI so this should not occur again.


UserData.read doesn't appear to read from host page's localStorage.

I'm seeing null for a data value when trying to use UserData.read. I think it may be related to this line where it doesn't seem to be passing the enclosing function's name parameter upstream to the host page's localStorage handler:
https://github.com/SpringRoll/SpringRoll/blob/2e400b7f72712b292479080ed8da0ae3b3e5de0e/src/state/UserData.js#L65

Okay! @902seanryan will look into this very shortly!

This should be resolved in the latest master. I'll update when 2.0.3 is also released and on NPM

Should be resolved now on NPM


t-rex: mark broken

t-rex: mark broken
Tracking issue: https://github.com/NixOS/nixpkgs/issues/355705
CC @NixOS/geospatial

Review @paparodeo ?

Would be good to mention that the breakage is due to Rust 1.80

You just said it. What is there to say?

Closing because a fix is known.