How to achieve horizontal + Vertical compacting together?

Can we have both horizontal and vertical compacting together?

We can achieve that but the grid packing will be very weird.
Set the props compactType = "horizontal" and verticalCompact = true
FYI Check all possible arrangements.

@Hari-Shankar-3296 Yes, I tried setting the verticalCompact prop and it is super weird.
But my goal is to always move tiles from right to left. If i drag a tile from the top row to the bottom row. Then the spot vacated by this tile should be occupied by tile to its right and the tile from the beginning of next row should come up and so on. Like text in paragraph, if we delete letters then next line character will come up.

@nitesh619 I got your point now. The thing you are expecting ( even I need the same behaviour ) is not possible with react-grid-layout currently. But there are other library in which you can achieve this.
Here is the link.
https://ourcodeworld.com/articles/read/663/top-5-best-draggable-droppable-and-resizable-grid-layout-designer-jquery-and-javascript-plugins
and up to me Muuri is the best.
Note :
In Murri we can't resize grid items ( Can be done by adding React-Resizable ).
Some libraries are done using jQuery.
Up to my knowledge Muuri doesn't use jQuery

If you find any other good libraries, Please do let me know. :+1:

Thanks @Hari-Shankar-3296, Murri is really good. But I am not sure how it will work with react and also I can't afford to revert my changes and start with murri, I guess I have passed that stage. So I have decided to modify react-grid-layout codebase for the behavior I need. Wish me luck, looks like a tough task ahead. I will keep you posted.

@nitesh619 Hey, Did you end up getting that working? I've seen react-wrappers for muuri, not sure if they're still up to date.

Hey,
Yes, actually I was able achieve this behavior by easily overriding few util methods of the grid.

@nitesh619 Little reminder if you would please share your solution. Much needed here as well :)

How to do horizontal + vertical compaction combined,  also maintain ordering while dragging tiles on the grid
Hey @IvoBeneStudio @amrsalama,
Please find the solution below to achieve "Horizontal + Vertical" alignment.
Create a gridUtil.js or gridUtil.ts file in your project with following imports:
  import {
     sortLayoutItems,
     getLayoutItem,
     cloneLayoutItem,
     validateLayout,
     correctBounds,
     getAllCollisions,
     bottom
  } from 'react-grid-layout/build/utils

To compact tiles horizontally and vertically when you add or remove tiles to the gird array, override 'compact' method with following code:

RGL_UTILS.compact =  function compact(
  layout: Layout,
  compactType: CompactType,
  cols: number
): Layout {
  // We go through the items by row and column.
  const sorted = sortLayoutItems(layout, 'vertical');
  // Holding for new items.
  const out = Array(layout.length);

  for (let i = 0, len = sorted.length; i < len; i++) {
    let l = cloneLayoutItem(sorted[i]);

    // Don't move static elements
    if (!l.static) {
      l.y = Math.floor(i / cols)
      l.x = i % cols
    }
    // Add to output array to make sure they still come out in the right order.
    out[i] = l;
    // Clear moved flag, if it exists.
    l.moved = false;
  }
  return out;
}

Logic:

sort the tiles in the grid row wise i.e [tiles_of_row1, tiles_of_row2, .... ]
Now pop tiles from sorted array and add to output array with correct x and y without gaps.

Note: After overriding the above method, also override the 'synchronizeLayoutWithChildren' like below:
/* No code is added here. It's just copied from library otherwise grid wont call our overrided compact method */
RGL_UTILS.synchronizeLayoutWithChildren = function synchronizeLayoutWithChildren(initilaLayout, children, cols, compactType) {
  ....
  // copy the exact code from the utils.js 'synchronizeLayoutWithChildren' method
   .....
}

To keep the order i.e ordering of tile while dragging it around, override with following:

RGL_UTILS.moveElement =  moveElement(
  layout: Layout,
  l: LayoutItem,
  x: ?number,
  y: ?number,
  isUserAction: ?boolean,
  preventCollision: ?boolean,
  compactType: CompactType,
  cols: number
): Layout {
  // If this is static and not explicitly enabled as draggable,
  // no move is possible, so we can short-circuit this immediately.
  if (l.static && l.isDraggable !== true) return layout;

  // Short-circuit if nothing to do.
  if (l.y === y && l.x === x) return layout;

  log(
    `Moving element ${l.i} to [${String(x)},${String(y)}] from [${l.x},${l.y}]`
  );
  const oldX = l.x;
  const oldY = l.y;

  // This is quite a bit faster than extending the object
  if (typeof x === "number") l.x = x;
  if (typeof y === "number") l.y = y;
  l.moved = true;

  // If this collides with anything, move it.
  // When doing this comparison, we have to sort the items we compare with
  // to ensure, in the case of multiple collisions, that we're getting the
  // nearest collision.
  let sorted = sortLayoutItems(layout, compactType);
  const movingUp =
    compactType === "vertical" && typeof y === "number"
      ? oldY >= y
      : compactType === "horizontal" && typeof x === "number"
      ? oldX >= x
      : false;
  if (movingUp) sorted = sorted.reverse();
  const collisions = getAllCollisions(sorted, l);

  // There was a collision; abort
  if (preventCollision && collisions.length) {
    log(`Collision prevented on ${l.i}, reverting.`);
    l.x = oldX;
    l.y = oldY;
    l.moved = false;
    return layout;
  }
 if(isUserAction) {
    isUserAction = false;
    if(oldX === x) isLeftShift = oldY - y <= 0;
    if(oldY === y) isLeftShift = oldX - x <= 0;
 }
  // Move each item that collides away from this element.
  for (let i = 0, len = collisions.length; i < len; i++) {
    const collision = collisions[i];
    log(
      `Resolving collision between ${l.i} at [${l.x},${l.y}] and ${collision.i} at [${collision.x},${collision.y}]`
    );

    // Short circuit so we can't infinite loop
    if (collision.moved) continue;

    // Don't move static items - we have to move *this* element away
    if (collision.static) {
      layout = RGL_UTILS.moveElementAwayFromCollision(
        layout,
        collision,
        l,
        isUserAction,
        compactType,
        cols,
        isLeftShift
      );
    } else {
      layout = RGL_UTILS.moveElementAwayFromCollision(
        layout,
        l,
        collision,
        isUserAction,
        compactType,
        cols,
        isLeftShift
      );
    }
  }

  return layout;
}

RGL_UTILS.moveElementAwayFromCollision =  moveElementAwayFromCollision(
  layout: Layout,
  collidesWith: LayoutItem,
  itemToMove: LayoutItem,
  isUserAction: ?boolean,
  compactType: CompactType,
  cols: number,
  isLeftShift,
): Layout {
  const compactH = compactType === "horizontal";

  const preventCollision = collidesWith.static; // we're already colliding (not for static items)
  const isTileWrapping = isLeftShift
      ?  itemToMove.x - 1 < 0
      :   itemToMove.x + 1 >= cols;
  const deltaShift = isLeftShift ? -1 : 1
  const x = isTileWrapping ? (isLeftShift ? cols - 1 : 0) : itemToMove.x + deltaShift
  const y = isTileWrapping ? itemToMove.y + deltaShift : itemToMove.y

  return moveElement(
    layout,
    itemToMove,
    compactH ? x : undefined,
    y,
    isUserAction,
    preventCollision,
    compactType,
    cols,
    isLeftShift
  );
}

Logic:

isLeftShift : tells if user moved the tile should be shifted to left after user dragged a tile
isTileWrapping : tells, if tile needs to be shifted to the next row

Please let me know, if you face any problems while implementing it. Also, If anyone wants to volunteer to create a pull request with this feature then I would be happy to guide.

Closing this issue, as above solution will provide the needed feature. Also tested this and fond OK with all test cases.

I made some changes based on the above, but making the new behavior conditional on a new compactType "wrap". The full PR is at https://github.com/STRML/react-grid-layout/pull/1188.

@nitesh619 Do you mind checking out this CodeSandbox? I'm missing something with your implementation, I just can't figure it out. Thanks!
https://codesandbox.io/s/react-grid-layout-double-compaction-z1kwo?file=/src/App.js

I took a quick look. It's not doing what I need yet.
For example, starting with
abc
def
ghi
and dragging d to where h started out, I want
abc
efg
hdi
but I get
abc
gef
hdi

That's not to say what you have may not be useful to someone. I'm not really clear what you were aiming at.

@JohnThomson I probably should have been more specific. What I'm trying to accomplish is the ability to re-arrange the gird without it creating more rows. Currently, when I drag A to I's spot, F jumps down to a new row.

I don't think you're there yet. When I tried dragging A to I's spot as directly as I could, things jumped all over the place during the drag, and I ended up with
f b c
e f
d g a
h
Trying again along a slightly different path, I got
b c
d e
g h a
f i
I tend to think that the result of dragging a card to a particular destination should be independent of the route

@JohnThomson I agree, I'm not there yet. That's why I posted the CodeSandbox. It reads as if @nitesh619 solved this problem, so I tried implementing his solution up top, but I'm not getting the results.
What you got is my issue. I want a grid of 3 columns and 3 rows at all times. No matter what gets dragged where. Currently, there are times (when dragging any item to the lower right), that a new row is created, opposed to just shuffling the items around the 3x3 grid.

Hey Guys,
Its almost a year since I worked on it. I will try to recall and look at your sandbox solution. Give me sometime.
Best Regards
Nitesh Jain

Looking forward to the solution, I'm encountering the same issue for weeks now and can't find a proper solution.
Cheers!

I also need this feature and found this React version of Muuri which seems to provide almost all of what RGL has including this feature mentioned here. Unfortunately, the library seems not actively maintained

This is feature I wanted, when you have static size grids layout just wanna exchange position double directions by user interaction.

Hi! I am having the same problem. Is there a way to merge this solution into the code?
I don't understand how I can implement it if the library code is read-only. I can't override functions from my own code. Or can I?

I am having the same problem. Is there a way to merge this solution into the code or to have a sandbox working copy please ?

Please share codeSandbox example how can we do it !

Thanks @nitesh619 for posting the code! It works great!
@mechivk yes you can override code by importing the gridUtil.js file like import  "@/utils/gridUtil";.
Posting my working code in case it helps somebody else. It is almost the same code that @nitesh619 posted (I added a missing parameter to one function), plus part of a React component making use of it.
gridUtil.js
import React from 'react';
import * as RGL_UTILS from 'react-grid-layout/build/utils'
import {
   sortLayoutItems,
   getLayoutItem,
   cloneLayoutItem,
   validateLayout,
   correctBounds,
   getAllCollisions,
   bottom,
   compact,
   moveElement
} from 'react-grid-layout/build/utils';

RGL_UTILS.compact =  function compact(
  layout,
  compactType,
  cols
) {
  // We go through the items by row and column.
  const sorted = sortLayoutItems(layout, 'vertical');
  // Holding for new items.
  const out = Array(layout.length);

  for (let i = 0, len = sorted.length; i < len; i++) {
    let l = cloneLayoutItem(sorted[i]);

    // Don't move static elements
    if (!l.static) {
      l.y = Math.floor(i / cols)
      l.x = i % cols
    }
    // Add to output array to make sure they still come out in the right order.
    out[i] = l;
    // Clear moved flag, if it exists.
    l.moved = false;
  }
  return out;
}

/* No code is added here. It's just copied from library otherwise grid wont call our overrided compact method */
RGL_UTILS.synchronizeLayoutWithChildren = function synchronizeLayoutWithChildren(initialLayout, children, cols, compactType, allowOverlap) {
  initialLayout = initialLayout || [];

  // Generate one layout item per child.
  const layout /*: LayoutItem[]*/ = [];
  React.Children.forEach(children, (child /*: ReactElement<any>*/) => {
    // Child may not exist
    if (child?.key == null) return;
    const exists = getLayoutItem(initialLayout, String(child.key));
    const g = child.props["data-grid"];
    // Don't overwrite the layout item if it's already in the initial layout.
    // If it has a `data-grid` property, prefer that over what's in the layout.
    if (exists && g == null) {
      layout.push(cloneLayoutItem(exists));
    } else {
      // Hey, this item has a data-grid property, use it.
      if (g) {
        if (!isProduction) {
          validateLayout([g], "ReactGridLayout.children");
        }
        // FIXME clone not really necessary here
        layout.push(cloneLayoutItem({
          ...g,
          i: child.key
        }));
      } else {
        // Nothing provided: ensure this is added to the bottom
        // FIXME clone not really necessary here
        layout.push(cloneLayoutItem({
          w: 1,
          h: 1,
          x: 0,
          y: bottom(layout),
          i: String(child.key)
        }));
      }
    }
  });

  // Correct the layout.
  const correctedLayout = correctBounds(layout, {
    cols: cols
  });
  return allowOverlap ? correctedLayout : compact(correctedLayout, compactType, cols);
}

/* All code is re-used from the original method except the 'isLeftShift' related code. */
RGL_UTILS.moveElement = (
  layout,
  l,
  x,
  y,
  isUserAction,
  preventCollision,
  compactType,
  cols,
  isLeftShift // overriden - nitesh
) => {
  // If this is static and not explicitly enabled as draggable,
  // no move is possible, so we can short-circuit this immediately.
  if (l.static && l.isDraggable !== true) return layout;

  // Short-circuit if nothing to do.
  if (l.y === y && l.x === x) return layout;

  console.log(
    `Moving element ${l.i} to [${String(x)},${String(y)}] from [${l.x},${l.y}]`
  );
  const oldX = l.x;
  const oldY = l.y;

  // This is quite a bit faster than extending the object
  if (typeof x === "number") l.x = x;
  if (typeof y === "number") l.y = y;
  l.moved = true;

  // If this collides with anything, move it.
  // When doing this comparison, we have to sort the items we compare with
  // to ensure, in the case of multiple collisions, that we're getting the
  // nearest collision.
  let sorted = sortLayoutItems(layout, compactType);
  const movingUp =
    compactType === "vertical" && typeof y === "number"
      ? oldY >= y
      : compactType === "horizontal" && typeof x === "number"
      ? oldX >= x
      : false;
  if (movingUp) sorted = sorted.reverse();
  const collisions = getAllCollisions(sorted, l);

  // There was a collision; abort
  if (preventCollision && collisions.length) {
    console.log(`Collision prevented on ${l.i}, reverting.`);
    l.x = oldX;
    l.y = oldY;
    l.moved = false;
    return layout;
  }
// overriden - nitesh
 if(isUserAction) {
    isUserAction = false;
    if(oldX === x) isLeftShift = oldY - y <= 0;
    if(oldY === y) isLeftShift = oldX - x <= 0;
 }
  // Move each item that collides away from this element.
  for (let i = 0, len = collisions.length; i < len; i++) {
    const collision = collisions[i];
    console.log(
      `Resolving collision between ${l.i} at [${l.x},${l.y}] and ${collision.i} at [${collision.x},${collision.y}]`
    );

    // Short circuit so we can't infinite loop
    if (collision.moved) continue;

    // Don't move static items - we have to move *this* element away
    if (collision.static) {
      layout = RGL_UTILS.moveElementAwayFromCollision(
        layout,
        collision,
        l,
        isUserAction,
        compactType,
        cols,
        isLeftShift // overriden - nitesh
      );
    } else {
      layout = RGL_UTILS.moveElementAwayFromCollision(
        layout,
        l,
        collision,
        isUserAction,
        compactType,
        cols,
        isLeftShift // overriden - nitesh
      );
    }
  }

  return layout;
}

RGL_UTILS.moveElementAwayFromCollision = function moveElementAwayFromCollision(
  layout,
  collidesWith,
  itemToMove,
  isUserAction,
  compactType,
  cols,
  isLeftShift,
) {
  const compactH = compactType === "horizontal";

  const preventCollision = collidesWith.static; // we're already colliding (not for static items)
  const isTileWrapping = isLeftShift
      ?  itemToMove.x - 1 < 0
      :   itemToMove.x + 1 >= cols;
  const deltaShift = isLeftShift ? -1 : 1
  const x = isTileWrapping ? (isLeftShift ? cols - 1 : 0) : itemToMove.x + deltaShift
  const y = isTileWrapping ? itemToMove.y + deltaShift : itemToMove.y

  return moveElement(
    layout,
    itemToMove,
    compactH ? x : undefined,
    y,
    isUserAction,
    preventCollision,
    compactType,
    cols,
    isLeftShift
  );
}

React component
import { useContext, useEffect, useRef, useState } from "react";
import GridLayout, { Layout, WidthProvider, Layouts } from "react-grid-layout";

// IMPORT OVERRIDE FUNCTIONS
// Update path to your App
import  "@/utils/gridUtil";

const WidthProvidedGridLayout = WidthProvider(GridLayout);

const ApplicationsList = () => {

  ....

  return (
    <WidthProvidedGridLayout
      layout={gridState.layout}
      cols={gridState.columns}
      rowHeight={gridState.rowHeight}
      maxRows={gridState.maxRows}
      useCSSTransforms={true}
      onLayoutChange={handleOnLayoutChange}
      preventCollision={false}
      margin={[20, 20]}
      onDragStart={handleOnDragStart}
      onDragStop={handleOnDragStop}
      isResizable={false}
      allowOverlap={false}
      autoSize={true}
      verticalCompact={true}
      compactType="horizontal"
    >
      {(data || []).map(item => (
        <div
          key={item.id}
        >
          ....
        </div>
      ))}
    </WidthProvidedGridLayout>
  );
};

@garciaguillermoa I'm glad this solution worked for you. :)

@garciaguillermoa this works great, but I have a problem with resizing.. Is there a solution for this?

Hello, I implemented nikesh's solution in my repo, but it only worked for 1x1 cells, so I extended it a little to work with resizing
Here's the demo https://buddy-grid-layout.eu.buddy.cloud/react-grid-layout/examples/0-showcase.html
Here's the code branch https://github.com/shipurjan/buddy-grid-layout/tree/1.4.4-compact-left-dev
To use it either copy the code from the repo above, or get it with npm:
npm add https://github.com/shipurjan/buddy-grid-layout#1.4.4-compact-left

or change react-grid-layout version in package.json to
    "react-grid-layout": "github:shipurjan/buddy-grid-layout#1.4.4-compact-left"

and it should work
Be careful, because with this method you're trusting that I won't change the branch, so it's better if you fork it or copy the code yourself, but I don't plan on changing the branch
Some problems at this moment are that dragging is kind of janky, especially at the end of the row, maybe it's possible to fix somehow

i was about to ditch this library altogether til i found this. thanks <3

god bless @shipurjan it just works now

Thank you so much @shipurjan this saved me! This behavior should be available in the main package as its very common in my opinion

@shipurjan, Thanks for the solution. Both horizontal and vertical scaling working fine. But now I am unable to drag the first item in first row. can you look into it?


The Link for Github samples generates 404

The Link for Github samples generates 404

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

ID: 4eb6a3cc-d46c-b4ad-41a5-1b347f6d21be
Version Independent ID: 83191b2a-86f4-6e9e-965f-1f9a6781f568
Content: API connector code samples for user flows - Azure AD
Content Source: articles/active-directory/b2b/code-samples-self-service-sign-up.md
Service: active-directory
Sub-service: b2b
GitHub Login: @msmimart
Microsoft Alias: mimart

@MrHinsh Thanks for the feedback! We are currently investigating and will update you shortly.

@MrHinsh I just checked all the links in this document and all links are working. Could you please check again and let me if you are still facing the issue?

@MrHinsh Closing the thread as all links are working. Feel free to tag me if you are facing the issue.


Need delete old alertmanager when upgrade rancher

old server version: 2.1.5
new server version v2.2.0-alpha6

start a old version server
add notifier, add cluster alert and project alert
check whether alertmanager deploy in system project cattle-alerting namespace
upgrade rancher server tot v2.2.0-alpha6
after upgrade we deploy an alertmanager app to cattle-prometheus but the old alertmanager deployment in cattle-alerting namespace not remove before, we should delete it automatically

please validate it @thxCode

Validated steps:

Start an old version server
Add notifier, add cluster alert
Check whether Alertmanager deploy in System project cattle-alerting namespace
Upgrade rancher server to rancher/rancher:master

Result:
After the upgrade, an Alertmanager app is deploying in cattle-prometheus and the old Alertmanager deployment in cattle-alerting namespace has been removed
@loganhz   cc @aiwantaozi


using ES6

I want use ES6
django compressor already support es6 precompiler

Please use capital-case on commit message later :|


Support Veeam version v<IP_ADDRESS>1 for backup and recovery

ISSUE TYPE

Improvement Request

COMPONENT NAME

Backup and recovery

SUMMARY

Veeam plugin is already supported and the documentation is available here http://docs.cloudstack.apache.org/en/latest/adminguide/veeam_plugin.html
Since the version v<IP_ADDRESS>1 the powershell commands has changed and few commands are no more valid.
Examples:

"PowerShell Add-PSSnapin VeeamPSSnapin" This command is not required anymore. Instead, all commands can be run as "PowerShell -command """

            String.format("$Job = Get-VBRJob -name \"%s\"", backupName),
         "$Job.GetBackupTargetRepository() ^| select Name | Format-List"

In this command "^" is not valid.
STEPS TO REPRODUCE

1. Setup Veeam with version v<IP_ADDRESS>1
2. Integrate with CloudStack
3. Wait for the backup sync to happend.

EXPECTED RESULTS

Using Veeam v<IP_ADDRESS>1 with CloudStack should work seemlessly

ACTUAL RESULTS

Using Veeam v<IP_ADDRESS>1 with CloudStack failed

@SadiJr let's continue our discussion here (from PR#6555) since that PR is merged and closed.
"@harikrishna-patnala sorry for the delay in answer. I tested in my lab with the Veeam build <IP_ADDRESS>1 P20211211, comparing with the main commit https://github.com/apache/cloudstack/commit/bca60761c502f1fa04c1d462128ef537c0e7ce73, and the error reported in issue https://github.com/apache/cloudstack/issues/6465 is fixed. About issue https://github.com/apache/cloudstack/issues/6554, I cannot reproduce the second example; can you please inform your version of Windows and PowerShell?"

I'm using Windows server 2019 and with powershell version "5.1.17763.771", May I know your's too where you said you were able to use the veeam version <IP_ADDRESS>1

addressed by #8241

This is addressed in https://github.com/apache/cloudstack/pull/8241 closing


Cannot import tensorflow (python 3.5.2)

I downloaded the tensorflow pip, the cuda and the cudnn and installed all of them bu it still showing the same error.
`import tensorflow
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper
return importlib.import_module(mname)
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\importlib_init_.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 986, in _gcd_import
File "", line 969, in _find_and_load
File "", line 958, in _find_and_load_unlocked
File "", line 666, in _load_unlocked
File "", line 577, in module_from_spec
File "", line 906, in create_module
File "", line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 41, in
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 21, in
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 20, in swig_import_helper
return importlib.import_module('pywrap_tensorflow_internal')
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\importlib_init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_pywrap_tensorflow_internal'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in
import tensorflow
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow_init_.py", line 24, in
from tensorflow.python import *
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python_init_.py", line 51, in
from tensorflow.python import pywrap_tensorflow
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 52, in
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper
return importlib.import_module(mname)
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\importlib_init_.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 986, in _gcd_import
File "", line 969, in _find_and_load
File "", line 958, in _find_and_load_unlocked
File "", line 666, in _load_unlocked
File "", line 577, in module_from_spec
File "", line 906, in create_module
File "", line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 41, in
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 21, in
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 20, in swig_import_helper
return importlib.import_module('pywrap_tensorflow_internal')
File "C:\Users\User\AppData\Local\Programs\Python\Python35\lib\importlib_init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_pywrap_tensorflow_internal'
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/install_sources#common_installation_problems
for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.`

I apologize but I am having a hard time understanding what the problem is, where the problem is, and what version it affects. Please resubmit and pay attention to the issue template (https://github.com/tensorflow/tensorflow/issues/new) . Please provide all the information it asks. Thank you.


Optional id property for marks

As already discussed in #66 by @Fil I would also like to have the possibility to add an optional id property to marks mapping to SVG id. This would allow external JavaScript to interact with the chart, like for example Tippy.js for more advanced tooltips.
I think the user would just via documentation have to be made aware of the fact that the ID needs to be unique for the plot and the page as a whole. (Possibly Plot could help with this and optionally prefix the IDs with some ID unique to the chart?)

Or would it be better to instead allow specifying arbitrary data attributes?


Unicode endpoints

Sorry if something go wrong at first because it was my first fork.
I've found Exception "UnicodeEncodeError" if i try something like that:
@users.route(u"/войти", methods=['GET', 'POST'])
def login():
provider = request.args.get('provider')
Unicode endpoints support. Actual for local zones like '.рф' (for Russian Federation) for example "кемхобби.рф"

Indeed. There are more parts where it's probably not safe right now to put unicode in. Will need to write some tests for that.


A11Y: Implement focus shortcuts

Feature Description
I recommend we start with 3 simple shortcuts:

cmd/win+shift+i: Move focus to currently active inspector tab (most often "design") - from where you can easily reach all the design panel options.
cmd/win+shift+c: Move focus to the currently selected element on the canvas - from where you can tab to the other elements or move it around.
cmd/win+shift+l: Move focus to currently active library tab (will vary) - from where you can easily move to another library tab by using arrow keys or access the currently active one by tabbing.

Furthermore, this is important information to document "somewhere". But where? How do we let users, who want to read about this, read about this?
@pbakaus or @o-fernandez to confirm shortcuts and documentation location.
Alternatives Considered

Additional Context

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

@pbakaus a few questions:

Do you have any recommendations or standards on what shortcuts to use? Avoiding clashes with Chrome or our existing shortcuts?
Do you know if implementing these shortcuts is a requirements (A11y-wise) for 1.0 Stable? If so, we'd need to prioritize the scope right away.
Lastly, do we need a "display list" in order to show users the navigational shortcuts? @samitron7 suggested doing that and keeping it separate from the long list of functional keyboard shortcuts (#359)

@pbakaus a few questions:

Do you have any recommendations or standards on what shortcuts to use? Avoiding clashes with Chrome or our existing shortcuts?

No idea. This is a fantastic question for our internal a11y team.

Do you know if implementing these shortcuts is a requirements (A11y-wise) for 1.0 Stable? If so, we'd need to prioritize the scope right away.

It is a requirement if there's no other way to complete a CUJ. If there is another way that's not too cumbersome, it is not a requirement.

Lastly, do we need a "display list" in order to show users the navigational shortcuts? @samitron7 suggested doing that and keeping it separate from the long list of functional keyboard shortcuts (#359)

I would put them where the other functional shortcuts are documented. There's not a huge difference, one is about jumping to a certain point, another one is executing a function.

Do you know if implementing these shortcuts is a requirements (A11y-wise) for 1.0 Stable? If so, we'd need to prioritize the scope right away.

It is a requirement if there's no other way to complete a CUJ. If there is another way that's not too cumbersome, it is not a requirement.

Shortcut to design panel:
You cannot complete all CUJ's without the shortcut to the design panel. If you select the non-topmost element on the canvas and press tab once, the next element up will be focused. If you keep pressing tab (another 10+ times), you'll eventually get to the design panel, but you can only* get there with the top-most element on the canvas selected.
You cannot "select" an element and move to the design panel to adjust options for exactly this selected element.
*Well, you can also get to the design panel with the background element selected. You have to tab all the way around backwards - requires shift tab 70+ times to cycle through the entire WP menu.
Shortcut to canvas and library:
You can always get to these, but it might require 30+ (shift) tab presses depending on where focus currently is. I'd classify this as cumbersome.

I'd say fixing this is definitely a requirement then.
One thought: We could consider not allowing you to tab through elements on the canvas without some other modifier key - that would allow you to always be able to tab to the design panel from currently selected element. Just a thought, either way seems workable.

Sam is sorting out the shortcuts as part of the design work. #4243

@samitron7 is blocked on this until she gets the confirmation from the Chrome team on these being okay to use.

From @samitron7 over email. Recommendation for navigation between panels:
MAC
CMD+Shift + < or >
PC
Ctrl+Shift + < or >
@samitron7 feel free to update! Otherwise, moving this to the sprint so it can be picked up.

@omar you are so fast!!! Just wanted to point out that those are brackets and not arrow keys as cmd+ shift + -> is reserved for text manipulation.

@o-fernandez @samitron7 that's unfortunately a very US-centric shortcut. This is the location of the angle brackets on a Danish Mac keyboard layout.

As you see, shift is the only difference between typing one or the other.
So Danish users will only ever be able to type one of those shortcuts.
And that's probably the case for other layouts as well.

@o-fernandez @samitron7 that's unfortunately a very US-centric shortcut. This is the location of the angle brackets on a Danish Mac keyboard layout.

As you see, shift is the only difference between typing one or the other.
So Danish users will only ever be able to type one of those shortcuts.
And that's probably the case for other layouts as well.

In that case, can we more simply define it as CMD+< or CMD+>?
If people need to use SHIFT as part of reaching the < or > isn't really important to define.

@o-fernandez @samitron7 that's unfortunately a very US-centric shortcut. This is the location of the angle brackets on a Danish Mac keyboard layout.
As you see, shift is the only difference between typing one or the other.
So Danish users will only ever be able to type one of those shortcuts.
And that's probably the case for other layouts as well.

In that case, can we more simply define it as CMD+< or CMD+>?
If people need to use SHIFT as part of reaching the < or > isn't really important to define.

That works, yeah. Then people will have to figure out which other keys they might need to hold down to make those symbols, but that's pretty standard for such advanced shortcuts, I think.

OMG...for real! So CMD+< goes to the Chrome browser settings page.

Pressing cmd and then < on US mac keyboard requires you to also hold the shift key, right? Otherwise it would be considered pressing cmd+,, no (which does open settings)?
Do you think it's confusing to just say cmd+< if we actually mean cmd+shift+, (but only for US users, other users will not have , and < on the same key)?

@barklund We need to say cmd+shift+< or >

Further conversation let us to instead use CmdOption1/2/3 for the three sections. Ticket to be updated.


SnapKey stopped working on my system

Today I discovered a problem that when I launch SnapKey, my WASD keys stop functioning completely,
everything works without SnapKey, however, after it is launched, the WASD keys stop functioning

Have you checked the provided documentation on how to properly identify and rebind keys in SnapKey?

Rebinding Keys
Troubleshooting

Did this problem start only "today"- so it was fine before?
What version of SnapKey are you using?
What happens when you run the software as "Administrator"?
What keyboard layout are you using? - does it match the default WASD preset in your current config file?

more info needed....

Hello, I have exactly the same problem, I tried to open snapkey in different ways and it still doesn’t work, I’m using the latest version of the application. Could this be related to the fact that I'm using it for CS2?

Проблема появилась сегодня, ничего не работает, даже если поставить другие клавиши.

Все работало, сегодня перестал работать, клавиши не работают вообще, не только в игре, а вообще если включён snaptap, если перебиндить, то будут не работать и другие клавиши, если выключить, то все работает

Путин заблокировал всем доступ.
Slava Ukraini!

после обновления 1.25 все равно не работает

Hello, I have exactly the same problem, I tried to open snapkey in different ways and it still doesn’t work, I’m using the latest version of the application. Could this be related to the fact that I'm using it for CS2?

yes. Valve has officially disallowed Snap Tap and alternatives, and is actively adding measures to prevent usage of it in CS2.
do not use SnapKey in CS2.

1.The problem started today, before all ok
2.Latest 1.2.4
3.Nothing changes
4. WASD
Rebind doesnt work UPD:The application stopped working in principle, because when it is turned on, the WASD keys cannot even print text

Since Snapkey was working fine before and then suddenly stopped, please check for any changes made to your computer’s drivers, updates, or other configurations.
Additionally, "WASD" is not a recognized keyboard layout (examples of valid keyboard layouts can be found in the links I previously provided).
Due to a lack of detailed information and the fact that Snapkey is functioning correctly for everyone else, I will move this issue to the discussion section. I am unable to replicate the problem on my system, and no instructions were provided on how to reproduce this behavior or explain what might have caused Snapkey's functionality to break.


Make decoders work for chunked responses.

Also, add a basic unit test for the custom decoders, zstd and blosc.

Windows CI hit a transient failure on an unrelated test:
test_collision_after_startup


Drag and Drop to create Markdown images and videos in MDX files

Initial checklist

[X] I read the support docs
[X] I read the contributing guide
[X] I agree to follow the code of conduct
[X] I searched issues and couldn’t find anything (or linked relevant results below)

Problem
Quickly authoring MDX documents by dragging and dropping images and videos is a nice DX
There is a drag and drop feature introduced in VS Code 1.70 (thanks @mjbvz) that allowed for handling dropped files (either from the VS Code explorer, editor tabs, the OS, or other applications) (extension sample) - activate this feature by holding shift while dragging a file.
With Markdown files (*.md), VS Code allows for creating a Markdown image or video:
https://user-images.githubusercontent.com/1935696/236184496-d8087b79-8297-4580-b2ae-581d81701c54.mp4
https://user-images.githubusercontent.com/1935696/236186216-6eaa43c5-0433-4311-9191-40b244ce0c46.mp4
It would be amazing if creating Markdown images and videos with drag and drop was also supported in an MDX file. Currently, as of VS Code 1.78, it just inserts the path:
https://user-images.githubusercontent.com/1935696/236184544-e85bdc8b-c361-4de2-a23f-add1d6d7e3c2.mp4
Solution
Apparently in VS Code 1.78 (April 2023) - or maybe earlier - there is an option for extensions to contribute their own options to this list:

VS Code includes a few built-in ways to drop common content formats. Extensions can also add their own drop options using the DocumentDropEditProvider API.

Source: https://code.visualstudio.com/updates/v1_78#_drop-selector
Maybe this would be the way to contribute this action of "Insert Markdown Image"
Alternatives
Installing the Drag And Drop Import Relative Path extension by @ElecTreeFrying

How far should this be taken? What should we generate?

What about other markdown, or MDX, files? Are there more formats? CSS? JS/JSX/TS/TSX?
Should we generate markdown images? Or an <img>, <Image>? I think markdown.
<video>, <Video>? What attributes?
For videos, what about other source formats? User might drop an .mp4, and have an .webm next to it, should we figure that out and inject that too? Or, should someone drop multiple video files to get it turned? Or, can a user first drop one file, which turns into a video, and then drop another somewhere inside it, in which case a <source> is added?
What URLs should be used? Presumably, MDX is compiled and runs from somewhere else (some bundle), so we’d need to be aware of where assets will be hosted, perhaps they aren’t, or somewhere else entirely?

I would suggest just copying the relatively simple VS Code implementation for a start - only handle single files, and insert (using relative paths):

Markdown for images
HTML element for videos

And only all drag + drop to *.mdx files.
I think that's probably the 80% or even 90% use case.

Wonder if this Copy external media files into workspace on drop or paste for Markdown from VS Code 1.79 (May 2023) is going to also just work out of the box, when this feature is implemented 😍
https://github.com/mdx-js/mdx-analyzer/assets/1935696/8427506d-0675-4d7e-aa42-f12512d93789

Thanks for the PR at #345 @remcohaszing 🙌
One question regarding this note from #345:

When dropping an image, the image is downloaded next to the file, and a markdown link is generated

When dragging and dropping an existing image from the VS Code tree (eg. an image which is either a sibling or in a different directory), I am guessing that it doesn't download the image again, right?

It doesn’t handle images dragged from the file tree apparently, only from the web. But it definitely makes sense to do so. I’ll fix that right away.

Thanks @remcohaszing , awesome 🚀
I judge from the semver/minor label and the current version of 1.4.0 on the Releases page and the extension page that this will be released in a future 1.5.0 version?

Yes. I really want to implement #349 in this release. That’s currently the only blocker (but not a hard one). Expect a release very soon.
I love the enthousiasm and would love your feedback and any promotion on social media :heart:

Released in<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>:tada:
Re promotion: feel free to retweet https://twitter.com/remcohaszing/status/1722621607620059512 :smile:

Finally got some time to look at this.
Just trying to make a video of this feature for X/Twitter and I'm having trouble activating the feature. Am I doing something wrong?
I would expect that dragging a .png file into an .mdx file while holding Shift would cause an image tag to be created in that MDX (either Markdown image syntax or <img> tag)
https://github.com/mdx-js/mdx-analyzer/assets/1935696/0f4890c4-2d94-4fdd-a948-8c2904c497ce

I’ve confirmed and found the problem.
You can drop images from external sources, but not reference local files. I’m working on it right now.

@remcohaszing I was making a video to test this just now, and it almost works! The path seems to be 1 level incorrect though (the ../ should be ./ or just ``, an empty string)
https://github.com/mdx-js/mdx-analyzer/assets/1935696/12bc7f08-de41-49ac-89eb-359ec98169ad
Paths:

slide-decks/partials/ciCd/index.mdx
slide-decks/partials/ciCd/ci-cd-pipeline.png

Fixed in 31f1912328a688d2e5c943f3f8923c7fee75cc98.

Great, just tested this in 1.6.1 of the VS Code and it works, thanks! 🚀 did some posts about it:

https://twitter.com/karlhorky/status/1737656079092498773
https://bsky.app/profile/karlhorky.bsky.social/post/3kgzkt5b3bc2c
https://www.threads.net/@karlhorky/post/C1GWSICLesZ

I edited this issue to be image-only and moved the video parts to a new issue:

https://github.com/mdx-js/mdx-analyzer/issues/378


Does not work with pages only router (next/useRouter)

Context
What's your version of nuqs?
"nuqs": "^1.17.4",
-> Paste result from `cat package.json | grep -e nuqs -e next-usequerystate` here

Next.js information (obtained by running next info):
-> Paste result from `next info` here

Are you using:

❌ The app router
✅ The pages router
❌ The basePath option in your Next.js config
❌ The experimental windowHistorySupport flag in your Next.js config

Description

When exclusively using pages router, Next throws an error due to AppRouterContext being null. See: https://github.com/vercel/next.js/blob/44bac5100d0ae6afef2925c3d88810c63eaf3eba/packages/next/src/client/components/navigation.ts#L117
Reproduction
... Will work on it

I've seen other threads referencing an import specific for pages routers (i.e. import { useQueryState } from 'nuqs/pages') -- seems like an ideal solution.

What's your Next.js version?

What's your Next.js version?

14.2.1

I was not able to get this error with a minimal reproduction repo (source here).
Could there be something else in your application setup causing this error?

Going to close this issue, feel free to reopen it with a link to a reproduction repository.


Select stream to push

I have several different incoming streams, is it possible to select which of them are pushed to, for example, YouTube with the push directive?
I tought maybe I have to create several applications (live1, live2), but that doesn't seem to work either, because nginx won't allow me to use /tmp/hls for all of them at the same time to stream hls.

Such a shame this repo is left out alone in the dark..

@Tralapo There's a newer, more maintained fork where you can post the issue: https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/

Sergey sometimes comments on issues here too, though.

Wow, looks nice. Will take a look at that.

Awesome.


Unpin h2

Closes #493
I ran the test suite locally and couldn't encounter any issues with h2>=4.

@wolfv I'm getting similar CI errors as in https://github.com/mamba-org/quetz/pull/495, which I don't think are related to my changes. Do you have idea what might be going on here?

I am re-running CI against master, let's see what happens!

Hm, unfortuntaely I do not see that same test failure on master (  FAILED plugins/quetz_harvester/tests/test_main.py::test_harvest_endpoint_and_job)
Not sure at all if it's related or not.

Hm, unfortuntaely I do not see that same test failure on master ( FAILED plugins/quetz_harvester/tests/test_main.py::test_harvest_endpoint_and_job)
Not sure at all if it's related or not.

Thanks for re-running against master. I will take a closer look at the error again.

I also triggered master again (https://github.com/mamba-org/quetz/actions/runs/1970213557) and it didn't have this error.
This may also be some unlucky combination of circumstances...
Should we cut a release first, with the current pinnings?

Should we cut a release first, with the current innings?

Yes, that would be great! Thank you.

Checking this PR again against the main branch.

for some reason CI didn't trigger and I thought it was green ... when it wasn't. Anyways, now I am forced to look into this error :)


9/9 AM Publishing

Docs Build status updates of commit ee1d7de:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.publish.config.json
:white_check_mark:Succeeded

iot-api-docs/docfx.json
:white_check_mark:Succeeded

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


Fix parsing servers with port in parseCustomServerUri

Using 'server' => '<IP_ADDRESS>:53', in options gave me an exception.
Found this when trying to debug issues I have when using default nameservers.

Thanks! We should probably have a test for that...

I've just released a new bugfix version for that. https://github.com/amphp/dns/releases/tag/v0.8.13


Support min/max date range

Describe the feature and the current behavior/state.
The date picker component should allow a way to limit the minimum and maximum selectable date.
Will this change the current API? How?
Two new properties to the component.
Who will benefit from this feature?
Users won't accidentally select invalid dates.
Any Other info.

Done in 1.53.0.


Dev

Codecov Report

Merging #4 into master will increase coverage by 77.27%.
The diff coverage is 80.18%.

@@             Coverage Diff             @@
##           master       #4       +/-   ##
===========================================
+ Coverage    3.77%   81.05%   +77.27%
===========================================
  Files           8       10        +2
  Lines         106      190       +84
===========================================
+ Hits            4      154      +150
+ Misses        102       36       -66

Impacted Files
Coverage Δ

ml/model.py
100% <100%> (+100%)
:arrow_up:

tests/ml/test_model.py
100% <100%> (ø)

tests/ml/test_preprocessor.py
100% <100%> (ø)

apis/__init__.py
100% <100%> (+100%)
:arrow_up:

apis/cache.py
100% <100%> (ø)

apis/ml_model.py
46.42% <30%> (+46.42%)
:arrow_up:

apis/prediction.py
57.89% <57.89%> (ø)

... and 5 more

Continue to review full report at Codecov.

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


[plot] Rework StackView colormap

There are inconsitencies in the StackView colormap handling (see #2809, PR #2832).
The problem is linked with the need for autoscale on current image and autoscale on the whole stack.
An idea is to have autoscale on the image so colormap handling is as usual, and to add a button to autoscale on the stack on demand (which removes autoscale and sets the colormap range to that of the stack).

Now we can implement that really easily.

Create a boolean attribute stackMode/fullMode (something like that) in colormap (that's really ad hoc, but if it is useful)

This commit could be used as template 8abb23cf2eca3b49ecfb7a42ef6c78b6b5cdc05d

Update the autoscale min/max computation

If the item is ImageStack, add stackMode is enabled, the result but be computed using item.getStackDate

Update the colormap dialog to allow to custom this attribute

It could can be displayed in the bottom on the scale --> [x] [auto scale] [3D] [x]
It should only be displayed when a ImageStack item is selected

Oh, maybe getColormappedData itself can be patched, and all the computation is done

Another approach, which looks much easier, could be to create a ImageStack property, and to not change at all the Colormap.

getColormappedData could be customed for this item
In this case switching from one one to another could be done with a StackView action, and could not be done with a colormap dialog button.

So, sorry, difficult to brainstorm remotely...
Now i think i prefer the second approach, cause it is not an ad hoc solution.
But it would be better to displayed the button in the colormap dialog. Like in the first approach. It is doable, cause the colormap dialog knows the item (in this case). That's kind of border line, in this case, it makes sens to edit in the dialog this specific property of the ImageStack.
What do you think?

I will need to set it from the dialog.
An item mix-in for this makes the dialog only care about a single kind of class to take into account (be it an ImageStack item or something else).

Can be fixed by dropping full stack autoscale


[PRM-1984] - updated models and logic with latest 1812 spec changes

https://github.com/hmrc/penalties-acceptance-tests/pull/211


Possible bug in Promise.settle()

I am using the following:
var Promise = require('bluebird');
var db = {
    create: function(name){
        var len = name.length;
        if(len < 3){
            return Promise.reject(new Error('too low'));
        } else {
            return Promise.resolve(name.length);
        }
    }
};

var user_names = ['John', 'Doe'];

Promise.settle(user_names, function (name) {
    return db.create(name);
}).then(function (results) {
    if (results[0].isFulfilled()) {
        var value = results[0].value();
        console.log(value); // returns John and not 4
    }
});

I am interpreting the docs as stating that the result of .value() is the promise's return value. This should be returning 4 and not John. Am I correct? Is this a bug?  Are the docs misleading? Or am I misunderstanding something?

Bergi is right in the stack overflow question, settle accepts a single argument, not two. It's not a map.

thanks @benjamingr . Adding the link to SO here as reference: http://stackoverflow.com/a/32236504/372875


April community call

Join the April Infracost community call!
We're open to discuss any topic related to Infracost and cloud costs - we just shipped our April updates. You can also share your adoption challenges and successes. We'll share the latest product news.
When
Thursday 7 April 2022, 10:00 PST = 13:00 EST = 18:00 GMT
Where
Zoom meeting: https://us06web.zoom.us/j/99421485564
Meeting ID: 994 2148 5564
(this meeting requires a Zoom account for joining, sign up for free on Zoom if you do not have an account)
Calendar invites

Google Calendar: go to this public calendar, click on the community call > Copy to my calendar. Alternatively use the email address<EMAIL_ADDRESS>to subscribe.

iCal format: Use https://calendar.google.com/calendar/ical/c_fvdtkbmdrqc17m1bmvlhiksb4k%40group.calendar.google.com/public/basic.ics for other applications.

Action required

React with a 👍 - if you intend to join (RSVP)
Add any topic that you think should be discussed as a comment in this issue.

Next week we're going to try a new format with pre-defined topics, checkout this issue if you'd like to dial in.


Return user object with self.current_user

This cleans up the codebase by returning a user object for self.current_user instead of just the email. Almost every instance of the call was just instantiating a user object anyway, so this makes that boilerplate. It also allows the base template to automatically get user info and level for rendering.

This is acting extremely odd. When running  as a normal webserver 'get_current_user()' functions correctly, but during tests it returns a string instead of the User object and all hell breaks loose. I'm trying to figure out why but if anyone please has ideas please let me know.

The issue is that you haven't changed the tests. For example, in https://github.com/biocore/qiita/blob/master/qiita_db/test/test_search.py#L144. Other option is that you did in your local machine but didn't push those changes.

Good catch, but that's not what the main failure point is. The problem is the current_user in the sitebase template is a string in tests, and a User object in practice, so when the template checks user.level it errors out, since strings don't have a .level parameter.

Strange cause the first error in Travis doesn't point to that:
ERROR: test_call (qiita_db.test.test_search.DecoratedClass)
Traceback (most recent call last):
File "/home/travis/build/biocore/qiita/qiita_db/test/test_search.py",
line 144, in test_call
<EMAIL_ADDRESS>File "/home/travis/build/biocore/qiita/qiita_db/search.py", line
204, in call
user.user_studies +
AttributeError: 'str' object has no attribute 'user_studies'
Perhaps solving those issues first will make clearer the others ...

Yes, but every other error below it is the level one.
On Sat, Jan 3, 2015 at 8:16 AM, Antonio Gonzalez<EMAIL_ADDRESS>wrote:

Strange cause the first error in Travis doesn't point to that:
ERROR: test_call (qiita_db.test.test_search.DecoratedClass)
Traceback (most recent call last):
File "/home/travis/build/biocore/qiita/qiita_db/test/test_search.py",
line 144, in test_call
<EMAIL_ADDRESS>File "/home/travis/build/biocore/qiita/qiita_db/search.py", line
204, in call
user.user_studies +
AttributeError: 'str' object has no attribute 'user_studies'
Perhaps solving those issues first will make clearer the others ...
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/qiita/pull/745#issuecomment-68597927.

If you want to chat, just let me know.
Looking at the files that were changed, neither
qiita_pet/test/test_analysis_handlers.py nor
qiita_db/test/test_search.py have changed. Thus, leading me to believe
that you haven't changed the tests from str to objects. Again, solving
first the easy errors and then focusing on the hard is the easiest
path forward.

@squirrelo ping!

I'm still at a loss as to why this is erroring. Anyone have a guess?

This is all coming down to the issue stated above, where it works fine in production but in tests it returns a string.

Alright, now it is entirely the following error:
File "error_html.generated.py", line 93, in _tt_execute
user_level = user.level  # sitebase.html:149
AttributeError: 'str' object has no attribute 'level'
Which means yes, it is actually returning a string instead of the objects when testing, as I have been saying before.

@squirrelo I will take a look to this next week.

Just tested on my laptop and I'm getting the same errors/failures that
Travis is having. If you are not getting this in your local version,
then there is a difference between what's on your local and uploaded
branches. Could you verify this? If that's not the case I can take a
look at why it is failing.

Are you doing tests or actually using the site? As I've said multiple times now, the tests fail but the site itself works.

Got it, believe it or not, that wasn't clear from your previous emails.
Anyway, try making these modifications:
$ git diff
diff --git a/qiita_db/test/test_meta_util.py b/qiita_db/test/test_meta_util.py
index 91ff572..93157e1 100644
--- a/qiita_db/test/test_meta_util.py
+++ b/qiita_db/test/test_meta_util.py
@@ -77,7 +77,7 @@ class MetaUtilTests(TestCase):
         count = self.conn_handler.execute_fetchone("SELECT count(*) FROM "
                                                    "qiita.filepath")[0]
         exp = set(range(1, count + 1))
-        obs =<EMAIL_ADDRESS>+        obs = get_accessible_filepath_ids(User('admin@foo.bar'))
         self.assertEqual(obs, exp)

diff --git a/qiita_pet/test/tornado_test_base.py b/qiita_pet/test/tornado_test_base.py
index 0faca9f..bda355f 100644
--- a/qiita_pet/test/tornado_test_base.py
+++ b/qiita_pet/test/tornado_test_base.py
@@ -10,6 +10,7 @@ from qiita_pet.webserver import Application
 from qiita_pet.handlers.base_handlers import BaseHandler
 from qiita_db.sql_connection import SQLConnectionHandler
 from qiita_db.environment_manager import drop_and_rebuild_tst_database
+from qiita_db.user import User

 class TestHandlerBase(AsyncHTTPTestCase):
@@ -18,7 +19,7 @@ class TestHandlerBase(AsyncHTTPTestCase):
     app = Application()

     def get_app(self):
-        BaseHandler.get_current_user =<EMAIL_ADDRESS>+        BaseHandler.get_current_user = Mock(return_value=User("test@foo.bar"))
         return self.app

     def setUp(self):

Fuuuuu yup, it was Mock not being changed. Thanks for finding that.

Coverage decreased (-0.07%) to 78.42% when pulling 221b5f6782806ff365786e55cb32b95fbef88952 on squirrelo:return-user-object-current-user into 769046ae7d9c239cd37c42929b621c6a67d2de96 on biocore:master.

Ready for review

:+1: Seems like @josenavas and @wasade have already done a pass, could one of you do another one, comment back or merge? Thanks.

@squirrelo few comments. I haven't tested on my end. Will do once those comments are solved.
Thanks!

Coverage increased (+0.0%) to 78.49% when pulling 7cd54e41e350bfffb28090ffa1eb09c773a3ac20 on squirrelo:return-user-object-current-user into 769046ae7d9c239cd37c42929b621c6a67d2de96 on biocore:master.

This is good to go

@josenavas have you tested? Is this ready for merge?

Anyone? Bueller?

@squirrelo Few issues that I found so far:

The name of the user does not appear on the main page:

When doing any kind of processing, the page does not update: i.e. it is blocked on "queue" although the  processing is done (e.g. linking raw files, preprocessing them...). The meta-analysis processing, however, it does work.
If I try to process a preprocessed data, this error is raise:

Traceback (most recent call last):
  File "/Users/jose/.virtualenvs/qiita/lib/python2.7/site-packages/tornado/web.py", line 1141, in _when_complete
    callback()
  File "/Users/jose/.virtualenvs/qiita/lib/python2.7/site-packages/tornado/web.py", line 1162, in _execute_method
    self._when_complete(method(*self.path_args, **self.path_kwargs),
  File "/Users/jose/.virtualenvs/qiita/lib/python2.7/site-packages/tornado/web.py", line 2297, in wrapper
    return method(self, *args, **kwargs)
  File "/Users/jose/qiime_software/QiiTa/qiita_pet/handlers/processing_handlers.py", line 21, in post
    param_id, param_constructor)
  File "/Users/jose/qiime_software/QiiTa/qiita_ware/context.py", line 256, in _submit
    'messages': channel + ':messages'}
TypeError: unsupported operand type(s) for +: 'User' and 'str'

I'll reraise my initial concern here: is it actually safe to have the
current_user method return a custom object?
On Tue, Feb 3, 2015 at 12:41 PM, josenavas<EMAIL_ADDRESS>wrote:

@squirrelo https://github.com/squirrelo Few issues that I found so far:

The name of the user does not appear on the main page: [image:
screen shot 2015-02-03 at 11 30 06 am]
https://cloud.githubusercontent.com/assets/2501478/6027671/859980fe-ab98-11e4-83fe-b278334e8e83.png
When doing any kind of processing, the page does not update: i.e. it
is blocked on "queue" although the processing is done (e.g. linking raw
files, preprocessing them...). The meta-analysis processing, however, it
does work.
If I try to process a preprocessed data, this error is raise:

Traceback (most recent call last):
File "/Users/jose/.virtualenvs/qiita/lib/python2.7/site-packages/tornado/web.py", line 1141, in _when_complete
callback()
File "/Users/jose/.virtualenvs/qiita/lib/python2.7/site-packages/tornado/web.py", line 1162, in _execute_method
self._when_complete(method(*self.path_args, **self.path_kwargs),
File "/Users/jose/.virtualenvs/qiita/lib/python2.7/site-packages/tornado/web.py", line 2297, in wrapper
return method(self, *args, **kwargs)
File "/Users/jose/qiime_software/QiiTa/qiita_pet/handlers/processing_handlers.py", line 21, in post
param_id, param_constructor)
File "/Users/jose/qiime_software/QiiTa/qiita_ware/context.py", line 256, in _submit
'messages': channel + ':messages'}
TypeError: unsupported operand type(s) for +: 'User' and 'str'
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/qiita/pull/745#issuecomment-72719364.

It's safe as long as when you do 'if user:` it acts as true when the user is logged in and false when not, which this does.

Coverage decreased (-0.07%) to 78.48% when pulling d89a63cff371ece93698914423908331ecd0dd22 on squirrelo:return-user-object-current-user into c06f6cdfcd85b1a2c7505136425d46e999dd06cf on biocore:master.

This should be ready for final review now.

Coverage decreased (-0.07%) to 78.48% when pulling d89a63cff371ece93698914423908331ecd0dd22 on squirrelo:return-user-object-current-user into c06f6cdfcd85b1a2c7505136425d46e999dd06cf on biocore:master.

I've tested this locally and this work. @antgonza there has been more commits after your :+1: so I'm not sure if you agree with the current version of the code. You can merge it if you think the code is :+1:


PHP Warning using 7.3

Getting this nagging warning on ISLE for Islandora 8.  We're using PHP 7.3 and are getting this:
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/html/web/modules/contrib/islandora/src/EventSubscriber/LinkHeaderSubscriber.php on line 286

I think we discussed this before, but for reference. https://wiki.php.net/rfc/continue_on_switch_deprecation

It's eerily similar to another 7.3 warning I fixed recently.

Wait what will happen with 7.4 ;-)

Pretty sure this can be closed.


Exit command broken

oh lol, thought it was a Mac thingy being stupid

Nah I broke it last time but forgot to add it to issues haha


Zimperium MTD Connector

Fixes #

Zimperium Mobile Threat Defense connector, initial commit

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: zcarsco sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Airflow tasks to fetch GWAS Catalog curated datasets

Currently the GWAS Catalog datasets are updated via a shell script under /utils. However this is not the preferred way. Instead, files needs to be updated via the same Airflow DAG that prepares the new curation table.
Expectation from the update:

[ ] Get the same set of metadata as the shell script.
[ ] Get release version.
[ ] Write log to the manifest folder.
[ ] Fetch files then upon success, overwrite old files in bucket.

@DSuveges This python package performs much alike the same thing as a script - https://github.com/opentargets/gentroutils
You should be able to install it and run as follows
pip install gentroutils
gentroutils -vvv  update-gwas-curation-metadata

The one thing required it the service account to be in scope.


update of the model to fit the tensorflow's v1.0 upgrade

I used the tensorflow/tensorflow/tools/compatibility/tf_upgrade.py to update the api of the model.

Thanks


docs: Broken push link in v2 docs

Type: docs
Ionic Version: 2.x
Platform: all
When searching "push" with the bar on top in the v2 docs (http://ionicframework.com/docs/v2/) and selecting "Push" under "Native" there is a broken link where its href is http://ionicframework.com/docs/v2/native/Push/. The fix is easy, just use lowercase, e.g. edit "Push" to "push": http://ionicframework.com/docs/v2/native/push/

Hello, thanks for opening an issue with us! As this is an issue with the docs and not the framework i will be moving this issue to the ionic-site repo. Thanks for using Ionic!

This issue was moved to driftyco/ionic-cli#1072


Update Dockerfile

issue #358
We are using old version of code server which no longer existing , I changed it to new version @adeyosemanputra please review this ,
I will update this PR as there are more error in Dockerfile

@adeyosemanputra how many projects are under Risk Assessment framework this year in GSOC


Register colcon-clean extension points

Registering the extension points in this way will make them visible when running colcon extesion-points.

@cottsay Could you check if something like this is needed for colcon-cache as well? I'm unsure if I've missed registering a extension point there as well.

Could you check if something like this is needed for colcon-cache?

The biggest value-add to registering like this is to improve debugging and to better advertise the extension point so that it can be discovered. IMO, the sub-verb extension points should maybe not be advertised like this, but I'm siding with the precedent laid forth by colcon-mixin. If it's an extension point that you can feasibly see someone creating an extension for in a separate package, then I think there's value in registering it like this.
Looks like colcon-cache defines a subverb extension point as well as 2 others that look like great candidates for registering.


What about upgrading rails to 4.x ?

Is there any good reason, why not to upgrade to the latest rails version as soon as we have an improved test suite?

done, thanks @tyranja!


chore: upgrade pins for ape 0.4.0

What I did
upgrade pins for ape 0.4.0
How I did it
modify setup.py
How to verify it
pytest or github checks
Checklist

[ ] Passes all linting checks (pre-commit and CI jobs)
[ ] New test cases have been added and are passing
[ ] Documentation has been updated
[ ] PR title follows Conventional Commit standard (will be automatically included in the changelog)

blocked by https://github.com/Jam516/ape-arbitrum/pull/2

Removed the Arbitrum dependency and refactored for the Ape 0.4.0 breaking changes in https://github.com/ApeWorX/ape-etherscan/pull/37


Git dependencies fix

Library and branch must be stored after the first installation as well otherwise it'll be updated when another library depends on git version without specified commit-ish.
Example:

Clean lib folder or newrepo
Top level git dependency with specific commit hash
Another top level git dependency depending on the previous one but without specified commit-ish
First one is cloned properly
When second one's dependencies are being cloned it should not do anything with the existing git repo of the first one (old behavior was that it updated it which shouldn't happen as specified version/branch must always precede any "don't care" version/branch)

Thanks!


improve

adding a fallback value for FCM_DEVICE_MODEL
improve get_device_model, now use django apps for getting device model

before:
FCM_DEVICE_MODEL = 'your_app.models.MyDevice'

now:
FCM_DEVICE_MODEL = 'your_app.MyDevice'

resolve this issue #13

@Chitrank-Dixit what do you think about this improvement?


Proxy does not forward the traffic internally to the container

Suppose we have this network:
# lxc network show lxdbr0
config:
  ipv4.address: <IP_ADDRESS>/24
  ipv4.nat: "true"

And container is using this config:
devices:
  eth0:
    ipv4.address: <IP_ADDRESS>
    nictype: bridged
    parent: lxdbr0
    type: nic
  proxy-http:
    connect: tcp:<IP_ADDRESS>:80
    listen: tcp:PUBLIC-IP:80
    nat: "true"
    type: proxy

Let's say that PUBLIC-IP IP address is mapped to "example.com" in DNS.
When we enter the container and try to connect to "example.com" (to PUBLIC-IP), it times out:
# curl -v example.com
* Rebuilt URL to: PUBLIC-IP/
*   Trying PUBLIC-IP...
* TCP_NODELAY set

A workaround is to add "<IP_ADDRESS> example.com" mapping in the hosts file in the container, but it would be great if iptables rules were passing such traffic transparently (also between the containers).

@tomponline should be an easy one

@stgraber will take a look at this now.

@stgraber so after some investigation I've come up with the following plan based on our discussions yesterday:
By default for NAT proxy devices we will add a SNAT hairpin rule in the following format:
sudo iptables -t nat -A POSTROUTING -s <CT IP> -d <CT IP> -p <Proxy Proto> --dport <Proxy connect port> -j MASQUERADE

This will then allow hair pin requests to work (but only from the instance that has the proxy device to the external IP that the proxy device is listenng on). The source address of the requests will appear to be from the host's bridge IP (like when using non-nat proxy).
As mentioned yesterday I've found that the br_netfilter module will break this functionality. And we load the br_netfilter module when using security.ipv6_filtering on bridged nic devices. It may also be loaded for other reasons by the host.
Specifically it is these sysctls that break things:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

However I've found a post that lead me to a solution (https://lists.linuxfoundation.org/pipermail/bridge/2014-June/009231.html), it mentioned a bridge hairpin mode, which you can enable on a specific veth interface connecting to a bridge.
Enabling this setting allows the hairpin NAT to work even with net.bridge.bridge-nf-call-iptables = 1:
sudo bridge link set dev veth5a97a423 hairpin on

Allowing other instances to access the proxy's external IP
Interestingly, with net.bridge.bridge-nf-call-iptables = 1 enabled, the other instances on the bridge are able to access the proxy service via the external IP without any modifications to our current iptables rules. I suspect this is because the return packets are going back via the bridge and so gives iptables a chance to use connection tracking to convert the return packet's source address to the proxy device's external IP.
This is nice because it also maintains the source instance's source address on the bridge when it arrives at the proxy connect target.
So this may be a better solution that the nat=force mode we discussed (that would add a similar SNAT rule as above, except applying to all of the bridge subnet, which would have the potentially undesirable affect of also SNATting the intra-bridge traffic to the proxy instance's internal IP/port).
We already load the br_netfilter module when using security.ipv6_filtering, so we could also load it and enable the sysctl when using the proxy in NAT mode as well as enabling hairpin mode on the instance's bridge port too.

Ok, so you'd only do:

Set hairpin on veth device when proxy is enabled
Load br_netfilter and enable bridge-nf-call-iptables

Would need the same for IPv6 too. I'd probably make this conditional on br_netfilter being available though as some users have it blacklisted due to negative impact on their own firewalling rules.

@stgraber yep I tested this with IPv6 already and the same behaviour is seen with that too.
So as part of the proxy device start step, the process would be:

Check if net.bridge.bridge-nf-call-iptables (or ipv6 equivalent) exists (indicates if the module is loaded), if it does and but is disabled then fail to setup the proxy device? Or can we enable it if it exists as long as we dont load the module?
Add SNAT hairpin rule for the proxy instance->external IP.
As part of the existing check for the connect IP being part of the instance's bridgednic get the instance's volatile key for the veth's host_name and then enable hairpin mode on that using the bridge command. If a volatile key cannot be found for the host_name (meaning the nic hasn't started yet), then we fail to start the proxy device with an error about the instance nic not being started (this means proxy devices need to be defined after the nic they use).

@stgraber I'll clarify my previous question:
We can have a situation where the br_netfilter module is either not loaded or net.bridge.bridge-nf-call-iptables is disabled.
In these situations, the traffic from other instances to the proxy device's listen IP will not be work (we reply on net.bridge.bridge-nf-call-iptables=1 in order for this to work).
We can do several things:

If module isn't loaded, we can skip this step and maybe just log a warning that other instances won't be able to access proxy device. So at least the proxy device starts as it does now.
If module is loaded, but net.bridge.bridge-nf-call-iptables is disabled, we can do the same thing as 1. or we can enable net.bridge.bridge-nf-call-iptables.

If net.bridge.bridge-nf-call-iptables is present and enabled (based on either existing situation or number 2. above), then we can proceed to enable hairpin mode on the instance's bridge port, and if that fails we can either:

Log a warning and allow the proxy to start
Fail with an error

Ok, so trying to clarify:

I don't think we should ever load br_netfilter (and should remove us doing it in nicBridged)
If it's not loaded or isn't set, log a warning and move on

Since just loading br_netfilter sets the arptables/ip6tables/iptables bits to 1, it's not really acceptable for us to load this as it can instantly cut a lot of traffic on the system, breaking containers or other bridged networks.

@stgraber ok thanks for clarifying, I'll make sure we dont load the module or enable it if its loaded but not enabled, and just log a warning.
For the bridged nic filtering where we do currently try and load it, I'll update it to fail the nic start process, rather than log a warning, as in that case it is relying on that feature to enable a security mechanism.

I still see this issue with LXD 4.19. Was it really fixed?


TypeScript 3.0 docs "What's new" -- Rest parameters with tuple types

Hey TypeScript people! This may just be a documentation issue, but the release notes for TypeScript 3.0 state the following:
The following two declarations are equivalent:
declare function foo(...args: [number, string, boolean]): void;
declare function foo(args_0: number, args_1: string, args_2: boolean): void;

However, this does not seem to be true. Using the TypeScript PlayGround, the following TypeScript:
function foo(...args: [number, string, boolean]): void {
    console.log(args[0]);
}

foo(4, "4", true);

Actually compiles to:
function foo() {
    var args = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
    }
    console.log(args[0]);
}
foo(4, "4", true);

So, I think you may need to update your docs! Or am I just missing something obvious here?! Or does your PlayGround need an upgrade?

We mean equivalent type-system-wise - the emit for rest parameters is, as always, specific to rest parameters.

There's no emit for declare function.

I'm guessing "emit" must be compiler terminology. I'm just a user of the language, and know nothing about its implementation. All I know is that when I use the fancy new syntax for rest parameters with tuple types, there exists no variables named args_0, args_1, or args_2 within the body of my function. Do you see how somebody could get that impression from reading the documentation as written? Therefore, I would suggest that the documentation be clarified to indicated that within the body of such a function, the arguments in question would actually be args[0], args[1], and args[2].

The key point is:

The following two declarations are equivalent

A declaration is not an implementation. For the caller of your function, the function signatures are effectively the same, because you call them with a number, a string and a boolean.

@AlCalzone I agree with you. Closing out the issue.


Add explicit "cli" aliases and move "latest" to "dind" in 22.06+

cc @thaJeztah

Diff:
--- /dev/fd/63	2022-06-16 14:12:16.722850613 -0700
+++ /dev/fd/62	2022-06-16 14:12:16.722850613 -0700
@@ -1,24 +1,24 @@
 Maintainers: Tianon Gravi<EMAIL_ADDRESS>(@tianon), Joseph Ferguson<EMAIL_ADDRESS>(@yosifkit)
 GitRepo: https://github.com/docker-library/docker.git

-Tags: 22.06.0-beta.0, 22.06-rc, rc, 22.06.0-beta.0-alpine3.16
+Tags: 22.06.0-beta.0-cli, 22.06-rc-cli, rc-cli, 22.06.0-beta.0-cli-alpine3.16
 Architectures: amd64, arm64v8
-GitCommit: 4c1b73e7046422ca1339b76935c2e2f4251b9c20
-Directory: 22.06-rc
+GitCommit: b6963b10e947cc8f756d8910833dca36e8ed5804
+Directory: 22.06-rc/cli

-Tags: 22.06.0-beta.0-dind, 22.06-rc-dind, rc-dind, 22.06.0-beta.0-dind-alpine3.16
+Tags: 22.06.0-beta.0-dind, 22.06-rc-dind, rc-dind, 22.06.0-beta.0-dind-alpine3.16, 22.06.0-beta.0, 22.06-rc, rc, 22.06.0-beta.0-alpine3.16
 Architectures: amd64, arm64v8
-GitCommit: 4c1b73e7046422ca1339b76935c2e2f4251b9c20
+GitCommit: b6963b10e947cc8f756d8910833dca36e8ed5804
 Directory: 22.06-rc/dind

 Tags: 22.06.0-beta.0-dind-rootless, 22.06-rc-dind-rootless, rc-dind-rootless
 Architectures: amd64, arm64v8
-GitCommit: 4c1b73e7046422ca1339b76935c2e2f4251b9c20
+GitCommit: b4ebf24fc840e7f223c9e7ab361a02fa2ffd2e3e
 Directory: 22.06-rc/dind-rootless

 Tags: 22.06.0-beta.0-git, 22.06-rc-git, rc-git
 Architectures: amd64, arm64v8
-GitCommit: 4c1b73e7046422ca1339b76935c2e2f4251b9c20
+GitCommit: b6963b10e947cc8f756d8910833dca36e8ed5804
 Directory: 22.06-rc/git

 Tags: 22.06.0-beta.0-windowsservercore-ltsc2022, 22.06-rc-windowsservercore-ltsc2022, rc-windowsservercore-ltsc2022
@@ -35,24 +35,24 @@
 Directory: 22.06-rc/windows/windowsservercore-1809
 Constraints: windowsservercore-1809

-Tags: 20.10.17, 20.10, 20, latest, 20.10.17-alpine3.16
+Tags: 20.10.17-cli, 20.10-cli, 20-cli, cli, 20.10.17-cli-alpine3.16, 20.10.17, 20.10, 20, latest, 20.10.17-alpine3.16
 Architectures: amd64, arm64v8
-GitCommit: 034e1d03eaf2c35ce4a21c4a4b621e2d2174b62e
-Directory: 20.10
+GitCommit: b6963b10e947cc8f756d8910833dca36e8ed5804
+Directory: 20.10/cli

 Tags: 20.10.17-dind, 20.10-dind, 20-dind, dind, 20.10.17-dind-alpine3.16
 Architectures: amd64, arm64v8
-GitCommit: 0efba9e3cd4537de89ba54de2ad8acc5e3b1759f
+GitCommit: b6963b10e947cc8f756d8910833dca36e8ed5804
 Directory: 20.10/dind

 Tags: 20.10.17-dind-rootless, 20.10-dind-rootless, 20-dind-rootless, dind-rootless
 Architectures: amd64, arm64v8
-GitCommit: 034e1d03eaf2c35ce4a21c4a4b621e2d2174b62e
+GitCommit: b4ebf24fc840e7f223c9e7ab361a02fa2ffd2e3e
 Directory: 20.10/dind-rootless

 Tags: 20.10.17-git, 20.10-git, 20-git, git
 Architectures: amd64, arm64v8
-GitCommit: 387e351394bfad74bceebf8303c6c8e39c3d4ed4
+GitCommit: b6963b10e947cc8f756d8910833dca36e8ed5804
 Directory: 20.10/git

 Tags: 20.10.17-windowsservercore-ltsc2022, 20.10-windowsservercore-ltsc2022, 20-windowsservercore-ltsc2022, windowsservercore-ltsc2022

This is probably more interesting if/when we get that cli/engine tarball split so that we can actually have a meaningfully smaller cli variant :thinking:

This is probably more interesting if/when we get that cli/engine tarball split so that we can actually have a meaningfully smaller cli variant

Would it be an option to already remove the non-cli binaries (containerd, dockerd, runs) as part of the Dockerfile?

I think if we call it as "cli", maybe we should only include cli binary, right?

@tao12345666333 indeed! :sweat_smile: :heart:
That was always the intent of this variant, as hinted by this (added back in https://github.com/docker-library/docker/pull/64; five years ago :weary: :older_adult:):
https://github.com/docker-library/docker/blob/038fb86c696159554fb1e7f9f43a7d72de872748/docker-entrypoint.sh#L46-L59
However, Docker only publishing the single docker.tgz that includes everything has always made that a little bit annoying to accomplish cleanly.  However, I've got a new change I'll push to this branch shortly that finally does the redownload necessary to accomplish that (and hopefully it'll be split properly in some future version -- work is currently being done around that in https://github.com/docker/docker-ce-packaging/pull/665). :eyes:

The justification for switching the default tag to dind is that it's both what most users actually want/use and it still contains the CLI binary so shouldn't be too bad of a breaking change for anyone (and for anyone that it is, it's only in 22.06+ and there's a new explicit -cli tag that more clearly communicates intent).
The justification for removing dockerd in the CLI tags is a little less strong, but is definitely in line with the intention of them all along (as evidenced by the warning they produce if you try to run dockerd in them).  If folks are running the daemon in the CLI tags today, they're likely doing some backflips to accomplish that which they could (and should) stop doing if they switch to the explicit dind tags instead. :+1:


Great feedback from user on app

eSteem has potential to become the go to app on iOS. Hopefully so very soon. Here are couple of little annoyances what in my humble opinion could be improved upon:

Text is sometimes way too small and having an option to increase it would be amazing

Mentioned it previously, but would like to emphasise it again - pin code for every time I open the app is very annoying.

Drop down menus such as Trending, Hot etc are too hard to hit and usually takes several tries to get where you want.

Under the first tab for Feed images on off toggle does not remember the choice and next time I open the app it’s back to default images on.

Sometimes trying to load new feed items doesn’t work. I can see newer posts in other apps and interfaces.

Search functionality does not seem to work at all as intended. Unable to find users or even posts I am actually searching for.

And couple of things for the wish list:

Under notifications it shows the vote percentage however it would be amazing to see the value as well.

Vote strength slider is almost perfect, I like the extra decimals in value display however I’d like to see quick select options as well for instance 0%, 25%, 50, 75, 100

Wish app would be a little bit more responsive and faster overall

couple of them already fixed for the other ones created new issue.
Thank you


Docker node shutdown takes very long with hundreds of containers

@frodenas some time ago we found an alternative solution for the unmount issue if you remember (https://github.com/cf-platform-eng/docker-boshrelease/commit/686b875bf933ab5200d6c6ab66c692f7c0662093).
Although it works, I believe we introduced another problem: Practically we now serialized the shutdown. I tried adding a & to the end of line https://github.com/cf-platform-eng/docker-boshrelease/blame/master/jobs/docker/templates/bin/docker_ctl#L97 to run the stops in parallel and it works/shuts down fast.
The question is, will the mount issue now pop up again?
And what was again the background for it and can we in the meanwhile (with Docker 1.8.2) rely on Docker to perform a cleaner shutdown (as compared to back then with Docker 1.6.0 I believe)?

Hmpf, just checked, that way we see the unmount issue again:
Error 450001: Action Failed get_task: Task 69e47700-95ad-441f-580b-204647ae259a result: Unmounting persistent disk: Running command: 'umount /dev/vdb1', stdout: '', stderr: 'umount: /var/vcap/store: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
': exit status 1

So we have to accept the disadvantage of very long running shutdowns?
Why isn't the Docker daemon killing the all processes correctly respectively by is the device still busy?

Because the docker broker is not stopping them, it's just killing them. IIRC I did some tests using the stop command, but I don't remember why I finally used the kill command instead.

Also with & I see the unmount issue. The job stops fast, though. ;-)
I am not sure what causes the unmount issue:

When I check the processes I see no docker left-overs.
When I call lsof I see no handles on the store directory
Not sure what to do now. It's a pity that node shutdown takes so long. :-/


Fix/#181 cypress tests

this should finally close #181

Tests run fine and sorting works as well. But sadly the flowbite-react bug with the not closing dropdown menu from clicking outside after a selection is not fixed. But as it is not in scope for this issue it could be merged.


GF - 3 : Upgrade to Protostar 0.4.2 Context: coupled interact with some parts of the codebase

I am applying to this issue via OnlyDust platform.

I am applying to this issue via OnlyDust platform.

I am applying to this issue via OnlyDust platform.

I am applying to this issue via OnlyDust platform.

I am applying to this issue via OnlyDust platform.

I am applying to this issue via OnlyDust platform.

I am applying to this issue via OnlyDust platform.

I am applying to this issue via OnlyDust platform.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
dddd
How I plan on tackling this issue
dddd

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
dddd
How I plan on tackling this issue
ddddd

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
sss
How I plan on tackling this issue
ssss

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
ddddd
How I plan on tackling this issue
ddddd

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
test
How I plan on tackling this issue
test

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
tes
How I plan on tackling this issue
tte


what are the negative samples if removing the hard negative? (train with supervised verison)

Hi, I follow your supervised example, but remove the hard negative from the dataset,
In this may, where does the negative sample come from? Does it take the other 'sent0's or 'sent1's in the same batch as the negative sample?
Would you give me some instructions? thanks a lot!

Hi, I follow your supervised example, but remove the hard negative from the dataset, In this may, where does the negative sample come from? Does it take the other 'sent0's or 'sent1's in the same batch as the negative sample? Would you give me some instructions? thanks a lot!

I think the the negative samples are from other examples  in the batch , ie In-batch-negative

Thanks for @wuxiangli91's reply!
Do you mean that if I have a batch, size = 64,  it will have 63 negative samples for each input sentence? or do you thank it will have 126 negative samples? Since there are sentence pairs in the batch.

Hi, in our current implementation, there will be 63 negatives.


[BUG] System.UnauthorizedAccessException: Access to the path 'C:\Users\Admin\AppData\Local\Bloxstrap\State.json' is denied.

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[X] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v2.8.1
What problem did you encounter?
I just encountered this now
Bloxstrap Log
2024-11-09T06:48:31Z [App::OnStartup] Starting Bloxstrap v2.8.1
2024-11-09T06:48:31Z [App::OnStartup] Compiled Wednesday, 30 October 2024 at 6:35:23 AM from commit 2be2f4d0d275e60eabf2f63ecbbe4e38b2aa0773 (tag/v2.8.1)
2024-11-09T06:48:31Z [App::OnStartup] Loaded from %UserProfile%\AppData\Local\Bloxstrap\Bloxstrap.exe
2024-11-09T06:48:31Z [App::OnStartup] Temp path is %UserProfile%\AppData\Local\Temp\Bloxstrap
2024-11-09T06:48:31Z [App::OnStartup] WindowsStartMenu path is %UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
2024-11-09T06:48:31Z [Logger::Initialize] Initializing at %UserProfile%\AppData\Local\Bloxstrap\Logs\Bloxstrap_20241109T064831Z.log
2024-11-09T06:48:31Z [Logger::Initialize] Finished initializing!
2024-11-09T06:48:31Z [JsonManager<Settings>::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\Settings.json...
2024-11-09T06:48:31Z [JsonManager<Settings>::Load] Loaded successfully!
2024-11-09T06:48:31Z [JsonManager<State>::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\State.json...
2024-11-09T06:48:31Z [JsonManager<State>::Load] Loaded successfully!
2024-11-09T06:48:31Z [FastFlagManager::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\Modifications\ClientSettings\ClientAppSettings.json...
2024-11-09T06:48:31Z [FastFlagManager::Load] Loaded successfully!
2024-11-09T06:48:32Z [LaunchHandler::LaunchRoblox] Initializing bootstrapper
2024-11-09T06:48:32Z [LaunchHandler::LaunchRoblox] Initializing bootstrapper dialog
2024-11-09T06:48:32Z [Bootstrapper::Run] Running bootstrapper
2024-11-09T06:48:32Z [Bootstrapper::SetStatus] Connecting to Roblox...
2024-11-09T06:48:32Z [Deployment::TestConnection<https://setup.rbxcdn.com>] Connecting...
2024-11-09T06:48:32Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/versionStudio
2024-11-09T06:48:33Z [Deployment::InitializeConnectivity] Testing connectivity...
2024-11-09T06:48:34Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/versionStudio
2024-11-09T06:48:34Z [Deployment::InitializeConnectivity] Got https://setup.rbxcdn.com as the optimal base URL
2024-11-09T06:48:34Z [Bootstrapper::Run] Connectivity check finished
2024-11-09T06:48:34Z [Bootstrapper::CheckForUpdates] Checking for updates...
2024-11-09T06:48:34Z [HttpClientLoggingHandler::ProcessRequest] GET https://api.github.com/repos/bloxstraplabs/bloxstrap/releases/latest
2024-11-09T06:48:34Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://api.github.com/repos/bloxstraplabs/bloxstrap/releases/latest
2024-11-09T06:48:34Z [Bootstrapper::CheckForUpdates] No updates found
2024-11-09T06:48:34Z [Bootstrapper::GetLatestVersionInfo] Got channel as production
2024-11-09T06:48:34Z [Deployment::GetInfo] Getting deploy info for channel production
2024-11-09T06:48:34Z [HttpClientLoggingHandler::ProcessRequest] GET https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer
2024-11-09T06:48:34Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer
2024-11-09T06:48:34Z [RegistryKeyEx::SetValueSafe] Writing '' to HKEY_CURRENT_USER\SOFTWARE\ROBLOX Corporation\Environments\RobloxPlayer\Channel\www.roblox.com
2024-11-09T06:48:34Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/version-b7eebc919e96477a-rbxPkgManifest.txt
2024-11-09T06:48:34Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/version-b7eebc919e96477a-rbxPkgManifest.txt
2024-11-09T06:48:34Z [Bootstrapper::SetStatus] Applying Roblox modifications...
2024-11-09T06:48:34Z [Bootstrapper::ApplyModifications] Checking file mods...
2024-11-09T06:48:34Z [Bootstrapper::ApplyModifications] ClientSettings\ClientAppSettings.json already exists in the version folder, and is a match
2024-11-09T06:48:34Z [Bootstrapper::ApplyModifications] content\sounds\ouch.ogg already exists in the version folder, and is a match
2024-11-09T06:48:34Z [Bootstrapper::ApplyModifications] content\textures\Cursors\KeyboardMouse\ArrowCursor.png already exists in the version folder, and is a match
2024-11-09T06:48:34Z [Bootstrapper::ApplyModifications] content\textures\Cursors\KeyboardMouse\ArrowFarCursor.png already exists in the version folder, and is a match
2024-11-09T06:48:34Z [JsonManager<State>::Save] Saving to %UserProfile%\AppData\Local\Bloxstrap\State.json...
2024-11-09T06:48:34Z [LaunchHandler::LaunchRoblox] Bootstrapper task has finished
2024-11-09T06:48:34Z [LaunchHandler::LaunchRoblox] An exception occurred when running the bootstrapper
2024-11-09T06:48:34Z [App::FinalizeExceptionHandling] (0x80070005) System.UnauthorizedAccessException: Access to the path '%UserProfile%\AppData\Local\Bloxstrap\State.json' is denied.
   at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
   at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
   at System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream fileStream, String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize)
   at System.IO.StreamWriter.ValidateArgsAndOpenPath(String path, Boolean append, Encoding encoding, Int32 bufferSize)
   at System.IO.File.WriteAllText(String path, String contents)
   at Bloxstrap.JsonManager`1.Save()
   at Bloxstrap.Bootstrapper.ApplyModifications()
   at Bloxstrap.Bootstrapper.Run()
   at Bloxstrap.Bootstrapper.Run()
2024-11-09T06:48:34Z [HttpClientLoggingHandler::ProcessRequest] POST https://bloxstraplabs.com/metrics/post-exception

хах тоже самое и у меня помогите плз


Grid creator_web design #338

Added the required code to fix the issue Grid creator_web design #338 and added the below files for your quick access.
frontend/modules/grids/grid_338_Sandeep_varma_sangaraju.html
frontend/modules/grids/images_and_icons/338_1.png
frontend/modules/grids/images_and_icons/338_2.jpeg
frontend/modules/grids/images_and_icons/338_3.png
frontend/modules/grids/images_and_icons/338_4.png

Heartfelt Thanks for Your Contribution to Our Open Source Project!
            Dear @sangaraju-01,

            I trust this message finds you in good health and high spirits. I am reaching out with a heart full of gratitude for your recent contribution to our open source project. Your dedication has not only elevated the functionality of our project but has also exemplified the collaborative spirit that lies at the core of thriving open source communities.

            A heartfelt congratulations are in order for your exceptional work! Your commitment and expertise have played a pivotal role in the success of our project, and we consider ourselves truly fortunate to count you among our community members.

            I must extend my sincere apologies for the delay in responding to your pull request. Your patience and understanding during this time are immensely appreciated. As our project continues to grow, we acknowledge the imperative need to enhance the quality and response time for contributions. To address this, we've kickstarted a call for maintainers and reviewers who can help us uphold the high standards of our project and ensure swift responses to pull requests.

            Your involvement and insights would be invaluable in this initiative. If you, or someone you know, is interested in taking on a more active role in the project, please don't hesitate to reach out. We firmly believe that with a robust team of maintainers and reviewers, we can elevate both the quality of the project and the speed of our responses.

            On an exciting note, I am thrilled to share that we have activated the sponsorship button for our project. This development allows supporters like yourself to contribute to the sustainability and growth of the project. Your ongoing support, whether through code contributions or sponsorship, is genuinely appreciated.

            Once again, congratulations on your outstanding contribution, and thank you for being an indispensable part of our open source community. We eagerly anticipate your continued collaboration and shared success.

            Best regards,

            Ntem Kenyor K.
            Lead
            Kwickerhub


Reviews for post-train

Could you please provide another method to download the yelp dataset, as the link provided in the paper https://www.yelp.com/dataset/challenge has become invalid.😂  Thank you!

https://www.yelp.com/dataset/download
On Thu, Mar 18, 2021 at 6:58 AM logout @.***> wrote:

Could you please provide another method to download the yelp dataset, as
the link provided in the paper https://www.yelp.com/dataset/challenge has
become invalid.😂 Thank you!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/howardhsu/BERT-for-RRC-ABSA/issues/19, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACRK37YUR5P6DOB7D3IS5P3TEIBJFANCNFSM4ZMVTK4A
.

--
Homepage: https://howardhsu.github.io/
Linkedin: https://www.linkedin.com/in/hu-xu-9852403b/
Google Scholar: https://scholar.google.com/citations?user=SaH2yWMAAAAJ
Twitter: https://twitter.com/Hu_Hsu
Email: @.***