[SPARK-21506][DOC]The description of "spark.executor.cores" may be not  correct

What changes were proposed in this pull request?
The number of cores assigned to each executor is configurable. When this is not explicitly set,  multiple executors from the same application may be launched on the same worker too.
How was this patch tested?
N/A

Test build #79861 has started for PR 18711 at commit 602720b.

Test build #79865 has started for PR 18711 at commit de8695e.

Test build #79861 has finished for PR 18711 at commit 602720b.

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

Merged build finished. Test PASSed.

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

Test build #79865 has finished for PR 18711 at commit de8695e.

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

Merged build finished. Test PASSed.

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

I'm not sure this is an improvement, though not really against it.

AFAIK when spark.executor.cores is not set, we would keep assigning free cores to the executor until app.coresLeft is zero or there is no more free cores left. So I'm not convinced the comment should be updated. Please correct me if I'm wrong, thanks!

@jiangxb1987  If app.coresLeft is not  zero and  there is no more free cores left, it is not ending.Waiting for some workers have  free cores, this app will be  assigned cores continue, and this time another executor may be launched on the same worker.

How can we wait for new free cores on the same worker, if we only start one executor for each worker initially?

If the other application is finished, it will release cores

yea, I understand the issue now. Thank you for clarify!

Test build #79895 has finished for PR 18711 at commit efcec8e.

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

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

Merged build finished. Test PASSed.

Test build #79898 has started for PR 18711 at commit 28b2c89.

Test build #79898 has finished for PR 18711 at commit 28b2c89.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

retest this please

Test build #79902 has started for PR 18711 at commit 28b2c89.

Test build #79902 has finished for PR 18711 at commit 28b2c89.

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

Merged build finished. Test PASSed.

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

Test build #79925 has started for PR 18711 at commit bc423d1.

Test build #79925 has finished for PR 18711 at commit bc423d1.

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

Merged build finished. Test PASSed.

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

Test build #79952 has started for PR 18711 at commit 57917ee.

Test build #79952 has finished for PR 18711 at commit 57917ee.

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

Merged build finished. Test PASSed.

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

Test build #80034 has started for PR 18711 at commit aa9f4df.

Test build #80034 has finished for PR 18711 at commit aa9f4df.

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

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

Merged build finished. Test PASSed.

I don't object to this but I suppose I'm not clear if this was a point of confusion that needed a fix.

In the past days we often assume that in standalone mode, if we don't set the "spark.executor.cores" property, then we should have no more than one executor per host, but this PR explains a senario that we could still have multiple executors running on the same host under such condition, I think it would be helpful for us to understand some corner case behaviors, so yea I think we should document the behavior somewhere. Also cc @JoshRosen @cloud-fan

@JoshRosen @cloud-fan  Could you help to review it ? thanks

@10110346 Could you update the PR as @jerryshao suggested? Thanks!

Test build #82578 has started for PR 18711 at commit 440f936.

Test build #82578 has finished for PR 18711 at commit 440f936.

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

Merged build finished. Test PASSed.

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

LGTM, merging to master!


files to download?

I would like to know if you have some files so that I can download and install whaticket?
link for download?

duplicated https://github.com/canove/whaticket/issues/97


All angular-ui-router bower release components missing

This is a:

[X] Bug Report

My version of UI-Router is:  anything > 1.0.3
Bug Report
Current Behavior:
I'm not sure bower versions of angular-ui-router are still supported.  I know that yarn (yet another repository nightmare :) is taking its place for whatever reason, but we haven't moved to yarn as an organization.
So for those of us still using bower for legacy projects, it would be nice to be able to download the latest through bower.  The problem is that none of the angular-ui-router release components are available when the version is set > 1.0.3 in bower.json.
Steps to reproduce:

Create a bower project that includes "angular-ui-router": "=1.0.4" (pulls from git://github.com/angular-ui/ui-router.git#1.0.4).
Run "bower update" from the command line.
Open "bower_components/angular-ui-router" in a file manager.
Notice that there is a "migrate" directory with an npm "migratewarn.js", but no release directory where angular-ui-router.js normally resides.  Dunno why seemingly the npm version is being downloaded from the bower repository.
Follow the warning and change the bower package to "(at)uirouter/angularjs" to no avail.
Try changing the bower package to "ui-router" and notice that the same basic problem exists.

Expected Behavior:
To be able to specify the ui-router version in bower.json and have the full functionality of the library available.

[X] I believe my question can only be answered by the UI-Router maintainers

I compared the 1.0.11 version from npm vs. bower and there are obvious omissions in the bower version:
UiRouter_Npm_v_Bower.zip

Thanks for the great bug report.

I'm not sure bower versions of angular-ui-router are still supported.

They are!  We don't intend to drop support for bower.

I know that yarn (yet another repository nightmare :) is taking its place for whatever reason

To clarify, we recommend people use the packages published to the npm registry (yarn or npm package managers are both fine, and we use yarn when developing ui-router).  In fact, bower itself recommends using something other than bower.

Steps to reproduce:
Create a bower project that includes "angular-ui-router": "=1.0.4" (pulls from git://github.com/angular-ui/ui-router.git#1.0.4).

This is the main problem.  We don't commit the release artifacts to angular-ui/ui-router.  They are published to a separate repository which bower should be using.  The angular-ui-router bower package is updated on the registry to point to the angular-ui-router-bower git repository.  You should find out why bower is fetching from angular-ui/ui-router.

I ran your reproduce instructions and see all the release files:
bash-3.2$ bower init
? name t
? description
? main file
? keywords
? authors Chris Thielen<EMAIL_ADDRESS>? license MIT
? homepage
? set currently installed components as dependencies? Yes
? add commonly ignored files to ignore list? Yes
? would you like to mark this package as private which prevents it from being accidentally published to the registry? No

{
  name: 't',
  authors: [
    'Chris Thielen<EMAIL_ADDRESS>  ],
  description: '',
  main: '',
  license: 'MIT',
  homepage: '',
  ignore: [
    '**/.*',
    'node_modules',
    'bower_components',
    'test',
    'tests'
  ]
}

? Looks good? Yes
bash-3.2$ bower install --save angular-ui-router#1.0.4
bower angular-ui-router#1.0.4   cached https://github.com/angular-ui/angular-ui-router-bower.git#1.0.4
bower angular-ui-router#1.0.4 validate 1.0.4 against https://github.com/angular-ui/angular-ui-router-bower.git#1.0.4
bower angular#>= 1.2.0          cached https://github.com/angular/bower-angular.git#1.6.7
bower angular#>= 1.2.0        validate 1.6.7 against https://github.com/angular/bower-angular.git#>= 1.2.0
bower angular-ui-router#1.0.4  install angular-ui-router#1.0.4
bower angular#>= 1.2.0         install angular#1.6.7

angular-ui-router#1.0.4 bower_components/angular-ui-router
└── angular#1.6.7

angular#1.6.7 bower_components/angular
bash-3.2$ ls bower_components/angular-ui-router/release/
angular-ui-router.js		angular-ui-router.min.js.map	resolveService.min.js		stateEvents.js.map		ui-router-angularjs.js		ui-router-angularjs.min.js.map
angular-ui-router.js.map	resolveService.js		resolveService.min.js.map	stateEvents.min.js		ui-router-angularjs.js.map
angular-ui-router.min.js	resolveService.js.map		stateEvents.js			stateEvents.min.js.map		ui-router-angularjs.min.js
bash-3.2$

This is working as expected, AFAICT.


[http] Breaking change in<EMAIL_ADDRESS>

I believe https://github.com/microsoft/typespec/pull/2291 caused the following breaking change in<EMAIL_ADDRESS> We believe https://github.com/Azure/typespec-azure/pull/3400 will fix @azure-tools/typespec-autorest so there is no longer an end-to-end breaking change.  But this should still be considered a breaking change in @typespec/http itself.  It may be acceptable if no other emitters use the breaking API(s).
Repro

gh repo clone azure/azure-rest-api-specs
cd azure-rest-api-specs
git checkout 624dbc769880e5676ae8bb20d3c82ebd1783c64a
Edit the root package.json as follows:

-    "@typespec/compiler": "0.47.0",
-    "@typespec/http": "0.47.0",
+    "@typespec/compiler": "0.48.0-dev.3",
+    "@typespec/http": "0.48.0-dev.0",

npm i --force
cd specification/contosowidgetmanager/Contoso.WidgetManager
npx tsp compile .
git status
a. Should be no diff in generated autorest
Edit the root package.json again as follows:

-    "@typespec/compiler": "0.47.0",
-    "@typespec/http": "0.47.0",
+    "@typespec/compiler": "0.48.0-dev.3",
+    "@typespec/http": "0.48.0-dev.1",

npm i --force
cd specification/contosowidgetmanager/Contoso.WidgetManager
npx tsp compile .
git status
a. Should be the following diff in generated autorest

--- a/specification/contosowidgetmanager/data-plane/Azure.Contoso.WidgetManager/preview/2022-11-01-preview/widgets.json
+++ b/specification/contosowidgetmanager/data-plane/Azure.Contoso.WidgetManager/preview/2022-11-01-preview/widgets.json
@@ -143,7 +143,7 @@
             "description": "The resource instance.",
             "required": true,
             "schema": {
-              "$ref": "#/definitions/WidgetSuiteUpdate"
+              "$ref": "#/definitions/WidgetSuite"
             }
           }
         ],
@@ -454,21 +454,6 @@
         "createdAt"
       ]
     },
-    "FakedSharedModelUpdate": {
-      "type": "object",
-      "description": "Faked shared model",
-      "properties": {
-        "tag": {
-          "type": "string",
-          "description": "The tag."
-        },
-        "createdAt": {
-          "type": "string",
-          "format": "date-time",
-          "description": "The created date."
-        }
-      }
-    },
     "PagedWidgetSuite": {
       "type": "object",
       "description": "Paged collection of WidgetSuite items",
@@ -531,20 +516,6 @@
         "name",
         "manufacturerId"
       ]
-    },
-    "WidgetSuiteUpdate": {
-      "type": "object",
-      "description": "A widget.",
-      "properties": {
-        "manufacturerId": {
-          "type": "string",
-          "description": "The ID of the widget's manufacturer."
-        },
-        "sharedModel": {
-          "$ref": "#/definitions/FakedSharedModelUpdate",
-          "description": "The faked shared model."
-        }
-      }
     }
   },
   "parameters": {

Issues were caused by mismatch between response to getRequestVisibility and metadataInfo operations that determine schema shape for visibility
getRequestVisibility will not return visibility 'patch'
'patch' visibility is required to makre required properties optional in PATCH operations.

model Foo {
  myStandardProperty: string;
}

@patch update(...Foo): Foo;

In older version:
const visibility = getRequestVisibility(update); //visibility === visibility.Update
const madeOptional = metadata.isOptional(Foo.myStandardProperty, visibility); // true

In new version:
let visibility = getRequestVisibility(update); //visibility === visibility.Update
let madeOptional = metadata.isOptional(Foo.myStandardProperty, visibility); // false

// How this is used now in TypeSpec emitter
visibility = resolveRequestVisibility(update); // visibility === visibility.Update | visibility.patch
madeOptional =  metadata.isOptional(Foo.myStandardProperty, visibility); //true

Going with option 1


S3 Accelerate

Hello,
Could you add the support for "Amazon S3 Transfer Acceleration" on S3 Buckets where it is activated.
https://aws.amazon.com/blogs/aws/aws-storage-update-amazon-s3-transfer-acceleration-larger-snowballs-in-more-regions/
Thanks

#1672 This patch should enable use of "Amazon S3 Transfer Acceleration"

The feature is documented here, the issue can be closed.

Closing, as it's already implemented: https://github.com/distribution/distribution/pull/3181


Wrong Visio Link

Hi There
The "Download a Visio file of this architecture." is referencing to the wrong file.
Please also check all other Sections unter "Architectures" since almost all of them reference to the same one.
Greetings Denis

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

ID: 65f26361-0def-4ae9-e28a-8a8d4f97b87f
Version Independent ID: ef55eb02-6543-88ad-4f89-5a553848bc67
Content: Deploy AD DS in an Azure virtual network - Azure Architecture Center
Content Source: docs/reference-architectures/identity/adds-extend-domain.yml
Service: architecture-center
Sub-service: reference-architecture
GitHub Login: @telmosampaio
Microsoft Alias: pnp

Thanks for reporting - this issue is under review. This is a Microsoft Internal DevOps Bug ID # 453425


Fix: Handle case when rootURL is undefined in the environment

Thanks @ffaubry, this has been released in 2.6.1.


Events disappearing when other eventSource is changed

I am finding that when an eventSource in my eventSources array is changing some events from other eventSources are disappearing from the calendar, it doesn't appear to be deleting the actual data because if I trigger a render by going back and forward a month in the view they reappear.
It appears to happen in the $scope.dayClick() function, once this has been triggered 3+ times the $scope.projects events disappear one at a time.
angular.module('calendarController', []).controller('calendarController', function($scope, $http, uiCalendarConfig, Calendar) {
    //Hide task pane by default
    $scope.task_toggle = false;
    //Initalise scope variables
    $scope.task = {};
    $scope.projects = {
        url : "/api/calendar/projects"
    };
    $scope.tasks = [];
    $scope.eventSources = [];

    //Triggered when a day is clicked on calendar
    $scope.dayClick = function(date, jsEvent, view) {
       // $scope.tasks.splice($scope.tasks.length-1);
            //Setup new task
            $scope.task = {
                title: "New task",
                start: date,
                end: date,
            };
            //Show task pane
            $scope.task_toggle = true;
            //Push new task to array for calendar
            $scope.tasks.push($scope.task);
        }
        //Triggered when task pane is cancelled
    $scope.cancelTask = function() {
        //Hide pane
        $scope.task_toggle = false;
        //Reset task object
        $scope.task = {};
    }
    $scope.eventClick = function(calEvent, jsEvent, view) {
            $scope.task = calEvent;
            $scope.task_toggle = true;
        }
        //Config settings for calendar
    $scope.uiConfig = {
        calendar: {
            height: 450,
            editable: true,
            header: {
                left: 'month basicWeek basicDay agendaWeek agendaDay',
                center: 'title',
                right: 'today prev,next'
            },
            eventClick: $scope.eventClick,
            eventDrop: $scope.alertOnDrop,
            eventResize: $scope.alertOnResize,
            dayClick: $scope.dayClick
        }
    };
    $scope.eventSources = [$scope.projects, $scope.tasks];
});

I have tried adding a refetchEvents call on the $scope.dayClick() function which has stopped the other events disappearing but now I get an obvious flicker while the events are being refetched and rendered, this is clearly not a permanent fix but it does clarify it may be more to do with ui-calendar not handling eventSources correctly as opposed to Angular binding going wrong somewhere.
$scope.dayClick = function(date, jsEvent, view) {
        ...
            $('#myCalendar').fullCalendar('refetchEvents');
        }

Try to add
stick=true
to each event

stick:true,

I'll give it a try but surely if the events are from event sources anyway surely they wouldn't disappear on rerendering

$scope.getAllTimelineByPOID = function (PurchaseOrderID) {
timelineService.getAllTimelineByPOID(PurchaseOrderID).then(function (res) {
if (res.data.length > 0) {
$scope.timelineList = formatDate(res.data, '', ["PlannedDate", 'ActualDate', 'LastModified']);
var calenderval = res.data;
//Cache= true;
angular.forEach(calenderval, /stick,/ function (value) {
$scope.events.push({
title: value.Description,
start: value.ActualDate
//Cache: true
//stick: true
//end: value.ActualDate,
//allDay: false
                });
            });
            $scope.eventSources = [$scope.events];
            console.log($scope.eventSources);

            for (var i = 0; i < $scope.timelineList.length; i++) {
                $scope.timelineList[i].ActualDate = new Date($scope.timelineList[i].ActualDate);
                $scope.timelineList[i].LastModified = new Date($scope.timelineList[i].LastModified);
            }
        }
        else {
            $scope.timelineList.push($scope.timeline);
        }
    });
};

i'm facing same problem , help me out


Middleware has different behavior for transactions in array vs. interactive transactions.

Bug description
We have implemented retry middleware to handle various retryable errors or transactions that come back from CockroachDB (retryable transactions, connection draining, etc.). A very simplified, not-actually-used-in-prod-because-it-would-be-a-bad-idea version is here:
export const retryWithExponentialBackoff = async (
  params: Prisma.MiddlewareParams,
  next: (params: Prisma.MiddlewareParams) => Promise<unknown>,
) => {
  for (let i = 0; i <= MAX_ATTEMPTS; i++) {
    try {
      return await next(params);
    } catch (e) {
      if (i === MAX_ATTEMPTS) {
        throw e;
      }
      await sleep(100);
    }
  }
};

I've discovered that this middleware will have different outcomes for using $transaction, depending on whether I use the array form or interactive transaction:
// array
await db.$transaction([createARecord, failAQuery])
// itx
await db.$transaction((tx) => {
  await createARecord()
  await failAQuery()
})

If in array form, after running you will still have a record created from createARecord (unexpected). If in itx form, there will be no record afterward (expected).
It seems related to https://github.com/prisma/prisma/issues/7584, but that issue was about blocking query execution, my concern is about what appears to be not honoring transaction guarantees.
How to reproduce
Prisma model:
model Test {
  id String @id @db.Uuid @default(dbgenerated("gen_random_uuid()"))
  foo String
}

App code (roughly, omitting some boilerplate):
export const retryMiddleware = async (
  params: Prisma.MiddlewareParams,
  next: (params: Prisma.MiddlewareParams) => Promise<unknown>,
) => {
  for (let i = 0; i <= MAX_ATTEMPTS; i++) {
    try {
      return await next(params);
    } catch (e) {
      if (i === MAX_ATTEMPTS) {
        throw e;
      }
      await sleep(100);
    }
  }
};

prismaDb.$use(retryMiddleware)

And finally two tests. The first one fails, the second one does not.
it("❌ retry middleware violates transactions in array form", async () => {
  try {
    await prismaDb.$transaction([
      prismaDb.test.create({ data: { foo: "hello" } }),
      prismaDb.test.create({ data: { foo: null } }),
    ]);
  } catch (e) {
    /* noop */
  }
  expect(await prismaDb.test.count()).toEqual(0); // fails
});

it("✅ retry middleware does not violate transactions in itx form", async () => {
  try {
    await prismaDb.$transaction(async (tx) => {
      await tx.test.create({ data: { foo: "hello" } });
      await tx.test.create({ data: { foo: null } });
    });
  } catch (e) {
    /* noop */
  }
  expect(await prismaDb.test.count()).toEqual(0); // passees
});

Expected behavior
The same outcome happens for both forms of $transaction, where no records are created after running the transaction with the middleware.
Discussion
If I console.log the params before calling await next(params), we get this output for the array output case:
    call 0 with params {
      args: { data: { foo: 'hello' } },
    }

    call 0 with params {
      args: { data: { foo: null } },
    }

    call 1 with params {   <-- this call does not show up in the itx case
      args: { data: { foo: 'hello' } },
    }

    call 1 with params {
      args: { data: { foo: null } },
    }

    call 2 with params {
      args: { data: { foo: null } },
    }

    call 3 with params {
      args: { data: { foo: null } },
    }

    call 4 with params {
      args: { data: { foo: null } },
    }

    call 5 with params {
      args: { data: { foo: null } },
    }

And this for the itx case, notice it doesn't ever call with the good data payload again:
    call 0 with params {
      args: { data: { foo: 'hello' } },
    }

    call 0 with params {
      args: { data: { foo: null } },
    }

    call 1 with params {
      args: { data: { foo: null } },
    }

    call 2 with params {
      args: { data: { foo: null } },
    }

    call 3 with params {
      args: { data: { foo: null } },
    }

    call 4 with params {
      args: { data: { foo: null } },
    }

    call 5 with params {
      args: { data: { foo: null } },
    }

Here are some other issues that have been filed, which all seem related but don't exactly articulate the issue I'm raising, so I figured I'd keep it separate for now:

https://github.com/prisma/prisma/issues/13851
https://github.com/prisma/prisma/issues/6705
https://github.com/prisma/prisma/issues/7584

Prisma information
shown above
Environment & setup

OS: macOS 12.4
Database: CockroachDB 22.2.8
Node.js version: 16.10.0

Prisma Version
prisma                  : 4.13.0
@prisma/client          : 4.13.0
Current platform        : darwin-arm64
Query Engine (Node-API) : libquery-engine 1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a (at node_modules/@prisma/engines/migration-engine-darwin-arm64)
Format Wasm             : @prisma/prisma-fmt-wasm 4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a
Default Engines Hash    : 1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a
Studio                  : 0.484.0
Preview Features        : tracing, extendedWhereUnique

I appreciate the thorough details here! Taking a look now and will keep you updated

I can confirm the behavior. Unclear for now, where something is going wrong here.

Investigation into this surfaced 2 related smaller inconveniences around $transaction([...]) batch transactions: https://github.com/prisma/prisma/issues/19202 + https://github.com/prisma/prisma/issues/19203

@sabinadams will have a more thorough analysis later, but here is already an issue about preventing or fixing this problem in the future potentially: https://github.com/prisma/prisma/issues/19204

Thanks for the updates so far!

Hey there Andrew!
After investigating the issue and some discussion with the engineering team we have determined that this issue is caused due to the fact that all queries in a Sequential Transaction (array-based transaction) must be passed into a single $transaction call in the same event loop. Attempting a retry using the next function within a middleware causes the retry to occur in another event loop, and is thus not recognized as being part of the batch.
The issue Jan linked above (https://github.com/prisma/prisma/issues/19204) is what we believe needs to be done to solve this issue.
In the meantime, as you have found, re-implementing this as an Interactive Transaction will work as those behave differently than the array-based transactions.
Alternatively, you could also take advantage of Prisma Client Extensions to achieve this behavior. There is even an example here: https://github.com/prisma/prisma-client-extensions/tree/main/retry-transactions
Please let me know if you have any questions or concerns. I'd be happy to give a hand where I can to get past this hurdle.


Compilation error on node 4.x

The socket.io dependency currently fails to install on node 4.x. See https://github.com/socketio/socket.io/issues/2228
Please update and rerelease when a fix for socket.io becomes available. In the mean time https://github.com/alexbuijs/gulp-server-livereload could be used which contains this repo: https://github.com/pmq20/socket.io

Thanks for letting us know.
On 20 September 2015 19:23:21 Alex Buijs<EMAIL_ADDRESS>wrote:

The socket.io dependency currently fails to install on node 4.x. See
https://github.com/socketio/socket.io/issues/2228
Please update and rerelease when a fix for socket.io becomes available. In
the mean time https://github.com/alexbuijs/gulp-server-livereload could be
used which contains this repo: https://github.com/pmq20/socket.io

Reply to this email directly or view it on GitHub:
https://github.com/hiddentao/gulp-server-livereload/issues/17

Still seeing this?

No, has been fixed!


Removed chainIdToNetworkMap with RPC Urls

Removed chainIdToNetworkMap with RPC Urls to be retrieved from DB, moved creds to environment variables, and updated cache to be retrieved from environment variables as well.

resolves #13


Wait for Raft leader even when cluster exists

@benbjohnson -- how about this?

good for now, :ship:

@benbjohnson -- we'll need your input on this. Without it the input plugins couldn't auto-create their databases. This means there is a leader before any services are opened.

@otoolep I think the services should not assume that there's a leader. Each one should run periodically and check if it is the leader and process if it is. You could have a 3 node cluster where it takes some one a while to get two nodes up and running.

@benbjohnson -- to be clear, this is not about a specific node being leader, it's about the cluster having any leader. Certain services -- graphite for example -- cannot proceed until there is a least 1 leader.
I support an alternative approach is spin in the services, trying to perform operations like create the target database, and if no leader comes back, just retrying?


⭐ Adaptive Caching

Scenario
Almost every FusionCache method that act on cache entries - like Set, Remove, GetOrSet, etc - can receive various options via a param of type FusionCacheEntryOptions which contains things like Duration, Priority, FailSafeMaxDuration and so on.
This is all well and good but in the case of the GetOrSet method, there could be one more opportunity: the abilty to adapt the caching options to the value about to be cached when returned by the factory, if and when that is called.
Examples
For example if our factory retrieves a Product from a database, the cache duration may be small in case the product has just been created/updated (since it may receive additional updates soon) or very large in case a product is old and no more available to sell (since it most probably won't change anymore).
In this case the information to base the adaptive logic would be inside the product instance itself, making it self-contained.
A different example can be a resource, let's say a News piece in an online newspaper, gathered not via a database call but via a remote webservice call: in the http response we may have a Cache-Control header which can drive the cache duration inside FusionCache itself.
In this case the information to base the adaptive logic would NOT be inside the news instance itself, making it not self-contained.
Solution
I want to add a way to change the FusionCacheEntryOptions param passed to a GetOrSet method call based on the value produced by a factory (or adjacent data, see the previous News example).
There are different ways to achieve this, and I'd like to highlight them, with pros and cons.

💡 NOTE

Regardless of which proposal will be choosen, new overloads will be added to match the currently available methods, so that method calls in already existing code will not need to be fixed.

Proposal 01: additional lambda
The idea here is to have an additional param of type Action<TValue, FusionCacheEntryOptions> so to be able to have a way to receive the value produced by the factory + the options param currently being used and change something there.
An example can be something like this:
var product = cache.GetOrSet<Product>(
    $"product:{id}",
    _ => GetProductFromDb(id),
    options => options.SetDuration(TimeSpan.FromMinutes(1)),
    (product, options) => {
      // IF THE PRODUCT IS EXPIRED -> CHANGE THE DURATION TO 1 HOUR
      if (product.ExpirationDate < DateTimeOffset.UtcNow) {
        options.SetDuration(TimeSpan.FromHours(1));
      }
    }
);

👍 PROS:

we can easily take existing code and just add a new param to existing method calls to make the options adaptive
since we are talking about a separate param, we can define one or more and reuse the same delegate instance multiple times (eg: public static ProductUtils.AdaptCachingOptions(Product product, FusionCacheEntryOptions options) )
since the adaptive part here would be explicit, we would be easily able to save some allocations and avoid unwanted options change (see the "⚠ Warning" section below)

👎 CONS:

an additional lambda would need to be allocated, but only in case adaptivity is needed: when not needed, there would be no new allocations
in case the piece of data needed to adapt the options is not part of the returned value itself (eg: a Product instance) there would be no way to pass that to the adaptive logic. Practical example: the remote source for the factory is a webservice, and we would like to use the Cache-Control header of the http response to drive the cache duration: in the factory we would have access to the http response, before deserializing the response body to a Product instance, but not anymore in the separate lambda

ℹ NOTES:

the additional param would be optional with a default value of null which would indicate not to change the options, basically disabling adaptivity (and the extra allocation)

Proposal 02: new factory signature
The idea is to change the common signature for the factory param, from:
Func<CancellationToken, Task<TValue>>

to:
Func<CancellationToken, FusionCacheEntryOptions, Task<TValue>>

Again, new overloads to map the currently existing factory signature would be created, so existing code would continue working as usual.
👍 PROS:

having everything directly in the same lambda (the factory itself) would make it possible to adapt the options based on data not part of the return value (eg: an http header not part of a Product instance, like in the 2nd cons of Proposal 01)
the signature would be quite similar to what is currently used in the common MemoryCache interface, therefore possibly lowering the entry barrier for new users
in theory the extra lambda allocation in the proposal 01 would not be needed, but...

👎 CONS:

... but, since internally the implementation would be just one (with the factory param with the new signature), any call with the old signature would need to be automatically "wrapped" in a lambda created on the fly that would turn one call into the other (eg: (token, options) => factory(token) ) and there it is another invisible allocation
since the adaptive part here would NOT be explicit, we wouldn't know if a factory will change options or not, making it harder to save some allocations and avoid unwanted options change (see the "⚠ Warning" section below)

ℹ NOTES:

A possible way out of this would be to mark all the new overloads that map the old factory definition to the new one as [Obsolete] with an explanation message to use the new signature, and just move on. But I'm not that sure this is the right way to handle this situation, I'm still thinking about this

Proposal 03 (additional): new IObjectWithFusionCacheAdaptiveOptions interface
This is not a substitute for any of the 2 previous proposals, but may be a nice addition.
The idea is to have a new IObjectWithFusionCacheAdaptiveOptions interface modeled like this:
public interface IObjectWithFusionCacheAdaptiveOptions
{
  void AdaptFusionCacheEntryOptions(FusionCacheEntryOptions options);
}

and it would be used, following the Product example above, like this:
public class Product
  : IObjectWithFusionCacheAdaptiveOptions
{

  [...]

  public DateTimeOffset ExpirationDate { get; set; }

  [...]

  public void AdaptFusionCacheEntryOptions(FusionCacheEntryOptions options)
  {
    // IF THE PRODUCT IS EXPIRED -> CHANGE THE DURATION TO 1 HOUR
    if (ExpirationDate < DateTimeOffset.UtcNow) {
      options.SetDuration(TimeSpan.FromHours(1));
    }
  }
}

👍 PROS:

quick and easy to use
in case proposal 1 is choosen, this can be used as a fallback when no logic is passed explicitly via the extra param. Otherwise that would win (since it would be explicitly passed per-call, instead of being per-type). As a comparison, think of this as the before/after serialization callbacks approach in Json.NET.

👎 CONS:

none actually, since it's an extra way to achieve the goal

ℹ NOTES:

it may be considered a little bit more invasive, since you would have to directly touch your own classes. But, and this is important, since it would be an additional way to get the result, I don't see it as a problem, really
if this would be the only way to do this, the problem would be that it would not be usable with types we don't control, with sealed types or with primitive types. But since this would be just an additional way to do it, I see no problem with this approach also being available

⚠ Warning
Special care must be put into NOT changing a FusionCacheEntryOptions instance when that is not the intention.
What do I mean?
A good way to save some allocations is to define and reuse the same options object over and over again, passing it to the same method call all the time.
Example:
public static class CachingDefaults
{
  public static FusionCacheEntryOptions ProductOptions = new FusionCacheEntryOptions()
  {
    Duration = TimeSpan.FromMinutes(1),
    IsFailSafeEnabled = true,
    FailSafeMaxDuration = TimeSpan.FromHours(24),
    FailSafeThrottleDuration = TimeSpan.FromSeconds(30),
    FactorySoftTimeout = TimeSpan.FromMilliseconds(100)
  };

  public static FusionCacheEntryOptions CategoryOptions = new FusionCacheEntryOptions()
  {
    Duration = TimeSpan.FromMinutes(10),
    IsFailSafeEnabled = true,
    FailSafeMaxDuration = TimeSpan.FromHours(12)
  };
}

[...]

var product = cache.GetOrSet<Product>(
  $"product:{42}",
  _ => GetProductFromDb(42),
  CachingDefaults.ProductOptions // THIS SAME INSTANCE WILL BE PASSED EVERY TIME
);

var category = cache.GetOrSet<Category>(
  $"category:{42}",
  _ => GetCategoryFromDb(42),
  CachingDefaults.CategoryOptions // THIS SAME INSTANCE WILL BE PASSED EVERY TIME
);

In this case the productOptions or the categoryOptions instances will be reused, greatly reducing the number of allocations.
But if we later decides to let the options be adaptive (in any of the proposed ways) and forget to create a new FusionCacheEntryOptions object every time, the options instance passed in would be changed, even for the following requests. A practical example is that the ProductOptions is set with a Duration of 1 min, but as soon as an old product will get requested with adaptive caching, the Duration would become 1 hour for all subsequent requests.
To avoid this an idea may be to just duplicate the options object, only in case adaptive caching needs to be applied (which would be possible btw only with Proposal 01, since the adaptive logic is explicitly in a separate param). This would solve the problem, but it would needlessly duplicate those options even in case the instance passed in is already a "throwaway" one. Ideally I should find a way to correctly identify which are reusable and which are not, but I need to experiment a little bit because I can already see some troubling edge cases.
Thoughts?
Any suggestion or observation would be really, really appreciated 🙏.

In option 1 couldn't the user design the GetProductFromDb function to do the work of collecting the Cache-Control header and encapsulating product or some other wrapper so the lambda would have the data needed for cache duration.  Seems reasonable to give guidance in docs for things like this.  FusionCache is sufficiently complex.
I have a DNS cache scenario where I need to transform the Cached value.  I could imagine another lambda that allowed me to transform the cached data so I could adjust the TTL (time-to-live) sent back to a client.  But that would add un-needed complexity to FusionCache.  I can easily add business logic after I get the cache to decay the TTL so new client requests are informed of the true TTL, so they can also accurately cache.  What is my point?  I think avoiding more complexity in the FusionCache is be good for these advanced techniques.
Actually I wonder if a just handling this with a Cache.Get and Cache.Set isn't an equivalent solution.  Throwing in the  FusionCacheEntryOptions warning above it would come down to benchmarkdotnet experiments to really decide whether this feature is worth it or if guidance on technique is the way to go.

I'm a fan of Proposal 2 as it's similar to Microsoft's own caching abstractions and other caching libraries in the ecosystem. It'd allow for much easier "lift n shift" for people coming from other implementations.
Proposal 1 I would be able to get working if I had to. Proposal 3 is a bit of a smell, however I see how it'd meld well with proposal 1.

I'm a fan of Proposal 2 as it's similar to Microsoft's own caching abstractions and other caching libraries in the ecosystem. It'd allow for much easier "lift n shift" for people coming from other implementations.

Good point! I've added a "pro" to Proposal 2.

In option 1 couldn't the user design the GetProductFromDb function to do the work of collecting the Cache-Control header and encapsulating product or some other wrapper so the lambda would have the data needed for cache duration. Seems reasonable to give guidance in docs for things like this. FusionCache is sufficiently complex.

I'm not sure I'm following completely: if I got it right you are saying that the Product class may simply have, for example, a prop with the value of the Cache-Control header, so that it would be available in the second lambda, correct?
If that is the case then yeah, it would absolutely be a solution, but then FusionCache would require you to add a property to your model, which is something someone may feel as a little "invasive".
On the other hand you are using an advanced feature so, I mean, we should put things somewhere right 🤷 ?
Another possible limitation would be with classes you don't control, or sealed, or primitive types. In that case it would not be possible.
But as you said, maybe outlining the limitations in the documentation may be a good enough answer to that.

What is my point? I think avoiding more complexity in the FusionCache is be good for these advanced techniques.

Totally agree, one of the most important thing in designing something is to strike the right balance between features and complexity, and is not that easy.

Ah, this is exactly the kind of thing I was looking for. Want to cache calendar events with the cache duration determined by how far away the event returned is e.g. events happening today might have 1 minute expiry and ones in 6 months 1 day expiry. So did this get abandoned?

Hi @wileyveteran , thanks for considering FusionCache!
No, the feature has not been abandoned: the delay has been because, on top of the current situation globally and whatnot, I put myself more into finishing the backplane #11 , which is about to land very soon.
I can schedule this feature soon after that: do you have a specific deadline for having it or you can live without it for a little bit more?

We were looking to go to production sometime towards the end of Q1 so we still have a bit of time. Without it I guess we miss out on some of the good features like the cache stampede prevention.

Hi all, to move forward with this feature I have to first close the Backplane #11 one, and I'm happy to say that I've finally been able to complete the design and implementation of that.
Please take a look here, try it out and let me know what you think so I can move forward with the final version, and then proceed with the next features (including adaptive caching!).
Thanks everybody 🙏

Meanwhile I published an (hopefully) even better alpha2 release.

Hi all, just wanted to update you on the next version: I released right now the BETA2 for the next big release, which includes among other small things a big fix for the DI setup part.
This will probably be the last release before the official one.

Hi all, yesterday I released the BETA 3.
Unless some big problem comes up, this will be the very last release before the official one, which will be in the next few days 🎉

Hi @JoeShook , @wileyveteran and @Hawxy : since I've finally released the backplane with the v0.9 a couple of days ago, I'm now starting to design this very feature.
Just wanted to let you know, and if meanwhile you had some new thoughts about this, please let me know.

Hi all, I'd like to quickly update the community on this.
I'm ready to release a new version (maybe a pre-release) with full support for adaptive caching!
I'll give more details asap, but in the meantime I'd just like you to know that I've found an elegant way to go with the (most liked by the community) second option, with all the pros, without any of the cons, all while keeping the allocations low and optimized 🎉
I think I'll release it with more details in the we, so stay tuned.

Looking forward to it, I will try and test it out once you have released it.

Hey everybody, I just released v0.10.0-preview1 which includes adaptive caching 🎉
If nobody will rise any problem with it I plan on releasing a non pre-release version in a week or so, after I got some time to fully test it in production on a couple of my real-world projects with some high traffic and everything.
The new documentation is available here.
For the ones interested, in another comment I'll explain some details on how I have been able to avoid most of the cons of the 2nd proposal being used.
Please let me know what you all think, thanks 🙏
📦 It's a pre-release!
Note that the Nuget package is marked as pre-release so please be sure to enable the related filter otherwise you would not see them:

Ok, it's time to delve into what I've done to prevent most of the cons of proposal 02, for the ones interested in such a thing.
These were the 3 cons emerged during the design phase:

not knowing when options have been changed: since the adaptive part here would NOT be explicit, we wouldn't know if a factory have in fact changed some options or not, making it harder to save some allocations and avoid unwanted options change
unwanted reusable options changes: special care must be put into NOT changing a FusionCacheEntryOptions instance when that is not the intention
extra lambda allocation: when calling the old factory signature (without the context) FusionCache internally calls the new one (with the context) allocating, at the very least, a new lambda for the call indirection

Points 1 & 2
First thing: I added an internal prop to FusionCacheEntryOptions so that I can know if an options instance is safe to change via adaptive caching during a factory execution or not. This new property is automatically handled and passed over via duplication, but can be set maually when needed, only internally.
I then put some code in the context's Options prop getter to detect when it is accessed, and in that case it makes sure that the options being accessed is safe to be changed, otherwise it automatically duplicates them and uses that instead.
So now we can detect changes and all is safe, avoiding changing a shared FusionCacheEntryOptions instance.
It also avoids duplicating options when not necessary, since it only does it when the Options prop is accessed, which is fair to think it would be done only when trying to change it.
But only doing this would not be enough, because we would still be duplicating options even in the case of GetOrSet calls with an explicit setup action lambda, which already duplicate options starting from the default ones: in these cases it's safe to assume those options are already ok to be changed.
So in everyone of those overloads I also mark them as safe to be changed, resulting in even less allocations.
Point 3
The third one is more complicated, and as of today there is in fact an extra allocation when calling a GetOrSet overload with the old factory signature without the context.
I have a plan for removing this extra allocations, and a bonus point would be to probably be able to remove the extra allocation that is still there when calling a GetOrSet overload without a factory and with a default value directly (it is hidden, but it is still there today).
I haven't been able to do it just yet, and since it is an implementation detail that I can change later on I just decided to get out with the new version and see how the community feels about adaptive caching itself, and ideally optimize it later on.
But again, I have a plan for remove these extra allocations, and will work on it asap.

Hello @jodydonetti .  I updated to  FusionCache 0.10.0-preview1 in my FusionCache.Metrics repo.
With not changes all tests pass.
I started duplicating some of my tests and replacing calls like TryGet with GetOrSet, trying to keep the same behavior and exptecting the same plugin EventHandlers to trigger.
I have this one test for you to look at where I expected a stale cache hit but it is missing.
 // HIT (STALE): +1

//cache.TryGet<int>("foo");

cache.GetOrSet<int>("foo", (ctx, _) =>
{
    // Duration set by factory return value
    ctx.Options.SetDuration(adaptiveDuration).SetFailSafe(true);

    return 42;
});

The code is in the feature/adaptive_cache branch.
If you swap the GetOrSet back to the orginal TryGet then the expeced stale cache hit is triggered as expected.
I will continue to experiment with more testing, but this is the first unexpected result I have found so for.

Hi @JoeShook that is expected: since you let the cache entry expire, a TryGet with fail-safe enabled would activate it, getting you back a stale result (and emitting a stale hit event). But a GetOrSet with a factory will see the value as expired, call the factory and set a value, emitting a (I suppose) set event.
Makes sense?

OK, yes I see what your are saying.  It is indeed a set event and that makes sense in the morning hours :smiley:.
So, I have another question still in this area.  I modifed the example like the following:
// LET IT BECOME STALE
Thread.Sleep(adaptiveDuration);

// HIT (STALE): +1
cache.TryGet<int>("foo");
// HIT (STALE): +1
cache.TryGet<int>("foo");

I expected two stale hit events.  But I get one stale hit event and one hit event.  Is that by design?  Locically I expected to continue to get a stale cache values until I set the expired cache via one of the set methods.
It seems that the first stale result promotes the stale cache to current non-stale result.  At least the events say that is the case.

Oh, I see now.  It is by design.  The FailSafeThrottleDuration is a play here to avoid excessive load on the distributed cache.  I am a little stale 😐 on my FusionCache knowledge.

HI @JoeShook yes, you got it right!
But now that you mention it, it may make sense to reason differently: shouldn't a cache hit of an entry that came from a fail-safe activation co

PS: I think I'll open 2 new issues related to a behaviour change, one for the point you just made (stale cache hit for entries re-saved in the past via a fail-safe activation) and another one to maybe not activate fail-safe without a factory (see here). Initial thoughts?

Swapped LazyCache for the FusionCache preview in one of my libraries that needs adaptive caching and the tests are green. Seems good to me. 👍

HI @JoeShook yes, you got it right! But now that you mention it, it may make sense to reason differently: shouldn't a cache hit of an entry that came from a fail-safe activation be considered stale? I mean, not just when fail-safe is being activated (because for that we alredy have a specific event), but every time a cache entry that is in fact stale is returned?
You may have a point there, you know? Let me think about it.

Yes, I did pause after my comment.  I was thinking of responding with the same observation you mentioned.  I think once the cache is stale it should event a Hit with the IsStale argument property until it is refreshed from a successful factory result.

I just released v0.10.0 with adaptive caching 🎉
It also includes the change for cache hit events as suggested by @JoeShook and more.
Please try it out if you can and let me know!

It works great.  I released v1.0.4
FYI:  Working on the OpenTelemetry plugin now.  The plugin is simple but the examples will take some time.  Working in the otelWithExample branch.


Error Connecting to Redis On Gitpod

Describe the bug
Whenever we try to open Gitpod (for PRs made after merging #1346) it displays error as in the screenshot below by default.

On Executing bundle exec redis-server it displays :

To Reproduce
Steps to reproduce the behavior:

Go to gitpod.com for any PR
See Error

Expected behavior
The gitpod files need to be updated .
Screenshots
Before Merging of the above mentioned PR :

After Merging of the above mentioned PR :

Desktop (please complete the following information):

OS: [Windows]
Browser [Chrome]

Are you working on this issue? (Yes/No)
No

@Shivansh2407 the 6379 port is for Redis.
I see it open before the PR, but not served after PR?

@Shivansh2407 I checked the latest repo from the master in Gitpod. It's working for me just fine.
Maybe you can just try either forking the repo again or restarting the workplace of Gitpod from scratch. I checked it by navigating to multiple pages. Also, port 6379 was open. I checked it on Ubuntu and Chrome browser.
@tachyons @satu0king
Maybe we can proceed towards closing this issue.

Yes @ciphereck it is now working on gitpod too. 👍


add nfs-utils package to dockerfiles to enable mounting nfs volumes i…

…n kubernetes
With the current images it's not possible to use nfs persistent volumes in kubernetes since they mount the nfs volume directly in the container. I've added the nfs-utils package and tested this in kubernetes to verify that it's now possible to use nfs volumes with these images.
I've omitted the package for the allinone image since it might be less relevant for that configuration, but can include it as well if preferred.

Thank you! The change will go into the images tagged as latest, 4.3, and forward.


Consistently formatted parser.add_argument code for legibility

1st line: names or flags to appear in commandline
2nd line: other arguments
3rd line: help information. use parentheses for multi-line string.
one line per parser.add_argument

I signed it!


Allow wrapping and variable interpolation in help in the devshell menu

Based on #290
Interpolation
There's a .env file not added to git.
ADDRESS="http://localhost:3000"

A devshell user would like to open the address in a browser.
She can write this expression.
devShells.default = devshell.mkShell {
  bash.extra = ''
    set -a
    source .env
  '';
  devshell.menu.interpolate = true;
  commands = [
    {
       package = "hello"; help = "open $ADDRESS";
    }
  ];
};

And get this devshell menu.
🔨 Welcome to devshell

[[general commands]]

  hello - open http://localhost:3000
  menu  - prints this menu

[devshell]$

Wrapping
The default devshell looks like this:
🔨 Welcome to devshell

[[general commands]]

  menu                    - prints this menu

[packages]

  diffutils-3.10          - Commands for showing the differences between
                            files (diff, cmp, etc.)
  goreleaser-1.23.0       - Deliver Go binaries as fast and easily as
                            possible

[scripts]

  nix fmt                 - format Nix files
  nix run .#bench         - Run benchmark
  nix run .#docs          - Run mdBook server at "http://localhost:3000"

[utilites]

  golangci-lint-1.55.2    - golang linter
  hub-unstable-2022-12-01 - GitHub utility

[devshell]$

Hmm, what can be the error on macOS?

@zimbatm, @blaggacao, please, review

Although this is not a moderated repository. Recent Moderation Team actions has scared me away from the Nix Community.
I'm sorry, won't be available for review. This has nothing to do with you and your effort which is really commendable. Keep the spirit up!


UIImage+Resize.h file not found

Hello, where i can found these files?

UIImage+Resize cannot found


fix(chat): Publish tooltips (Issue #1447, Issue #1463)

Description:
Tooltip for path inside "Publish to" text bot is not displayed
currently tooltip pointing to the center of the textbox
Note:Different font sizes for tooltips for Publish to and prompt/conversation name on the publication request details
Issues:

Issue #1447
Issue #1463

UI changes

Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[x] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review

/deploy-review

/deploy-review

/deploy-review

/deploy-review

/deploy-review

/deploy-review

/deploy-review

/deploy-review

/deploy-review


Properly terminate FFmpeg output processes

Close output stdin when closing outputs.
Call popen.wait(1 second) otherwise popen.kill() to ensure all output processes terminate.
Call FFmpegOutput with -movflags faststart.

Closing ffmpeg stdin properly causes -movflags faststart to no longer produces corrupted video files.

run tests on windows first


Flutter Dev tools not Opening OR Working

Steps to Reproduce

Create new Flutter project ( counter app)
Hit run button in android studio
Click devtools button

here is video for above steps :
Video
Expected results:  Devtools should be opened in browser
Actual results: Devtools not opening at all

flutter doctor -v

[✓] Flutter (Channel stable, 2.2.0, on macOS 11.1 20C69 darwin-x64, locale en-GB)
    • Flutter version 2.2.0 at /Users/rr-reddy/Documents/soft/flutter_soft/flutter
    • Framework revision b22742018b (10 days ago), 2021-05-14 19:12:57 -0700
    • Engine revision a9d88a4d18
    • Dart version 2.13.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/rr-reddy/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] Connected device (2 available)
    • Redmi 8A (mobile) • 62b13eb90906 • android-arm    • Android 9 (API 28)
    • Chrome (web)      • chrome       • web-javascript • Google Chrome 90.0.4430.212

Hi @RR-Reddy
Following the indication of jetbrains' Flutter plugin, the correct way to address the problem is to open an issue in the dedicated repository.
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you

Hi @TahaTesser
Thanks for the information.
Dev tools are working  fine After updating Android studio flutter plugin.


Allow configurable logging

Now that we no longer use the global log setup and instead have a registryLogs struct that we can hang loggers off, we should add some configurability around logging.
I'm thinking something like this:
GSR_LOG_MODE environment variable would be a string like "Ldate | Ltime | Lshortfile" that would allow the user to enable a particular log record format and align gsr's logging with their own application's needs/expectations.

Decided to just go with two separate new log configuration options GSR_LOG_MICROSECONDS and GSR_LOG_FILE_TRACE instead of having the user need to use "Ltime | Ldate | blah blah". Thought it was a bit more user-friendly.


Change Name

Hi is it possible to change this names?

I see that it is the names of my schema files

but i wanted to know if i can change them without needing to change my files names!

Ohhh okay okay, but can i change it?

Unfortunately, no, the legend box always shows the types. You can only change it by changing the names of your types. Feel free to submit a PR, though.


mmr_lmproc.hist

Hello,
I have a problem with "mmr_lmproc.hist". Although I've installed the niftypet without any problem or error, my notebook crashes when I want to produce Sinogram. I am using "Tesla V100-SXM2-32GB" GPU.

Can you please provide the error output?
Thanks,
Pawel
Pawel

From: sanazkaviani @.>
Sent: Thursday, September 29, 2022 9:59:26 PM
To: NiftyPET/NiftyPET @.>
Cc: Subscribed @.***>
Subject: [NiftyPET/NiftyPET] mmr_lmproc.hist (Issue #17)
⚠ Caution: External sender
Hello,
I have a problem with "mmr_lmproc.hist". Although I've installed the niftypet without any problem or error, my notebook crashes when I want to produce Sinogram. I am using "Tesla V100-SXM2-32GB" GPU.
—
Reply to this email directly, view it on GitHubhttps://github.com/NiftyPET/NiftyPET/issues/17, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABPEVHX2OAGLB2AUVACH7R3WAXYJ5ANCNFSM6AAAAAAQZDP6NM.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Thanks a lot for your answer,
I don't get errors; just the kernel dies as follows:
AsyncIOLoopKernelRestarter: restarting kernel (1/5), keep random ports
kernel 9834c3dc-9e86-4d39-9176-babf0908d46b restarted
I appreciate your help,
Sanaz

Hi Pawel,
Hope you are doing well,
Regarding my last question, I would greatly appreciate it if you could answer me so that we can resolve this issue.
Bests,
Sanaz

Unfortunately, I don't have experience with those systems.
But going from the beginning: are you able to successfully install NiftyPET, including compilation? Also, are you able to run a terminal and import it?
Cheers
Pawel
Pawel

From: sanazkaviani @.>
Sent: Tuesday, October 25, 2022 10:54:45 PM
To: NiftyPET/NiftyPET @.>
Cc: Markiewicz, Pawel @.>; Comment @.>
Subject: Re: [NiftyPET/NiftyPET] mmr_lmproc.hist (Issue #17)
⚠ Caution: External sender
Hi Pawel,
Hope you are doing well,
Regarding my last question, I would greatly appreciate it if you could answer me so that we can resolve this issue.
Bests,
Sanaz
—
Reply to this email directly, view it on GitHubhttps://github.com/NiftyPET/NiftyPET/issues/17#issuecomment-1291184596, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABPEVHR5J6Y2HFM6I26RGZ3WFBJKLANCNFSM6AAAAAAQZDP6NM.
You are receiving this because you commented.Message ID: @.***>

Yes, the installation was completely successful, without any errors. Also, I could import the Niftypet, Nipet, and everything then I could get the mmrparams, but when I want to get sinograms with the mmrhist it crashes.

Pawel

From: sanazkaviani @.>
Sent: Tuesday, October 25, 2022 11:41:23 PM
To: NiftyPET/NiftyPET @.>
Cc: Markiewicz, Pawel @.>; Comment @.>
Subject: Re: [NiftyPET/NiftyPET] mmr_lmproc.hist (Issue #17)
⚠ Caution: External sender
Yes, the installation was completely successful, without any errors. Also, I could import the Niftypet, Nipet, and everything then I could get the mmrparams, but when I want to get sinograms with the mmrhist it crashes.
Sanaz
—
Reply to this email directly, view it on GitHubhttps://github.com/NiftyPET/NiftyPET/issues/17#issuecomment-1291216160, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABPEVHRGGKZCEQFYIAO4AKDWFBOZHANCNFSM6AAAAAAQZDP6NM.
You are receiving this because you commented.Message ID: @.***>

I receive my GPU information as follows:
[('A100-SXM4-40GB', 40536, 8, 0)]

I'd appreciate it if you could provide me with some information about ".so" libraries (how can I open and edit them) because I think my problem is them.

Hello again Pawel,
my Linux is 'Gentoo Base System release 2.6', do you think that maybe the problem is because of my Linux?


fix issues raised from scorecard

###What does this PR do ? ####
-- Fix eslint  rule
-- Remove pause from e2e test.
--  Add middleware tests
--  assert for empty fields and model checks in model tests.

Coverage remained the same at 75.157% when pulling 840c97dd3555e0b1a8348a22ceeabb4a3ac4072e on implement-scorecard-feedback into 5109cbf8b4d203e8e40d05ce6686520329b29b25 on develop.


Arrow functions don't have a 'prototype' property

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

Thank you @errorsmith for your contribution and congratulations on your first PR merge to this repo! 🎉
Hope to see more contributions from you in the future.


Definitions don't seem to be loading from JSON correctly

Basically, I added a new definition to my game called "Familiarity". However, Dialogic keeps returning an empty string as if it can't find it. I printed the glossary of definitions to console, and sure enough:

What's weird, is that when I go to the file stored on my system, the new definition IS listed:

Here it is listed along with the rest of the definitions in the Dialogic tab:

I'm on Windows 10, Godot 3.3, and Dialogic 1.1

I think I have incountered this before. What sometimes makes this happen is if you set reset_saves to false. In that case it thinks it knows everything and just loads the definitions from your save. But maybe the definition didn't exist when your save was created.
If you are able to without destroying something, try setting reset_saves to true.
Nevertheless this is a bug and should be fixed.

I think I have incountered this before. What sometimes makes this happen is if you set reset_saves to false. In that case it thinks it knows everything and just loads the definitions from your save. But maybe the definition didn't exist when your save was created.
If you are able to without destroying something, try setting reset_saves to true.
Nevertheless this is a bug and should be fixed.

Yup, I can confirm that opening a dialogue box with reset_saves set to true fixed it. Thanks for the tip! Still a bug tho :)

Yes it doesn't compare default definitions and saved ones, so if you added new definitions compared to your last save, it won't know about it unless you reset the saves. Might be a problem when making updates to a game.

Oh god, this bug's a killer. I was really struggling with it (and was about to abandon the plugin entirely) when I found this thread.
I'm working on a prototype without a save system, and right now the most sensible workaround seems to be to just call "Dialogic.reset_saves()" every time the game launches. If I had a save system, I suppose I'd call reset_saves() when the player starts a new game.
So far this seems like a fine workaround, and it makes sense that Dialogic wants to start from its save by default, but it's somewhat counter-intuitive behavior during development. Honestly, you might not have to make any grand changes to the code if this were just clearly documented somewhere.

I'm going to close this one since the save system is rewritten for 1.3


translations PR 20190805

Ideally this PR should be review by community members for each language.
Note: In the event that you see an english translation instead of the desired language is because this PR was submitted before the translation was made on the Mattermost Translation Server and probably will be submitted for the next PR.

QA review not needed pre-merge. Removing QA Review label.

@cpanato ping


Wavesurfer loads network audio resources in Vue across domains

Using wave surfer graphical audio resources, there is an error：
CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves ### your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
The code is：
this.wavesurfer.load('http://...')

Your server should send CORS headers, here is an example for sending them through Apache config:
Header set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "GET"
Header always set Access-Control-Allow-Headers "Content-Type: audio/mpeg"

It is up to you to decide how to send them, you can do it from apache, from php, from node js etc. This is not a problem with wavesurfer or vue.


[all] Bump up chart-releaser-action version

This fixes a bug which was fixed in release-1.19 branch but not
replicated to release-1.20 branch.

What this PR does / why we need it:
Which issue this PR fixes(if applicable):
fixes #
Special notes for reviewers:

Release note:

NONE

/ok-to-test

/ok-to-test

/lgtm

/lgtm

@brtknr do we need to backport this change to release branch?

@brtknr do we need to backport this change to release branch?

Yes we do, its here: https://github.com/kubernetes/cloud-provider-openstack/pull/1378

Yes we do, its here: https://github.com/kubernetes/cloud-provider-openstack/pull/1378

/approve

/approve


⚠ Bofrost.lu has degraded performance

In 0335eca, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1257 ms

Resolved: Bofrost.lu performance has improved in 4803cf2 after 6 minutes.


[Bug]: Incorrect array cast does not panic at runtime

Description
Consider the below sample where the cast at line 4 should panic at runtime since the inherent type of y is int[3]

1. public function main() {
2.     readonly & int[3] x = [1, 2, 3];
3.     int[] y = x;
4.     int[2] z = <int[2]>y;
5. }

Steps to Reproduce
No response
Affected Version(s)
No response
OS, DB, other environment details and versions
No response
Related area
-> Runtime
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

Seems to have been fixed on U8.


What are the default keybindings?

As of yet, there is no default keybinding. Check the wiki to see how to configure keybindings.

Closing this because this info should be sufficient for future lookups.


FORBIDDEN doesn't make sense

I have to already know what Unix signals are
I have to decide that I then want to handle them and find the signal-hook crate
I have to read enough of the documentation to figure out how to register a handler
I have to write unsafe{ ... } in order to call register
And then I am blocked from registering a SIGSEGV handler anyway?

If the interface is already marked unsafe, who is being protected by this feature? It seems very unlikely to me that there is anyone who would have thought that registering a handler for SIGSEGV is a good idea, and got all the way to writing the unsafe block and running their code, but changed their mind after receiving the panic.
I would skip using the library altogether and just go to nix, but this library is the lingua franca in Rust for signal handling, and I give up being compatible with the central registry.

First, note that there is a version that allows you to do it: https://docs.rs/signal-hook-registry/1.3.0/signal_hook_registry/fn.register_unchecked.html.
Now as to who is protected and why this exists:

The idea is that independent parts of program can register multiple signals into the same handler and these will compose. This is probably not true for SIGSEGV and honestly, I haven't tried to document what the user needs to uphold for that to be safe.
After registering SIGSEGV, it now becomes unsafe to remove the handler, which isn't the case for the „normal“ signals.
There's a lot of additional helpers and abstractions built on top that are marked safe (by the crate and possibly by others). However, using them with SIGSEGV would certainly not be.

As the library and the documentation tries to explain, it is meant for kind of mainstream needs. Yes, if you need to handle SIGSEGV, you can either force this library or you can use nix directly ‒ you probably don't want the composition of signals there anyway. These signals and their semantics are very explicitly out of scope of what this library does.

SIGSEGV can compose. You can have a memory area that when it segfaults you mprotect it to make it writable/readable, provided it really faults on a location in that area. It's not crazy to have two such areas, and then chain two SIGSEGV handlers. Another useful thing something like signal-hook can handle is that the rust runtime already registers a SIGSEGV handler at startup to detect stack overflow. Users naively registering their own handler with nix without chaining the old one break this detection.

After registering SIGSEGV, it now becomes unsafe to remove the handler

Why?

There's a lot of additional helpers and abstractions built on top that are marked safe (by the crate and possibly by others). However, using them with SIGSEGV would certainly not be.

You can only get a SIGSEGV with unsafe code in the first place, so why would that code become any less safe? I don't see how SIGSEGV is any worse than any other signal?

Why?

The documentation is a bit sparse, but:
| According to POSIX, the behavior of a process is undefined after it ignores a SIGFPE, SIGILL, or SIGSEGV signal that was not generated by kill(2)  or  raise(3).
If the last action is removed from a handler, it doesn't restore SIG_DFL, but does nothing. That very much sounds like ignoring.

You can only get a SIGSEGV with unsafe code in the first place

No. You can absolutely do a stack overflow with completely safe code. That is only termination with SIGSEGV, not UB so far. You can also trigger SIGFPE, SIGILL in safe code…
The difference is that in these you have to remedy the situation before returning, or terminate. That's not the case with the other signals. And you have to do it inside the signal handler, not at some later point in time.
As said above, you can still use the unchecked versions. This panic is protecting all the safe abstractions that work by extracting the „signal happened“ somewhere outside from accidentally doing very nasty things. Anyway, removing the panic now would be a breaking change and it lives in the -registry which is 1.0.


Resolved #1098

Fixed example to created scheduledtask action properly.
https://github.com/MicrosoftDocs/windows-powershell-docs/issues/1098

@dariomws306 @get-itips @tseward
Peer review needed for this PR. Thanks.

Looks ok

Looks good.

Ok!

@AndreaBarr This PR that has passed review is ready to be merged.


fts: set to musl-fts on musl

Description of changes
NetBSD fts wasn't really designed to be used in this way, and it can produce some strange errors — e.g. I sometimes see duplicate symbols when musl and libnbcompat define the same symbol.
More packages used musl-fts directly than the fts package anyway, which can now be changed to use the generic fts.
Unlike netbsd.fts, musl-fts doesn't have a setup hook, so we have to tell packages that don't know about it to link against libfts.  We could decide to copy netbsd.fts's setup hook later if we want to.
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Seems like there's not much interest either way, so I'm going to go for it.


Add sounds from 2023.07.09 folder

I have a series of dated folders in which I collected clips, but kept procrastinating.  This is one of them.

Unfortunately, the sounds in this folder were corrupted during recording, and cannot be used.


Draw straight line will can not be copied

1.Click draw menu,click straight line button and add to image.
2.Click the straight line button again,select the line on the image.
3.Press Ctrl+C and Ctrl+V,the straight line cannot be displayed after being copied.(NG)
The free line is good.

@Edric-Li
Thank you for the bug report. I'll fix it later.


Why is carla/Build/patchelf-install/ empty?

When I was running make PythonAPI, the error occurs like

Then what should I do , could someone tell me specify steps ? Thanks ！！

i meet the same question ... how to solve
my ubuntu is 20.04


Add prebuilt carthage framework

Description
Add a prebuilt carthage framework to every RxDataSources release to speed up build times when using it in apps.
Motivation and Context
I'm using carthage as dependency manager for my projects and I use RxDataSources extensively, thank you for the awesome work! Carthage builds all the dependencies from source every time, unless they have a prebuilt framework attached to the github release. By attaching it, the client simply downloads the framework and build times are much faster.
I saw you attached a zip to the latest release, but if it's not called RxDataSources.framework.zip it's not recognized by carthage. Currently that is called RxDataSources.zip. Automating releases can solve the issue forever.
Proposed Solution
## do this only the first time on your mac or CI
## https://github.com/github/hub
brew install hub

## to create a release, from the project's root
carthage build --archive
hub release create -a RxDataSources.framework.zip -m "tag comment" "tag version"

And you will get a release like this (taken from RxSwift)

I don't think we should do this.
RxSwift has a fairly limited number of people with access to attaching binaries. There are 200 people in the RxSwiftCommunity and attaching binaries provides serious security risk IMHO.
I've removed the attached zip in the latest release.

@kzaher if that is your scenario, then I agree with you is a serious security risk. One way I managed to resolve this is letting only the CI create releases. Solutions vary depending by many factors. It could not be the one which solves your scenario.

The problem isn't who creates releases, but how do you verify somebody hasn't replaced the binary with a malformed one.
I don't think we can solve this in a satisfying way.


CreateIssueTask failed : value too long for type "character varying(100)"

value of "name" in issues_v1 sometimes has more than 100 char

DBs in all environement have been patched.
column "name" in issues_v1 changed to character varying(150)
ALTER TABLE issues_v1 alter column name type character varying(150);


after recovering account by seed, not all wallets are show

Currently we don't scan for all wallets

We can scan for new wallets:

[ ] This will find all wallets that are sequential, but let's say you have a wallet at key index 1, and a next one at key index 500, do we expect that 2nd one to still be found (as that would mean we scanned 500 addresses, 498 for nothing;
[ ] Let's say that besides key index 0, we also find used addresses at key index 1, 2, 3, 4. What do we expect now:

Create them as a single wallet?
Create them as 4 separate wallets?
Give the user a choice somehow?

The scanning is the easy part, the difficult part is how do we want the UX to be surrounding this?

[ ] Do we also want to allow scanning of keys of existing accounts? By means of having a scan button in the settings page? How would that experience look like? Similar to the experience in the creation process or an empowered version?


Bug-36155 - Unnecessary RepositoryItemHeader changes

Thank you for your contribution.
Before submitting this PR, please make sure:

[ ] PR description and commit message should describe the changes done in this PR
[ ] Verify the PR is pointing to correct branch i.e. Release or Beta branch if the code fix is for specific release , else point it to master
[ ] Latest Code from master or specific release branch is merged to your branch
[ ] No unwanted\commented\junk code is included
[ ] No new warning upon build solution
[ ] Code Summary\Comments are added to my code which explains what my code is doing
[ ] Existing unit test cases are passed
[ ] New Unit tests are added for your development
[ ] Sanity Tests are successfully executed for New and Existing Functionality
[ ] Verify that changes are compatible with all relevant browsers and platforms.
[ ] After creating pull request there should not be any conflicts
[ ] Resolve codacy comments
[ ] Builds and checks are passed before PR is sent for review
[ ] Resolve code review comments
[ ] Help Libray document is updated accordingly for Feature changes.

2 codacy issues are about 'redundant delegate creation', which is not relevant and can be ignored.


Changes in Emissions Reporting (high-level) for climate-assessment (FaIR, MAGICC) since AR6

Topic:
What subcomponents of CO2 are there?
And how we need to update the climate-assessment workflow to accommodate the change in the template.
AR6:
In AR6, we had:
Emissions|CO2 =
"Emissions|CO2|AFOLU" + "Emissions|CO2|Energy and Industrial Processes" + "Emissions|CO2|Other" + "Emissions|CO2|Waste"
this is also how the current climate-assessment code (docs) is working.
ScenarioMIP
In the new template (I am looking here), this does not hold true anymore.
In addition to the four above, we now also have:
“Fossil Fuel Fires”, “Capture and Removal”, “Product Use”
Note also, that at the top of "emissions.yaml", we have the following, where "Product Use", and "Fossil Fuel Fires" are missing:

Emissions|{Level-1 Species}:
description: Emissions of {Level-1 Species}
unit: "{Level-1 Species}"
components:
- Emissions|{Level-1 Species}|AFOLU
- Emissions|{Level-1 Species}|Energy
- Emissions|{Level-1 Species}|Industrial Processes
- Emissions|{Level-1 Species}|Waste
- Emissions|{Level-1 Species}|Capture and Removal
- Emissions|{Level-1 Species}|Other

How to go forward?
Option 1: revert back to AR6 aggregate template.
Option 2: agree on a full definition of (a) which sectors to report, and (b) clarify that these components together do add up to the total. Then also, climate-assessment will have to be updated accordingly.
Questions:
For option 2: should we go with the full set?
I.e.:

Emissions|{Level-1 Species}:
description: Emissions of {Level-1 Species}
unit: "{Level-1 Species}"
components:
- Emissions|{Level-1 Species}|AFOLU
- Emissions|{Level-1 Species}|Energy
- Emissions|{Level-1 Species}|Industrial Processes
- Emissions|{Level-1 Species}|Waste
- Emissions|{Level-1 Species}|Capture and Removal
- Emissions|{Level-1 Species}|Other
- Emissions|{Level-1 Species}|Fossil Fuel Fires
- Emissions|{Level-1 Species}|Product Use

In FaIR and MAGICC, we only have two sectors in CO2, and 1 sector for all other species.
For CO2, should we go with:
(1) AFOLU; Emissions|CO2|AFOLU
(2) Energy and Industrial Processes; sum of all other sectors.
@IAMconsortium/common-definitions-emissions
@znicholls @chrisroadmap @gidden
Related issues:

Are CDR descriptions clear enough? #145
Updating docs of climate-assessment: https://github.com/iiasa/climate-assessment/issues/61
Discussion on variables to report for harmonization of emissions for ScenarioMIP/CMIP7: #151

In FaIR and MAGICC, we only have two sectors in CO2, and 1 sector for all other species.
For CO2, should we go with:
(1) AFOLU; Emissions|CO2|AFOLU
(2) Energy and Industrial Processes; sum of all other sectors.

This is all MAGICC and FaIR have, so all we need/can use. The idea is basically: split CO2 emissions into CO2 that came from fossil reservoirs vs. CO2 that came from the land pool. As long as we get something that has roughly that split, we'll be fine, so you can do whatever you want at the more detailed levels below this binary split.

In FaIR and MAGICC, we only have two sectors in CO2, and 1 sector for all other species.
For CO2, should we go with:
(1) AFOLU; Emissions|CO2|AFOLU
(2) Energy and Industrial Processes; sum of all other sectors.

This is all MAGICC and FaIR have, so all we need/can use. The idea is basically: split CO2 emissions into CO2 that came from fossil reservoirs vs. CO2 that came from the land pool. As long as we get something that has roughly that split, we'll be fine, so you can do whatever you want at the more detailed levels below this binary split.

That's right!
On the IAM side we just need to make sure that we're actually harmonizing to more detailed totals! (And that these totals indeed add up alright.)
So people will want to know where to report their CDR emissions (see also e.g. https://github.com/IAMconsortium/common-definitions/issues/145).
And if someone has fossil fire emissions, whether to report it under 'Energy' or directly under 'Fossil Fuel Fires'.
It's just for the template, even if in climate-assessment it will have no impact (we just need to reaggregate as a pre-processing step) - as long as there's no mixed AFOLU/Fossil emissions category being introduced, which is currently not the case I think.

In the first submission, none of the modelling teams reported "Fossil Fuel Fires".
Unless anyone shouts (@IAMconsortium/common-definitions-emissions), I suggest we move it under "Energy" as
"Emissions|{species}|Energy|Fossil Fuel Fires"

Just checking the definition: "Fossil fuel fires are fires based on burning of fossil fuels, lit by people" (or something like this)? If yes, sounds good because a) putting it under energy means it'll go in the 'fossil' bucket for MAGICC and FaIR and b) it's clearly anthropogenic (so none of the natural vs. anthropogenic split headache).

Maybe it has been reported by (some?) IAMs before, but I am not aware of that. And for CMIP6, for emissions harmonization, it was classified under "Energy Sector" too.
Looks like it was added as a separate category because of CEDS (git blame).
In CEDS, it is reported under "7A" (referring to IPCC 'other'), I'm not entirely sure why (CEDS wiki is not very clear about it). Perhaps it is to because they used a separate gridding proxy data file? (EDGAR v4.2 FFFI)
Note also that in Hoesly et al. it is also classified under the Energy sector (Table 6).

Perfect. Sounds like everything is pointing in the direction of your solution being a good one!

Yeah - will all shoot off a quick email to @ssmithClimate just out of curiosity on why CEDS reports it like this, then we should be sure.

Unless anyone shouts (@IAMconsortium/common-definitions-emissions), I suggest we move it under "Energy" as "Emissions|{species}|Energy|Fossil Fuel Fires"

Actually, tiny update, it probably should be "Emissions|{species}|Energy|Supply|Fossil Fuel Fires"

It doesn’t really fit either one.
It’s not fugitive emissions, so it doesn’t really fit under 1B/2B.
But it’s not really combustion from energy energy, production, or transformation.
It’s more like a third category of “open burning “, that happens to be fossil fuels.
Which is why it’s put in an “other” category by Edgar, which we also agree with.
So the main issue perhaps, given that I suspect few models include this, from an IAMC perspective, how do we properly harmonize this with IAM data? Will it be clear to the processing that IAMs are not including this, and therefore, needs to be gap filled? (Really a more general issue.)

Two comments: from my basic intuition as an IAM modeler, adding fossil-fuel as a subcategory of energy-supply is not very intuitive. And if this is going to be a variable that few IAMs can even report (or have a detailed implementation for), I’d prefer to keep it close to the top of the variable tree. With the explicit aim that as many variables as possible are close to reported model-values after harmonization, or keeping major differences before and after harmonization to a few variables.

Two comments: from my basic intuition as an IAM modeler, adding fossil-fuel as a subcategory of energy-supply is not very intuitive. And if this is going to be a variable that few IAMs can even report (or have a detailed implementation for), I’d prefer to keep it close to the top of the variable tree. With the explicit aim that as many variables as possible are close to reported model-values after harmonization, or keeping major differences before and after harmonization to a few variables.

Then what about under "Emissions|CO2|Other", and add it explicitly to the definition there?
Also aligns well between with @ssmithClimate's comment?
I'm just trying to avoid us having a high-level variable that nobody will report.
However, if you strongly object, we can keep it like it


UploadError HTTP Error 502: Bad Gateway

Describe the bug
Facing UploadError HTTP Error 502: Bad Gateway while uploading a package to PyPI
Expected behavior
Package should be uploaded successfully.
To Reproduce
https://github.com/openedx/django-wiki/actions/runs/3419471826/jobs/5693100175
My Platform
Python3.8, Ubuntu 20 and Github Actions Environment.

I can see others are facing this issue as well. https://github.com/pypi/warehouse/issues/12510

Thanks for the report. We were having a resourcing issue with our upload service, but this should be resolved now.


change cursors to pointer when over toggle…

… the cursor seems to become a cross-hair over the chart. is this intended?

on mobility in randomly switches

@nrchtct crosshair is intended on full screen charts to facilitate interaction


How to pass activeClassName to parent

Not sure if this is the best place to post this. Just wondering if this is doable with react-router or if it needs to be done by sending the location in as a prop and testing it on the

<IndexLink to="/" activeClassName="active" className="nav-link" activeStyle={ACTIVE}>Dashboard</IndexLink>

<Link to="/about" className="nav-link" activeStyle={ACTIVE}>About</Link>

<Link to="/stores" className="nav-link" activeStyle={ACTIVE}>Stores</Link>

<Link to="/coupons" className="nav-link" activeStyle={ACTIVE}>Coupons</Link>

    {this.props.loggedIn ? (<Link to="/logout" className="nav-link" activeStyle={ACTIVE}>Log out</Link>) : (<Link to="/login" className="nav-link" activeStyle={ACTIVE}>Sign in</Link>)}

Thanks for your question!
We want to make sure that the GitHub issue tracker remains the best place to track bug reports and feature requests that affect the development of React Router.
Questions like yours deserve a purpose-built Q&A forum. Could you post this question to Stack Overflow with the tag #react-router? https://stackoverflow.com/questions/ask?tags=react-router
We also have an active and helpful React Router community on Reactiflux, which is a great place to get fast help with React Router and with the rest of the React ecosystem. You can join at https://discord.gg/0ZcbPKXt5bYaNQ46.

This is a really common question so we had an example in the docs ... but I can't find it anymore D:
You can make your own component, that wraps a link, and uses isActive just like Link does. Go look at the source of Link for inspiration. When I sweep through the docs for 2.0 I'll have an example in there.

Thanks guys will do!
On Saturday, January 30, 2016, Ryan Florence<EMAIL_ADDRESS>wrote:

This is a really common question so we had an example in the docs ... but
I can't find it anymore D:
You can make your own component, that wraps a link, and uses isActive
just like Link does. Go look at the source of Link for inspiration. When
I sweep through the docs for 2.0 I'll have an example in there.
—
Reply to this email directly or view it on GitHub
https://github.com/rackt/react-router/issues/2999#issuecomment-177268086
.

--
Best Regards,
Andres Garcia
Front-End Web Developer
http://www.andresthegiant.comhttp://www.andresthegiant.com
703.389.1081

@ryanflorence BTW, the LinkContainer on react-router-bootstrap ought to work for almost all use cases – it doesn't make any really Bootstrap-related assumptions. I've largely been pointing people toward that, though not so much on here.

As a reference: http://stackoverflow.com/questions/35053161/how-to-set-activeclassname-for-wrapper-element-of-link-or-indexlink-in-react-rou

Here you have an example:
https://stackoverflow.com/questions/42980858/react-router-v4-setting-activeclass-on-parent
Cheers.

How are we supposed to do this in 4 now @ryanflorence

How do u make it to where a user cant take control over my setting in phone and router and anything else?

One way to do it, would be to use the Route component, with a render function passed down to children. Like so:

  <Route path="/my-page">
    {({ match }) =>
<Link to="/my-page">My Page</Link>

  </Route>

See: https://reacttraining.com/react-router/web/api/Route/children-func


bwipeout aux panels

Auxiliary buffers are never accessed after cleanup, so use bwipeout instead of bdelete.

Thanks

Thanks


dependency injection problem

I have problems getting started with the project. See list of errors down here.
Any help would be much appreciated )
List of errors
Unable to start embedded Tomcat..
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jwtAuthorizationTokenFilter'
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jwtUserDetailsService'
etc..
When looking in the code with IntelliJ, I see the following:
Could not autowire. There is more than one bean of 'UserDetailsService' type.
Beans:
inMemoryUserDetailsManager   (UserDetailsServiceAutoConfiguration.class) jwtUserDetailsService   (JwtUserDetailsService.java)
Unable to start embedded Tomcat..
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jwtAuthorizationTokenFilter'
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jwtUserDetailsService'
etc..
When looking in the code with IntelliJ, I see the following:
Could not autowire. There is more than one bean of 'UserDetailsService' type.
Beans:
inMemoryUserDetailsManager   (UserDetailsServiceAutoConfiguration.class) jwtUserDetailsService   (JwtUserDetailsService.java)

Closed, because I published a complete new version.


Simplify

Beer free beer is good

The suggested license is not sufficient for preventing people from suing me for damages. I try to stick to well established and well known licenses. Anything else seems to scare people away, plus you have the benefit of it having been through legal rigor.

The suggested license is not sufficient for preventing people from suing me for damages. I try to stick to well established and well known licenses.

For what my own input is worth, I have seen the MIT License and the GNU General Public License used for technology in the game industry, and practically no other free/libre software licenses such as a Beerware one for exactly the reason you give: it is vital to be clear and unambiguous about such things as warranty and liability.

I fully agree with @ejmr. Closed.

I appreciate your contribution, @bsdjunk, I really wish we could use that license, "believe, you, me."

A lot of code created by phk@ has used this license, it is simple. If you are worried about getting sued then you're doing it wrong.

If you are worried about getting sued then you're doing it wrong.

I literally laughed out loud.  Thanks for bringing a smile to my face today! :)

My work here is done I guess.

I realize that probably sounded rude and/or condescending, so I apologize, because that wasn't my intent.  Personally I suspect that you and I would share a lot of the same ideals about free software.  But Lillian and I both work on software for use in creating commercial games in the United States, and in that specific context---particularly with regard to where we are---using a license that does not explicitly exempt us from liability is a serious risk.  For example, if Hypatia did not use such a license then I could use it to build a game for sale, and then when my business goes broke because I made a terrible, piece of crap game then I could turn around and sue Lillian by blaming my own business failures on the quality of her work.
Anyway, I don't want to keep nagging Lillian with the emails I know she's surely getting for each one of these messages, so this is my last comment on the matter.  I mainly just wanted to apologize if I sounded rude and clarify/explain why that type of license isn't a reasonable choice in this specific context.

I meant "My work here in done" as I made you laugh.

Ah I know, thanks again :)

@ejmr, thank you so much for your amazing reply. Careful, I'm coming to just expect greatness from you. ;D I really appreciate your dedication.
@bsdjunk I'm really grateful that you took the time to make this consideration and bring it up for review. It's healthy to have a conversation about these sorta things, make sure we're doing everything for a reason. :) I think @ejmr enumerated the reasons perfectly.
Great work, everyone!

Careful, I'm coming to just expect greatness from you.

@lillian-lemmer I would lower those expectations if I were you, heh.

You're too modest <3

If you two are going to sweet talk each other then tell me how to remove myself from these emails being sent to me.

Ok done, you may continue now.

Another legitimate laugh out loud moment.  Although I understand his point, heh.


Add successful notifications without popups

When I push and fail because of a bad password, I get a notification that says it failed, which is good. But then when I try again, re-enter my username/password, and succeed, the notification bar still had the old failed message floating there, which is confusing. We should make it go away, or replace it with  a "succeeded" message. This is a general point that likely occurs in lots of places in the code, so we should think about this globally.

Also consider having the latest notification fade after some amount of time (5 seconds?)

The bubbles have an auto-hide on them, so they should go away whenever you click somewhere else, so when you do succeed they should already be gone.


Evaluation - where's the best place, and write it!

Client side evaluation written.  Need server side evaluation now


Changing background color of the navigation bar

Hi,
Just wanted to ask a quick question about whether you were able to change the background color of the navigation bar. I did try using barTintColor but to no avail.
Thanks,
Nimesj

Hello Nimesj,
After checking the source code for NavigatorIOS, it seems that barTintColor is a valid attribute (Line 49), but I think they still have to implement/fix that functionality. I suggest you point out this issue on the main repository.
Source code for NavigatorIOS:
https://github.com/facebook/react-native/blob/72d3d724a3a0c6bc46981efd0dad8f7f61121a47/Libraries/Components/Navigation/NavigatorIOS.ios.js