Fixed table header, with scrollable body

Hello, how can I fix the table header so I can scroll the body inside of a scroll area. Currently, this is what I have:
<ScrollArea className="m-4 h-[225px] w-[500px] relative rounded-md">

               <TableHeader className="bg-gray-500 fixed">
                   <TableRow className="bg-yellow-500 w-[500px]">
                       <TableHead>Name</TableHead>
                       <TableHead className="text-center">Actual/Expected</TableHead>
                       <TableHead>Slant Range</TableHead>
                   </TableRow>
               </TableHeader>
               <TableBody className="mt-10">
                   {Object.keys(frameRates).map((chipId) => (
                       <TableRow>
                           <TableCell>{chipId}</TableCell>
                           <TableCell className="text-center">{frameRates[chipId]}/6 fps</TableCell>
                           <TableCell>2000m</TableCell>
                       </TableRow>
                   ))}
               </TableBody>

       </ScrollArea>

which renders this:

I want the yellow area to be fixed at the top of the scroll area and I want the body to be scrollable. e.g. if I added another element, it would overflow so I can scroll down to see the newly added element while also being able to see that header since it will be fixed. I am open to suggestions as well! Thanks in advance.

I've tried a few ways to solve this but no progress so far.
Wrapping the TableBody in a div with a height and overflow-y scroll stops the header from scrolling but the header info get's shifted to the right and no longer lines up with the columns. I suspect there's some assumptions that have been made to makes this harder than it seems.
Would be good to at least get some updates if there's an easy fix or this requires a major change.

Hey guys,
I had the same struggle and I spent a couple hours yelling at my self. You can use the sticky property on the <TableHeader> element. But for this to work, you have to go into the table.tsx component in your @/components/ui folder and look for the definition of the
 element. It's already wrapped in a div, causing the sticky effect not working. I just removed it, and it works!
Remember, sticky property goes with top: 0px; in order to work, and the parent container has to be relative as well.
Good luck with that!

Tried but the borders seem to still scroll. Any fixes for that?

Our 2 developers tried but no luck. If someone already fixed this issue please respond. Thank you.

I have made a partial workaround:
On the instantiated table.tsx file I have created an Interface called ExtendedTableProps, like so:
interface ExtendedTableProps extends React.HTMLAttributes<HTMLTableElement> {
  divClassname?: string;
}

this way, I can pass a divClassname override classes when I want to make the table scrollable:
const Table = React.forwardRef<HTMLTableElement, ExtendedTableProps>(
  ({ className, divClassname, ...props }, ref) => (

  )
);

I can then make the height fixed without it behind mandatory:

 {....table code}

And then, finally pass the sticky props to the <TableHeader> component.
<TableHeader className="sticky w-full top-0 h-10 border-b-2 border-border rounded-t-md  bg-stone-700">
....
</TableHeader>

The issue with this implementation is that the table loses its rounded corners when you scroll it down. I'm still investivating the reason why, the functionality is mainly here.

Same issue, different solution to @tverderesi. I just removed the wrapping div from Table. Not sure why it is wrapped by div

The reason thead is still scrolled even though you add sticky, top-0 into thead, because there is hiddent wrapping div as a parent of table.

Hey guys,
I had the same struggle and I spent a couple hours yelling at my self. You can use the sticky property on the <TableHeader> element. But for this to work, you have to go into the table.tsx component in your @/components/ui folder and look for the definition of the
 element. It's already wrapped in a div, causing the sticky effect not working. I just removed it, and it works!
Remember, sticky property goes with top: 0px; in order to work, and the parent container has to be relative as well.
Good luck with that!

@mununki This already explained here

Same issue, different solution to @tverderesi. I just removed the wrapping div from Table. Not sure why it is wrapped by div

Could you post the code changes you used to get it working?

Hey guys,
I had the same struggle and I spent a couple hours yelling at my self. You can use the sticky property on the <TableHeader> element. But for this to work, you have to go into the table.tsx component in your @/components/ui folder and look for the definition of the
 element. It's already wrapped in a div, causing the sticky effect not working. I just removed it, and it works!
Remember, sticky property goes with top: 0px; in order to work, and the parent container has to be relative as well.
Good luck with that!

Tried but the borders seem to still scroll. Any fixes for that? @BLR19

Same problem. If anyone has a solution, I'm interested !

I have identified a solution:

Start by removing the div code from the table.

Place a div above the table component, setting its height, and add the 'overflow-auto' class to it.

In the TableHeader component, apply a 'sticky' class with a 'top-0' property.

By following these steps, you can resolve the issue of the fixed table header

sticky property never works when one of the parents has overflow css property set, whatever value it is (auto, scroll... whatever). So the only solution is to remove that div the other guys has posted above since it has overflow-auto tailwind class.

@brijeshkumar16's answer works great.
Similarly you can also use the ScrollArea component if you want to be consistent with shadcn.

Delete the div in Table

const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement>
>(({ className, ...props }, ref) => (

));
Table.displayName = "Table";

Add sticky top-0 bg-secondary to TableHeader
const TableHeader = React.forwardRef<
  HTMLTableSectionElement,
  React.HTMLAttributes<HTMLTableSectionElement>
>(({ className, ...props }, ref) => (

));
TableHeader.displayName = "TableHeader";

Wrap your Table with ScrollArea and set a height
<ScrollArea className="h-[200px] rounded-md border">

</ScrollArea>

Hey guys,
I had the same struggle and I spent a couple hours yelling at my self. You can use the sticky property on the <TableHeader> element. But for this to work, you have to go into the table.tsx component in your @/components/ui folder and look for the definition of the
 element. It's already wrapped in a div, causing the sticky effect not working. I just removed it, and it works!
Remember, sticky property goes with top: 0px; in order to work, and the parent container has to be relative as well.
Good luck with that!

This worked for me, thanks for the suggestion!

@brijeshkumar16's answer works great.
Similarly you can also use the ScrollArea component if you want to be consistent with shadcn.

Delete the div in Table

const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement>
>(({ className, ...props }, ref) => (

));
Table.displayName = "Table";

Add sticky top-0 bg-secondary to TableHeader
const TableHeader = React.forwardRef<
  HTMLTableSectionElement,
  React.HTMLAttributes<HTMLTableSectionElement>
>(({ className, ...props }, ref) => (

));
TableHeader.displayName = "TableHeader";

Wrap your Table with ScrollArea and set a height
<ScrollArea className="h-[200px] rounded-md border">

</ScrollArea>

This is great solution, thanks

I have identified a solution:

Start by removing the div code from the table.

Place a div above the table component, setting its height, and relative, and add the 'overflow-auto' class to it.
In the TableHeader component, apply a 'sticky' class with a 'top-0' property.

By following these steps, you can resolve the issue of the fixed table header

Thank you very much do you also know by any means how i can remove the scrolling from the header part cause this looks really ugly... I struggled with that for hours now and i havent found a solution

You can remove the overflow-auto classname from the wrapper of the table  from the table component inside the shadcn provided ui component.

@lmurdock12 answer works great only in big viewports, its not fully responsive. @brijeshkumar16 worked perfectly in all screen sizes

is there any way to achieve this without setting a static height ?

@lmurdock12 answer works great only in big viewports, its not fully responsive. @brijeshkumar16 worked perfectly in all screen sizes

Try this.
import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area'

<ScrollArea>
  // code here
  <TableRow key={headerGroup.id} className="sticky top-0 bg-secondary hover:bg-secondary">
  // code here
  <ScrollBar orientation="horizontal" />
</ScrollArea>

is there any way to achieve this without setting a static height ?

I've managed it using css grid on the parent and max content and a max height set on the scroll area

   <ScrollArea
                className="max-h-[200px]"
              >

...

     </ScrollArea>

This trick using css grid seems to work regularly for me with ScrollArea

You can remove the overflow-auto classname from the wrapper of the table from the table component inside the shadcn provided ui component and provide sticky top-0 classed to the tableHeader.

i already have this but i still have the problem that the scroller is within the thead and i cant apply block overflow-auto and a fixed height on the TableBody since then the layout of the table is all over the place. If somebody can help me out I would really appreciate it!

Fixed header overflow. Still need to set height.
const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement>
>(({ className, ...props }, ref) => (
  <ScrollArea className="h-60"> // probably better to set max-height not sure

  </ScrollArea>
))

const TableHeader = React.forwardRef<
  HTMLTableSectionElement,
  React.HTMLAttributes<HTMLTableSectionElement>
>(({ className, ...props }, ref) => (

))

const TableBody = React.forwardRef<
  HTMLTableSectionElement,
  React.HTMLAttributes<HTMLTableSectionElement>
>(({ className, children, ...props }, ref) => (

    {children}

 //I wrapped ScrollBar in
 and  to avoid error: "validateDOMNesting(...):
 cannot appear as a child of
."  not sure about side effect seems functional

        <ScrollBar className="pt-[calc(3rem+2px)]" /> // can be just className="pt-3" but I didn't like how it looked was too close to the header

))

https://github.com/shadcn-ui/ui/assets/54937127/95707cd8-1361-4312-8859-96fc630510c9

Same issue, different solution to @tverderesi. I just removed the wrapping div from Table. Not sure why it is wrapped by div

how do I achieve this?

I did @gdineruiz fix.  Works well overall, except for that breaks if I scroll too hard -- is this happening to anyone else?

I have identified a solution:

Start by removing the div code from the table.

Place a div above the table component, setting its height, and relative, and add the 'overflow-auto' class to it.
In the TableHeader component, apply a 'sticky' class with a 'top-0' property.

By following these steps, you can resolve the issue of the fixed table header

Thank you!
Also if you need a border below it like me, remove border from header and add a box shadow. Otherwise border-b won't work because of border-collapse property;
[&_tr]:border-0 [&_tr]:shadow-[inset_0_-1px_0] [&_tr]:shadow-border

@olzhas-kalikhan I have the same code as yours but the scrollbar is still hitting the table header, not just the body.
Can you show the code that renders your data table?

Use additional claasName prop wrapperClassName, and add it to the Table div wrapper:
const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement> & { wrapperClassName?: string }
>(({ className, wrapperClassName, ...props }, ref) => (

))
Table.displayName = 'Table'

Then, implement sticky on the table header and add overflow-clip in  wrapperClassName:

      <TableCaption>A list of your recent invoices.</TableCaption>
      <TableHeader className="sticky top-0">
        <TableRow>
          <TableHead className="w-[100px]">Invoice</TableHead>
          <TableHead>Status</TableHead>
          <TableHead>Method</TableHead>
          <TableHead className="text-right">Amount</TableHead>
        </TableRow>
      </TableHeader>
      <TableBody>
        {invoices.map((invoice) => (
          <TableRow key={invoice.invoice}>
            <TableCell className="font-medium">{invoice.invoice}</TableCell>
            <TableCell>{invoice.paymentStatus}</TableCell>
            <TableCell>{invoice.paymentMethod}</TableCell>
            <TableCell className="text-right">{invoice.totalAmount}</TableCell>
          </TableRow>
        ))}
      </TableBody>
      <TableFooter>
        <TableRow>
          <TableCell colSpan={3}>Total</TableCell>
          <TableCell className="text-right">$2,500.00</TableCell>
        </TableRow>
      </TableFooter>

Use additional claasName prop wrapperClassName, and add it to the Table div wrapper:
const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement> & { wrapperClassName?: string }
>(({ className, wrapperClassName, ...props }, ref) => (

))
Table.displayName = 'Table'

Then, implement sticky on the table header and add overflow-clip in  wrapperClassName:

      <TableCaption>A list of your recent invoices.</TableCaption>
      <TableHeader className="sticky top-0">
        <TableRow>
          <TableHead className="w-[100px]">Invoice</TableHead>
          <TableHead>Status</TableHead>
          <TableHead>Method</TableHead>
          <TableHead className="text-right">Amount</TableHead>
        </TableRow>
      </TableHeader>
      <TableBody>
        {invoices.map((invoice) => (
          <TableRow key={invoice.invoice}>
            <TableCell className="font-medium">{invoice.invoice}</TableCell>
            <TableCell>{invoice.paymentStatus}</TableCell>
            <TableCell>{invoice.paymentMethod}</TableCell>
            <TableCell className="text-right">{invoice.totalAmount}</TableCell>
          </TableRow>
        ))}
      </TableBody>
      <TableFooter>
        <TableRow>
          <TableCell colSpan={3}>Total</TableCell>
          <TableCell className="text-right">$2,500.00</TableCell>
        </TableRow>
      </TableFooter>

@brijeshkumar16's answer works great.
Similarly you can also use the ScrollArea component if you want to be consistent with shadcn.

Delete the div in Table

const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement>
>(({ className, ...props }, ref) => (

));
Table.displayName = "Table";

Add sticky top-0 bg-secondary to TableHeader
const TableHeader = React.forwardRef<
  HTMLTableSectionElement,
  React.HTMLAttributes<HTMLTableSectionElement>
>(({ className, ...props }, ref) => (

));
TableHeader.displayName = "TableHeader";

Wrap your Table with ScrollArea and set a height
<ScrollArea className="h-[200px] rounded-md border">

</ScrollArea>

Works great, thanks!

Fixed header overflow. Still need to set height.
const ScrollArea = React.forwardRef<
  React.ElementRef<typeof ScrollAreaPrimitive.Root>,
  React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> & {
    disableScrollbar?: boolean
  }
>(({ className, children, disableScrollbar, ...props }, ref) => (
  <ScrollAreaPrimitive.Root
    ref={ref}
    className={cn('relative overflow-hidden', className)}
    {...props}
  >
    <ScrollAreaPrimitive.Viewport className="h-full w-full rounded-[inherit]">
      {children}
    </ScrollAreaPrimitive.Viewport>
    {!disableScrollbar && <ScrollBar />} // need to remove default scrollbar, it overrides table scrollbar props
    <ScrollAreaPrimitive.Corner />
  </ScrollAreaPrimitive.Root>
))

//---------

const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement>
>(({ className, ...props }, ref) => (
  <ScrollArea className="h-60" disableScrollbar> // you can try className="h-[calc(100%)]"

  </ScrollArea>
))

const TableHeader = React.forwardRef<
  HTMLTableSectionElement,
  React.HTMLAttributes<HTMLTableSectionElement>
>(({ className, ...props }, ref) => (

))

const TableBody = React.forwardRef<
  HTMLTableSectionElement,
  React.HTMLAttributes<HTMLTableSectionElement>
>(({ className, children, ...props }, ref) => (

    {children}

 //I wrapped ScrollBar in
 and  to avoid error: "validateDOMNesting(...):
 cannot appear as a child of
."  not sure about side effect seems functional

        <ScrollBar className="pt-[calc(3rem+2px)]" /> // can be just className="pt-12" but I didn't like how it looked was too close to the header

))

Screen.Recording.2024-03-14.at.3.48.51.AM.mov

This solves the Y-axis scrolling, but the X-axis scrolling doesn't work.
Does anyone have a better solution?

Finalized X,Y axis scrolling and header fixation（I hope this helps those in the back）：

is there any way to achieve this without setting a static height ?

I've managed to not need to set a static height using css grid on the parent and max content and a max height set on the scroll area

 <TableHeader className="sticky top-0 bg-secondary">
.....
</TableHeader>
  <TableBody className="grid auto-rows-max">
   <ScrollArea className="max-h-[200px]">
              ....
     </ScrollArea>
  </TableBody>

This trick using css grid seems to work regularly for me with ScrollArea

React will complain that
 cannot appear as a child of

Finalized X,Y axis scrolling and header fixation（I hope this helps those in the back）：

Already tried this but Y-scrolling only works.

This Works Great, until we Use the Selection in the Table Header which is not working
`
export const TagsColumns: ColumnDef<Tables<'tags'> | null>[] = [
{
id: "select",
header: ({ table }) => (
<Checkbox
checked={
table.getIsAllPageRowsSelected() ||
(table.getIsSomePageRowsSelected() && "indeterminate")
}
onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}
aria-label="Select all"
className="translate-y-[2px]"
/>
),
cell: ({ row }) => (
<Checkbox
checked={row.getIsSelected()}
onCheckedChange={(value) => row.toggleSelected(!!value)}
aria-label="Select row"
className="translate-y-[2px]"
/>
),
enableSorting: false,
enableHiding: false,
},
{
accessorKey: 'tag_name',
header: 'Name',
},
{
accessorKey: 'category',
header: 'Category',
},
{
    accessorKey: 'created_at',
    header: ({ column }) => {
        return (
            <Button
                variant="ghost"
                onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
            >
                Joined
                <ArrowUpDown className="ml-2 h-4 w-4" />
            </Button>
        )
    },
    cell: ({ row }) => {
        const date = new Date(row.getValue("created_at"))
        const formatted = new Date(date).toLocaleDateString()

        return
{formatted}

    },
},
{
    id: "actions",
    cell: ({ row }) => {
        const tag = row.original

        return (

            {row && <TagsCellAction data={row.original!} />}

            <DropdownMenu>
                <DropdownMenuTrigger asChild>
                    <Button variant="ghost" className="h-8 w-8 p-0">
                        Open menu
                        <MoreHorizontal className="h-4 w-4" />
                    </Button>
                </DropdownMenuTrigger>
                <DropdownMenuContent align="end">
                    <DropdownMenuLabel>Actions</DropdownMenuLabel>
                    <DropdownMenuItem
                        onClick={() => {
                            if (tag) {
                                navigator.clipboard.writeText(tag.id);
                                toast("Tag ID copied for : " + tag.tag_name, { dismissible: true, duration: 1500 })
                            }
                        }}
                    >
                        Copy user ID
                    </DropdownMenuItem>
                    <DropdownMenuSeparator />
                    <DropdownMenuItem>View customer</DropdownMenuItem>
                    <DropdownMenuItem>View payment details</DropdownMenuItem>
                </DropdownMenuContent>
            </DropdownMenu>

        );
    },
},

]
`
`'use client'
import * as React from "react"
import {
type ColumnDef,
type ColumnFiltersState,
type SortingState,
type VisibilityState,
flexRender,
getCoreRowModel,
getFacetedRowModel,
getFacetedUniqueValues,
getFilteredRowModel,
getPaginationRowModel,
getSortedRowModel,
useReactTable,
} from "@tanstack/react-table"
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table"
import { TagsTableToolbar } from "./tags-data-table-toolbar"
import { ContactDataTablePagination } from "@/components/contacts/contact-data-table/contact-data-table-pagination"
import { ScrollArea } from "@/components/ui/scroll-area"
interface DataTableProps<TData, TValue> {
columns: ColumnDef<TData, TValue>[]
data: TData[]
}
export function TagsDataTable<TData, TValue>({
columns,
data,
}: DataTableProps<TData, TValue>) {
const [rowSelection, setRowSelection] = React.useState({})
const [columnVisibility, setColumnVisibility] =
React.useState({})
const [columnFilters, setColumnFilters] = React.useState(
[]
)
const [sorting, setSorting] = React.useState([])
const [globalFilter, setGlobalFilter] = React.useState("")
const table = useReactTable({
    data,
    columns,
    state: {
        sorting,
        columnVisibility,
        rowSelection,
        columnFilters,
        globalFilter,
    },
    enableRowSelection: true,
    onRowSelectionChange: setRowSelection,
    onSortingChange: setSorting,
    onColumnFiltersChange: setColumnFilters,
    onColumnVisibilityChange: setColumnVisibility,
    onGlobalFilterChange: setGlobalFilter,
    getCoreRowModel: getCoreRowModel(),
    getFilteredRowModel: getFilteredRowModel(),
    getPaginationRowModel: getPaginationRowModel(),
    getSortedRowModel: getSortedRowModel(),
    getFacetedRowModel: getFacetedRowModel(),
    getFacetedUniqueValues: getFacetedUniqueValues(),
})

const handleDelete = () => {
    // Implement delete functionality here
    console.log("Delete selected contacts")
}

const handleAddSingleContact = () => {
    // Implement add single contact functionality here
    console.log("Add single contact")
}

const handleDeleteMultiple = (selectedContactIds: string[]) => {
    // Implement delete functionality for multiple contacts
    console.log("Delete selected contacts:", selectedContactIds)
}

return (

        <TagsTableToolbar
            table={table}
            onDelete={handleDelete}
            addTag={handleAddSingleContact}
            onDeleteMultiple={handleDeleteMultiple}
        />

                    <ScrollArea className="h-[calc(100vh-200px)] rounded-md border">

                            <TableHeader className="pointer-events-none sticky top-0 bg-white z-10">
                                {table.getHeaderGroups().map((headerGroup) => (
                                    <TableRow key={headerGroup.id}>
                                        {headerGroup.headers.map((header) => {
                                            return (
                                                <TableHead key={header.id} colSpan={header.colSpan}>
                                                    {header.isPlaceholder
                                                        ? null
                                                        : flexRender(
                                                            header.column.columnDef.header,
                                                            header.getContext()
                                                        )}
                                                </TableHead>
                                            )
                                        })}
                                    </TableRow>
                                ))}
                            </TableHeader>
                            <TableBody>
                                {table.getRowModel().rows?.length ? (
                                    table.getRowModel().rows.map((row) => (
                                        <TableRow
                                            key={row.id}
                                            data-state={row.getIsSelected() && "selected"}
                                        >
                                            {row.getVisibleCells().map((cell) => (
                                                <TableCell key={cell.id}>
                                                    {flexRender(
                                                        cell.column.columnDef.cell,
                                                        cell.getContext()
                                                    )}
                                                </TableCell>
                                            ))}
                                        </TableRow>
                                    ))
                                ) : (
                                    <TableRow>
                                        <TableCell
                                            colSpan={columns.length}
                                            className="h-24 text-center"
                                        >
                                            No results.
                                        </TableCell>
                                    </TableRow>
                                )}
                            </TableBody>

                    </ScrollArea>

        <ContactDataTablePagination table={table} />

)

}
`
AnyBody got an solution for this?

Use additional claasName prop wrapperClassName, and add it to the Table div wrapper:
const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement> & { wrapperClassName?: string }
>(({ className, wrapperClassName, ...props }, ref) => (

))
Table.displayName = 'Table'

Then, implement sticky on the table header and add overflow-clip in wrapperClassName:

      <TableCaption>A list of your recent invoices.</TableCaption>
      <TableHeader className="sticky top-0">
        <TableRow>
          <TableHead className="w-[100px]">Invoice</TableHead>
          <TableHead>Status</TableHead>
          <TableHead>Method</TableHead>
          <TableHead className="text-right">Amount</TableHead>
        </TableRow>
      </TableHeader>
      <TableBody>
        {invoices.map((invoice) => (
          <TableRow key={invoice.invoice}>
            <TableCell className="font-medium">{invoice.invoice}</TableCell>
            <TableCell>{invoice.paymentStatus}</TableCell>
            <TableCell>{invoice.paymentMethod}</TableCell>
            <TableCell className="text-right">{invoice.totalAmount}</TableCell>
          </TableRow>
        ))}
      </TableBody>
      <TableFooter>
        <TableRow>
          <TableCell colSpan={3}>Total</TableCell>
          <TableCell className="text-right">$2,500.00</TableCell>
        </TableRow>
      </TableFooter>

THANK YOOOOOUUUUUU BROOO!!!!!!! 😄

I have identified a solution:

Start by removing the div code from the table.

Place a div above the table component, setting its height, and relative, and add the 'overflow-auto' class to it.
In the TableHeader component, apply a 'sticky' class with a 'top-0' property.

By following these steps, you can resolve the issue of the fixed table header

Thanks!! It worked for me.

is there any way to achieve this without setting a static height ?

I've managed to not need to set a static height using css grid on the parent and max content and a max height set on the scroll area

 <TableHeader className="sticky top-0 bg-secondary">
.....
</TableHeader>
  <TableBody className="grid auto-rows-max">
   <ScrollArea className="max-h-[200px]">
              ....
     </ScrollArea>
  </TableBody>

This trick using css grid seems to work regularly for me with ScrollArea

I don't get how this is supposed to work, the scroll area is still a fixed height so it doesn't solve anything.

mine is workingly fine

by remove the 'overflow-auto' on the Table comp class name
and

add 'sticky top-0'.

Which should be wrapped in a div containing 'max-height and overflow-y-auto'

Hey guys,
I had the same struggle and I spent a couple hours yelling at my self. You can use the sticky property on the <TableHeader> element. But for this to work, you have to go into the table.tsx component in your @/components/ui folder and look for the definition of the
 element. It's already wrapped in a div, causing the sticky effect not working. I just removed it, and it works!
Remember, sticky property goes with top: 0px; in order to work, and the parent container has to be relative as well.
Good luck with that!

Any solutions that include both vertical scrolling (fixed headers) and the option to freeze certain columns? (fixed columns)

thanks a lot this saved me !

You are welcome 🤗
On Mon, 28 Oct 2024 at 2:48 PM, MathieuGrosso @.***>
wrote:

thanks a lot this saved me !
—
Reply to this email directly, view it on GitHub
https://github.com/shadcn-ui/ui/issues/1151#issuecomment-2441801697, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AUZ7WBVTW5WLDLSIHE7IDZTZ5Y6C7AVCNFSM6AAAAAA3JDJLE6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINBRHAYDCNRZG4
.
You are receiving this because you commented.Message ID:
@.***>

@brijeshkumar16's answer works great.
Similarly you can also use the ScrollArea component if you want to be consistent with shadcn.

Delete the div in Table

const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement>
>(({ className, ...props }, ref) => (

));
Table.displayName = "Table";

Add sticky top-0 bg-secondary to TableHeader
const TableHeader = React.forwardRef<
  HTMLTableSectionElement,
  React.HTMLAttributes<HTMLTableSectionElement>
>(({ className, ...props }, ref) => (

));
TableHeader.displayName = "TableHeader";

Wrap your Table with ScrollArea and set a height
<ScrollArea className="h-[200px] rounded-md border">

</ScrollArea>

I would love to use this solution but I can't find any way to have this work with horizontal scrolling as well. Does anyone have a solution they can share?

I used a CSS parent selector to jimmy the wrapping div:
div:has(> .has-sticky-header) {
  position: unset;
  overflow: unset;
}
...

        <TableHeader className="sticky top-0">
          <TableRow>
            <TableHead>...

Only problem is on mobile etc. you now get two way scrolling and lose the nice first-column table overlap.

@brijeshkumar16's answer works great.
Similarly you can also use the ScrollArea component if you want to be consistent with shadcn.

Delete the div in Table

const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement>
>(({ className, ...props }, ref) => (

));
Table.displayName = "Table";

Add sticky top-0 bg-secondary to TableHeader
const TableHeader = React.forwardRef<
  HTMLTableSectionElement,
  React.HTMLAttributes<HTMLTableSectionElement>
>(({ className, ...props }, ref) => (

));
TableHeader.displayName = "TableHeader";

Wrap your Table with ScrollArea and set a height
<ScrollArea className="h-[200px] rounded-md border">

</ScrollArea>

This is great solution, thanks

thanks

Use additional claasName prop wrapperClassName, and add it to the Table div wrapper:
const Table = React.forwardRef<
  HTMLTableElement,
  React.HTMLAttributes<HTMLTableElement> & { wrapperClassName?: string }
>(({ className, wrapperClassName, ...props }, ref) => (

))
Table.displayName = 'Table'

Then, implement sticky on the table header and add overflow-clip in wrapperClassName:

      <TableCaption>A list of your recent invoices.</TableCaption>
      <TableHeader className="sticky top-0">
        <TableRow>
          <TableHead className="w-[100px]">Invoice</TableHead>
          <TableHead>Status</TableHead>
          <TableHead>Method</TableHead>
          <TableHead className="text-right">Amount</TableHead>
        </TableRow>
      </TableHeader>
      <TableBody>
        {invoices.map((invoice) => (
          <TableRow key={invoice.invoice}>
            <TableCell className="font-medium">{invoice.invoice}</TableCell>
            <TableCell>{invoice.paymentStatus}</TableCell>
            <TableCell>{invoice.paymentMethod}</TableCell>
            <TableCell className="text-right">{invoice.totalAmount}</TableCell>
          </TableRow>
        ))}
      </TableBody>
      <TableFooter>
        <TableRow>
          <TableCell colSpan={3}>Total</TableCell>
          <TableCell className="text-right">$2,500.00</TableCell>
        </TableRow>
      </TableFooter>

THANK YOOOOOUUUUUU BROOO!!!!!!! 😄

This works for me. Thank you!

Hey all, you can also... just... not use the  component.... It's just a regular html ....
<ScrollArea className="m-4 h-[225px] w-[500px] relative rounded-md">

        <TableHeader>
            <TableRow>
                       <TableHead className="sticky top-0 z-20">Name</TableHead>
                       <TableHead className="sticky top-0 z-20">Actual/Expected</TableHead>
                       <TableHead className="sticky top-0 z-20">Slant Range</TableHead>
            </TableRow>
        </TableHeader>
        <TableBody className="mt-10">
            <TableRow>
                <TableCell>Foo</TableCell>
                <TableCell className="text-center">Bar</TableCell>
                <TableCell>Baz</TableCell>
            </TableRow>
        </TableBody>
        <TableFooter>
            <TableRow>
                <TableCell className='h-6 p-2 sticky bottom-0 z-20' colSpan={columns.length}>My Footer!</TableCell>
            </TableRow>
        </TableFooter>

</ScrollArea>

Cheers!

Hey all, you can also... just... not use the
 component....


Error executing apt-get update on the 5.2.2 image

I get the following error when building out a custom image from 5.2.2.   I need to install a jdbc driver and got the following error when running the below file defined.   The issue is that in the user is changed to "logstash".  Easy enough to work around but very untypical for docker containers.  I should be able to setup extend the image with additional drivers easily.
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
Begin dockerfile
FROM docker.elastic.co/logstash/logstash:5.2.2
RUN apt-get -y update
&& apt-get install -y wget
End dockerfile
To fix the issue change the user back to root in the docker file.  I think this should be done in the logstash image though to keep with convention.

We are very keen to keep the container process running as a non-root user.
Would you consider doing:
FROM docker.elastic.co/logstash/logstash:5.2.2

USER root
RUN apt-get -y update && apt-get install -y wget
USER logstash

?

I should mention that we change away from the root user in accordance with the best practices document from Docker Inc.
It could be that a lot of containers run as root by default, but not all processes need that level of privilege. Logstash doesn't need it, so we comply with security best practice and run as a regular user.

Changing users is the workaround I used.
It maybe that the rest of the container world is behind.  The other docker containers from elastic.co are not doing this and this is the first one that I've found that does.   I completely agree with not running as root it was just unexpended based on the other offerings.   It also presents an issue if your unaware given that sudo is not available in the default docker images.
If nothing else hopefully this will help someone else that hit's it unexpectedly.

I hope so too. It's shame that this can surprise people because that's really something we want to avoid. Sorry about that, and thanks for understanding.


v0.4.1

v0.4.1 Nov 29, 2018
* Resolve bug preventing using first column as index by default (#308)
* Handle return type when creating features from Id variables (#318)
* Make id an optional parameter of EntitySet constructor (#324)
* Handle primitives with same function being applied to same column (#321)
* Update requirements (#328)
* Clean up DFS arguments (#319)
* Clean up Pandas Backend (#302)
* Update properties of cumulative transform primitives (#320)
* Feature stability between versions documentation (#316)
* Add download count to GitHub readme (#310)
* Fixed #297 update tests to check error strings (#303)
* Remove usage of fixtures in agg primitive tests (#325)

Looks good to release!


simple_queue.py: Add Queue in Python

Add a Queue implementation in Python.
closes #94

I can see some other changes in this PR, looks weird, do look into it pls

thanks for contributing


tls support is broken

Trying from the LTS version of Node.js, looks like the TLS connection is broken
$ node example/bitcoin.js
Connecting....

And the process is auto killed without any error logs
I assume that the library is broken, or have incompatible behavior with modern nodejs version
( I think this is the reason why ci fails as well )
cc @nkuba

Also, this comment is wrong
https://github.com/keep-network/electrum-client-js/blob/main/test/config.js#L18
I have tried with my electrum desktop client, and the server was working well.

So, I assume that the documentation of node.js is quite wrong with new tls.TLSSocket since many people use tls.connect instead.
https://github.com/nodejs/node/issues/3963


GPL License

This library is licensed under the GPL, which requires that any project utilizing it must disclose all of its source code, thereby prohibiting its use in commercial projects that do not intend to release their source code publicly. is that the intention?

No, the intention was to offer this library free for every use. If someone finds this library useful, I hope in funding or support.
I'll change the licence.
Enrico

Would love to see this changed to MIT license.

Updated

@erossini On NuGet, it still shows GPL.
https://www.nuget.org/packages/PSC.Blazor.Components.Chartjs/8.0.6/License


Resolve whether to have --strict mode, or just a set of lints

Meta: Should we have a set of "strict mode" lints, or a "strict mode" flag to the analyzer?
We can meet offline as well, but I'd like to post this issue for posterity and for external reference.
As seen in:

https://github.com/dart-lang/sdk/issues/33749
https://github.com/dart-lang/sdk/issues/33823#issuecomment-417119669
https://github.com/dart-lang/sdk/issues/33119#issuecomment-417120943

In the issues above @jmesserly correctly brought up that it's unclear whether we need lints (i.e. rules, implemented in package:linter, that are opt-in via adding the individual rules to analysis_options.yaml) or hints (implemented directly in package:analyzer, that are opt-in via a potential strict flag in analysis_options.yaml.
So, the question is, do we want:
dartanalyzer --options analysis_options.yaml

analyzer:
  linter:
    rules:
      avoid_dynamic_calls: true
      avoid_inferred_casts: true
      avoid_raw_types: true

or do we want an option of either:
dartanalyzer --strict

dartanalyzer --options analysis_options.yaml

analyzer:
  strict: true

(Or, with more specificity)
dartanalyzer --strict-dynamic-calls --strict_raw_types

analyzer:
  strict:
    - dynamic_calls
    - raw_types

A bit of history
Originally when @jmesserly et al wrote the strong-mode: flag in the analyzer, this was an optional (off-by-default) mode, and she added additional opt-in flags for even stricter analysis: --no-implicit-dynamic and --no-implicit-casts. We (well, at least @srawlins and I) ❤ these flags, but they are a little too demanding of most code bases - but they serve as an excellent way to frame this discussion.
Now that strong-mode is the default (and only option), it's less clear whether we need (or actually desire) a strict mode - i.e. a way to run stricter analysis checks to catch more errors at analysis-time and less at runtime in Dart 2.0+.
What differentiates strict flags from lints?
Nothing, though strict flags - based on discussion in #33749 are more nuanced (closer to hints):

They do not enforce style or readability rules
They do not change coding habits for entirely aesthetic purposes
They do not make any decisions that could have false positives

... rather, it is possible to write a strict check as a lint, but most lints do not meet criteria for strict.
Possible flags (taken from #33749, and some offline discussion)
... to help serve as a basis of informing the decision.

--strict-dynamic-calls: Do not allow dynamic calls (perhaps with an opt-in mechanism)
--strict-inferred-casts: Do not allow inference to produce a top type unless top was an input
--strict-raw-types: Require List<dynamic> instead of List implicitly being List<dynamic>

Comparative approach
Non-exhaustive - just wrote down what I could think of on top of my head.
Lints
PROs:

Authored in the linter package, which is much more external/non-SDK developer friendly ⭐
Can iterate much faster
Sit side by side with other rules trying to accomplish (sometimes) similar goals
Can be modified, created at will without needing extra integration within the analyzer

CONs:

Not really "on the radar" of the language/core team, i.e. most work here happens w/o much notice
Not simple to add "quick fixes" (suggestions) for IDE users
Needs to be rolled into the SDK

Hints
PROs:

Easier and more natural to add "quick fixes" and suggestions for IDE users
A strict flag is a simpler concept to wrap your head around as a concept from individual lints
Can be more directly driven by the language/core team (i.e. positive but non-breaking changes)
Easy to adapt 1-1 as a recommendation for "large code bases" (i.e. google3 and similar)

CONs:

Less friendly to contributors not already experienced with developing against the SDK ⭐
UX issue of a strict mode flag in the analyzer/related tools (compared to "strong" mode etc)

⭐ I don't think this is that important, given we don't expect external users to contribute these flags anymore than we expect external users to change the type system or the core libraries.

Other considerations, from an offline thread:

Language team could use this mode as a stepping stone to Dart 3+ (like strong-mode for Dart 1->2)
There might be performance considerations in running some of these checks in the linter v analyzer

I have an issue with making these hints. I think that the primary distinction between hints and lints (from a user's perspective) is that hints are enabled by default and lints are disabled by default. Adding "hints" that must be enabled seems to break that pattern and make it harder to explain our already confusing plethora of "kinds" of diagnostics.
If we don't want to do this as lints (a decision I think the language team should make), I would much rather couch this in terms of a variant of (or enhancement to) the language.  It seems to me to be very consistent with other language enhancements (such as super-in-mixins). If we do that, then I could even see us implementing these diagnostics as full-blown errors.
One minor correction: it's just as easy to write a quick fix for a lint as it is for a hint (or anything else). I believe that the false perception that it's "hard" to write quick fixes for lints is because we don't yet support implementing those quick fixes in the linter package, so for those not familiar with the sdk development process it appears to be a higher barrier.

Thanks! I am not tied to hints, for example if this really is a mode that the core team wants to facilitate for tighter static checks, then I imagine warning or error is totally fine to use (you already opted into non-spec tighter checks).

One minor correction: it's just as easy to write a quick fix for a lint as it is for a hint (or anything else). I believe that the false perception that it's "hard" to write quick fixes for lints is because we don't yet support implementing those quick fixes in the linter package, so for those not familiar with the sdk development process it appears to be a higher barrier.

Got it, thanks!

Perhaps we can add the new checks individually, and then get a feel for how useful they are (in terms cost/benefit), and how much adoption we can get. Then, once we have a set of checks that looks good, we can create a "strict mode" that enforces them.
I'd be inclined to use lints for most of the checks (faster iteration cycle?). A few of the inference checks probably make more sense to implement directly in Analyzer itself, though.

Then again: if we feel confident that the set of flags in https://github.com/dart-lang/sdk/issues/33749 is probably what we'll end up with for strict mode, then maybe I can implement them all in the same place (as Analyzer flags).

Removing lints is a breaking change, so I'd rather not have a plan to create temporary lints.

Removing lints is a breaking change, so I'd rather not have a plan to create temporary lints.

Is there a notion of "experimental" or "staging" for lints? (similar to language features, it can be nice to iterate & gather real world feedback before committing to an exact feature specification).
I don't think we would need to necessarily need/want to remove them, rather it would just not add any new info if you were already using the strict flag. But the lint would still be useful on its own. (await_only_futures" is an example, it's already a lint, but it might get included in "strict mode")

Is there a notion of "experimental" or "staging" for lints?

Yes, I think there is.

I'd like to comment on:

They do not make any decisions that could have false positives

I don't think this is true.
List y = ...;
List x = y.map(...);

Firstly, it may be intended for y and x to be List<dynamic>. You could argue that it's not a false positive, because it is flagging an area written in bad form. However, wouldn't that then contradict: "They do not change coding habits for entirely aesthetic purposes."
Secondly, it may look like the second line is not a false positive because it will always fail. Even this is not true:
class MyList<T> implements List<T> {
  ...
  List<R> map<R>(......) => new List<R>();
  ...
}

void main() {
  List x = new MyList();
  List y = x.map(...);
}

Lastly, this flag includes an opt-out mechanism, indicating false positives:

--strict-dynamic-calls: Do not allow dynamic calls (perhaps with an opt-in mechanism)

So I think you could make the case that there are no false positives, but that implies that its "good form" which implies to me that its a style preference. Or you could make the case that it's not style or "good form" but about having a stricter language on the whole, in which case it has false positives because it will restrict valid programs too.
How about the CFE?
I'd pose, rather, that these should not be lints because that assumes that all extra strictness will be static.
Counterexamples:

invariant generics (assuming you want the same subtyping behavior at runtime)
no awaiting non-futures (assuming you want to allow awaiting Object/dynamic, and insert a runtime check)

and of course, any --strict flag that we add to the analyzer, can and maybe should be caught at compile time in the CFE too.

Hi @MichaelRFairhurst thanks for the feedback.
We have decided (offline) that this will be a mode, not a set of lints. If there are specific checks that make more sense to implement as a lint, we can tackle those on a case by case basis. It sounds like you mostly agree with that decision though.


chore: bdd-nh-1581635874 to 0.0.1

chore: Promote bdd-nh-1581635874 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


dotnet-trace missing link for macOS ARM version

Issue description
The dotnet-trace docs page only seems to include an install link for macOS x64 but not ARM64. Is there even a ARM version? If you can give me the link, I am happy to open a PR.
Target framework
.NET 7.0.0

[x] .NET Core
[ ] .NET Framework
[ ] .NET Standard

dotnet --info output or About VS info
.NET SDK:
 Version:   7.0.100
 Commit:    e12b7af219

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  13.0
 OS Platform: Darwin
 RID:         osx.13-arm64
 Base Path:   /usr/local/share/dotnet/sdk/7.0.100/

Host:
  Version:      7.0.0
  Architecture: arm64
  Commit:       d099f075e4

.NET SDKs installed:
  6.0.403 [/usr/local/share/dotnet/sdk]
  7.0.100 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.11 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

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

ID: 57216dad-d87d-eeef-adc8-82bfe4251343
Version Independent ID: 3e7ab61f-5a06-b92c-5c74-0fae43adb35e
Content: dotnet-trace diagnostic tool - .NET CLI
Content Source: docs/core/diagnostics/dotnet-trace.md
Product: dotnet-fundamentals
GitHub Login: @tommcdon
Microsoft Alias: tommcdon

Hello @CollinAlpert!  This is tracked on https://github.com/dotnet/diagnostics/issues/3494

Great, thanks!


Dependencies ? ...

Not sure if I'm missing the obvious here as dependency chains aren't in my usual scope expertise... ;-)
But.....
Do we need the explicit dependencies on Umbraco.Cms.Core as Umbraco.Cms.Web.BackOffice already include an implicit dependency?

Also do we need the Microsoft.Identity.Web.MicrosoftGraph dependency, it would appear that the implicit Microsoft.Identity.Web is all that is required?

You're right we don't need Umbraco.Cms.Core
PR #28 covers this

Will be in v2.0.0


update header macro + set minimum deployment to iOS 13

Codecov Report

Merging #46 into master will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #46   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            3         3
  Lines          253       235   -18
=========================================
- Hits           253       235   -18

Impacted Files
Coverage Δ

Sources/MultiProgressView/LayoutProvider.swift
100.00% <100.00%> (ø)

Sources/MultiProgressView/MultiProgressView.swift
100.00% <100.00%> (ø)

...ources/MultiProgressView/ProgressViewSection.swift
100.00% <100.00%> (ø)


Use def to override scalaCheckInitialSeed

Fixes https://github.com/scalameta/munit/issues/563

Yup. Basically a def is less likely to go wrong due to subtle initialization order issues.


add stratpal and admtools

Please ensure your pull request adheres to the following guidelines:

[ x] Why do you think your project is a great addition? Please describe how it is useful or inspirational to other researchers.
Added 2 R packages with CI, tests, and extensive documentation (including web pages via pkgdown). Beyond the domain knowledge, I think they are nice templates for more complex R packages
[ x] Use the following format for adding repositories: - [repository_name](repository_link) - short description of the repository
[ x] Repositories should be added alphabetically in the relevant category.
[ ] New categories or improvements to the existing categorization are welcome.
NA
[ ] For collaboration groups, add only the github organization and a description of the organization.
AN

Thanks for contributing!

Okay, I'm now sure that I don't have permissions to approve PRs anymore. Could you give me write permissions again so I can also approve? @J535D165

Your are there again @kequach :) See invite


CT phet is not defined

scenery : pageload : /doc/ : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /doc/a-tour-of-scenery.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /doc/accessibility.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /doc/implementation-notes.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /doc/user-input.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /examples/cursors.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /examples/hello-world.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /examples/input-multiple-displays.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /examples/input.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /examples/mouse-wheel.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /examples/multi-touch.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /examples/nodes.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /examples/shapes.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /examples/sprites.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /tests/playground.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at Property.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/tandem/js/PhetioObject.js?bust=1572506890585:290:39)
    at new PhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/tandem/js/PhetioObject.js?bust=1572506890585:142:12)
    at new Property (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/axon/js/Property.js?bust=1572506890585:69:7)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/js/util/FullScreen.js?bust=1572506890585:82:27
    at Object.execCb (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/sherpa/lib/require-2.3.6.js:1696:33)
    at Module.check (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/sherpa/lib/require-2.3.6.js:883:51)
    at Module.<anonymous> (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/sherpa/lib/require-2.3.6.js:1139:34)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/sherpa/lib/require-2.3.6.js:134:23
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/sherpa/lib/require-2.3.6.js:1189:21
    at each (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/sherpa/lib/require-2.3.6.js:59:31)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : pageload : /tests/text-bounds-comparison.html : load
Uncaught ReferenceError: phet is not defined
ReferenceError: phet is not defined
    at e.initializePhetioObject (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:40477)
    at e [as constructor] (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:38610)
    at new e (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:47060)
    at https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:385362
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13573)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
    at u (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:13476)
    at h (https://bayes.colorado.edu/continuous-testing/snapshot-1572495798551/scenery/build/scenery.min.js:1:12378)
id: Bayes Chrome
Approximately 10/30/2019, 10:23:18 PM
scenery : top-level-unit-tests : require.js
295 out of 295 tests passed. 0 failed.

Approximately 10/30/2019, 10:23:18 PM
scenery : top-level-unit-tests : require.js?brand=phet-io
295 out of 295 tests passed. 0 failed.

Approximately 10/30/2019, 10:23:18 PM
scenery : top-level-unit-tests : require.js?ea
295 out of 295 tests passed. 0 failed.

Approximately 10/30/2019, 10:23:18 PM
scenery : top-level-unit-tests : require.js?ea&brand=phet-io
295 out of 295 tests passed. 0 failed.

Approximately 10/30/2019, 10:23:18 PM

Worked around in the above commit.

The workaround looks reasonable.  In other places we have also used _.hasIn which may be less verbose.  @zepumph can you please take a look?

Thanks and apologies for this! I converted to use _.hasIn in a few places. And tested by building scenery and running the documentation. When I comment out a _.hasIn, and do the same, it fails.
Thank you @jonathanolson for applying the original patch. Will you review my changes?

Looks good to me.


fixing docker repository name

should be fixing #308
PR checklist

[X] This comment contains a description of changes (with reason)

@pascal-git Thanks for the PR but we cant directly update master now because thats a stable release of the pipeline. However, this will be fixed soon with the new release.


Proposal: Right-Click on any app in the Taskbar and a new option should come up in the normal menu called "Run as Administrator"

Right-click on any app in the Taskbar and a new option should come up in the normal menu called "Run as Administrator". This should also happen with pinned items.

Please log this using Feedback Hub so that it can go to the Shell Team.

Okay

Label this as 'Please-File-on-Feedback-Hub' Or some other label like that.

Feedback Hub:
https://aka.ms/AAnnqgy


Hardlock when EdgeDetect is used

I found a small issue with the library. For some reason when rpio is close and EdgeDetect is still enable it will hard lock the rpi. i tested it on both a pi3 and pi4. if i call pin.Detect(rpio.NoEdge) before close nothing locks up and everything is fine. I don't have any logs unfortunately dmsg and the kernel log give no insight.
go version: go1.17 linux/arm64
kernel version (uname-a):   Linux XXXX 5.13.0-1013-raspi #15-Ubuntu SMP PREEMPT Fri Jan 7 23:16:57 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
go-rpio version: 4.5.1

这是来自QQ邮箱的假期自动回复邮件。

您好，我最近正在休假中，无法亲自回复您的邮件。我将在假期结束后，尽快给您回复。

I have updated to 4.6 and it is still a issue, I had one run where instead of crashing it locked the file system

Found

WARNING: this might make your Pi unresponsive, if this happens, you should either run the code as root, or add dtoverlay=gpio-no-irq to /boot/config.txt and restart your pi,

in the docs.
It came from https://github.com/stianeikeland/go-rpio/issues/35, of which this bug is likely a dupe.

yes,' dtoverlay=gpio-no-irq to /boot/config.txt' was the solution in my case. Thank you.


Doesn't compile due to PKERB_CLOUD_KERBEROS_DEBUG_DATA maybe?

Hey you sure this compiles for you?
At least I cannot find any reference about this PKERB_CLOUD_KERBEROS_DEBUG_DATA.
I am getting a bunch of errors when it tries to compile kerberos.cpp
Nice work nevertheless dude!

I never use cmake so I could be messing up but take a look either way :D

Thanks for giving the project a try! I believe if you install the latest Windows 11 SDK (version 10.0.22621.0 or higher) that the issue will get resolved.

Hmm, I did...Ahh I had 3 different SDKs so I had to define it.
Great stuff dude!

Oh, gotcha! That makes sense. I'm glad it's working for you! 🙂


Debugger Support

RIght now there's no debugging other than console.log statements, and that's a pain for larger applications. Duktape does have builtin debug support, just need to find a way to integrate that with this project (https://github.com/svaarala/duktape/blob/master/doc/debugger.rst). I'd like to have an interface something like React Native where you hit CMD+D and it automatically pops up the debugger in a browser window.

@nick-thompson, So I'm starting on this now. This issue is probably the best place to discuss initial approach.
Initial ideas:
I think it would be nice to follow the approach used for hot reloading in ReactApplicationRoot. If JUCE_DEBUG is enabled then we add ReactApplicationRoot as a juce::KeyListener to itself and in response to CMD-D/CTRL-D we call duk_debugger_attach(), CMD-C/CTRL-C or similar for detach. We will need to include/compile the tcp protocol implementation in the examples (duk_trans_socket_unix.c).
One thing to consider is how to enable the necessary compiler defs for duktape debug support. We need to enable DUK_USE_DEBUGGER_SUPPORT and DUK_USE_INTERRUPT_COUNTER as a minimum. The recommended way to enable such options is using duktape's configure.py script. At the moment blueprint.h/blueprint.cpp just include the stock src-noline/duktape.h/.c files. It would be good to provide users of Blueprint with a mechanism to use their own custom configured headers.
I will start hacking on this now but would be interested to hear your thoughts. I'm going to have a play with the VSCode extension as a test approach: https://marketplace.visualstudio.com/items?itemName=HaroldBrenes.duk-debug

Cool, I'll be so excited to see this!
Definitely like the CMD-D/CTRL-D idea in DEBUG.
The compile definitions I'm currently doing here: https://github.com/nick-thompson/blueprint/blob/master/blueprint/blueprint.cpp#L31 I know that it's not the right way to embed duktape and makes custom configuration definitely difficult. I think we could get away with this setup for those two defs, but maybe afterward we should consider a new, better way to integrate duktape?

Ha yeah I'm just hacking that in now to get started. Yeah fair enough, it's not an essential thing right now. I've been pleasantly surprised with the performance on linux just using the stock configuration so far anyways.

@nick-thompson, So I can get the debugger attached using both the vscode duktape extension and the web based debugger in duktape. However I'm struggling to get breakpoints working. I believe this is an issue with having an single minified bundle and duktape not supporting source maps.
Duktape has an open issue to add source map support. The vscode extension supposedly supports source maps however I'm hitting issues with it. The logging shows the following:
[unmapSourceFile] Unmapping file: /home/josh/development/Mixer/Software/Source/ui/jsui/common/components/src/ToggleButton.js
[getSourceNameByPath] Path found in source root '/home/josh/development/Mixer/Software/Source/ui/jsui' source name: common/components/src/ToggleButton.js
[unmapSourceFile] Path under root: common/components/src
[scanDir] Error reading directory: /home/josh/development/Mixer/Software/Build/jsui/common/components/src
Unknown source file: /home/josh/development/Mixer/Software/Source/ui/jsui/common/components/src/ToggleButton.js

Suggests it's looking for jsui/common/components/src at the output/build location and expecting a ToggleButton.js file at that location.
Any thoughts on this? I'm probably going to hit the limits of my webpack/bundling skills here but will persist.

Initial work started in https://github.com/nick-thompson/blueprint/pull/61

Boom!! I'll take a quick pass on the PR now. I agree that the chrome dev tools transport could be a lot, definitely happy to defer that. Being able to do any debugging will be amazing

Awesome. Think I've found fix for the GETHEAPOBJINFO failure too so this might be fully functioning shortly. Requires a webpack change to function reliably etc. so some more bits to push up shortly.

Ah interesting. What's the webpack change?

Basically just ensuring source map entries are absolute:
devtoolModuleFilenameTemplate: 'webpack:///[absolute-resource-path]'

Ok cool, didn't know about those options!

Will move all conversation on this over to the PR now but heap object inspection is now working so you can interrogate both "this" and local vars inside component member functions

Ok cool, didn't know about those options!

Ha me neither. There has been much pain debugging the extension to workout why my source map wasn't working for all files. I've burnt out my Google searching quota for the day.

@nick-thompson wonder if this can be closed now ? VsCode debug is documented and fairly stable.

Yup totally. If anything, this issue is now basically tracking a duplicate of #63. Thanks


What happened to @quarnster?

Does anybody know? His activity just ends abruptly on September 28, 2015.
Sorry about creating an issue about this, but I couldn't find any information or a direct way to contact him, and this is the most relevant place to ask, him being the creator of this project.
@zoli @erbridge @ricochet1k

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

I think his email was<EMAIL_ADDRESS>

Or you could contact him on linkedin (https://www.linkedin.com/in/fredrik-ehnbom-7a43b64/). But I guess the reason you don`t see him around anymore is simply because he does not have time or interest to deal with this anymore.


Add support for create function, class or parameter code actions depending on context

Discussed in https://github.com/microsoft/pylance-release/discussions/3600

Originally posted by luabud November  9, 2022

It'd be nice Pylance could displayed refactoring code actions depending on the context. For example:

def foo():
    return x  # <--- 💡Create parameter x

a = MyClass # <--- 💡 Create class MyClass

b = bla() # <---- 💡 Create function bla()

```</div>

we just converted this into an issue to add it to our roadmap

Related on Stack Overflow: Create non-existent functions by a single click in VS Code Python.
Does this also cover missing methods? (see also VS Code assist for Python create new method if they not exists?)

Here are some examples of quick fixes in JetBrains: https://www.jetbrains.com/help/rider/Code_Analysis__Examples_of_Quick-Fixes.html
When implementing this feature in Pylance, it would be great to consider special cases like multiple inheritance from the start.
I'm looking forward to this feature!


Update blt v062 dev

Description
Update blt to v 0.6.2
Should be the same as PR #19577 on 3.4RC.
Type of change

[ ] Bug fix~~
[ ] New feature~~
[ ] Documentation update~~
[ ] Other~~

How Has This Been Tested?

Reminders:

Please follow the style guidelines of this project.
Please perform a self-review of your code before submitting a PR and asking others to review it.
Please assign reviewers (see VisIt's PR procedures for more information).

Checklist:

[ ] I have commented my code where applicable.~~
[ ] I have updated the release notes.~~
[ ] I have made corresponding changes to the documentation.~~
[ ] I have added debugging support to my changes.~~
[ ] I have added tests that prove my fix is effective or that my feature works.~~
[ ] I have confirmed new and existing unit tests pass locally with my changes.~~
[ ] I have added new baselines for any new tests to the repo.~~
[ ] I have NOT made any changes to protocol or public interfaces in an RC branch.~~

This was an attempt to use a patch from 3.4RC, I will repeat the steps I used for 3.4RC instead.


Minutes for 2/10/2020 Meeting

Via an asynchronous meeting, discussed updates and problems for the upcoming week.


Acquiring Admin Permission

Both Methods of obtaining Admin Access are failing
Files:
admin.vbs
apk-manager.bat

There is now no longer a need to obtain admin permission.


 Either find a lighter implementation, or roll my own.

Here is a Mastodon thread on tools for analysing dependencies: https://sauropods.win/@mike/113000873206695036


Add PyPi package functionality

As requested in #36 , the project structure was changed to meet the requirements.

I forgot to mention, usage now becomes:
$ sherlock username

Would be nice if someone would like to publish it to PyPi

If this is the structure going forward, then it really needs to be merged to master.  And a tag should be put down so there is some link between the published content and the repository.
As far as putting it on PyPi, would not @sdushantha be the logical person to publish it? Someone is going to have to own the account on PyPi, and it seems that the owner of the Git repository should be the same as the publisher. I see the Packaging Python Projects guide spells out the process.

Read my comment on #36


Clarification on percentage calculation on the Progress report

As detailed on internal task (https://mseng.visualstudio.com/AzureDevOps/_workitems/edit/1972442)
Related to doc bug (https://mseng.visualstudio.com/AzureDevOps/_workitems/edit/1952871) and DTS (https://mseng.visualstudio.com/AzureDevOps/_workitems/edit/1952589)

@steved0x - Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

@steved0x @mijacobs - nudging for a review of this pr. thanks.

#sign-off


Add coverage shield

Add coverage shiled to README

Codecov Report

Merging #1 (464456b) into main (bc94a11) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main       #1   +/-   ##
=======================================
  Coverage   99.82%   99.82%
=======================================
  Files          21       21
  Lines         571      571
  Branches      105      105
=======================================
  Hits          570      570
  Misses          1        1

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Requires_grad is False

Hi,
I guess the code needs to have some change in line 390 from src/modules/transformer_decoder.py
logits = torch.stack(logits, 1).data --> logits = torch.stack(logits, 1)
This will enable the require_grad to remain true. The training cannot do the backward.loss process without the require_grad being True.

Fixed by 3ab629c08f0b5d84bbc3d56ac70ce12e60500322 .


[Mailjet] get_message_id failed on messages with multiple recipients(TOs)

For emails sending to multiple recipients
    new()
    |> to([email_a, email_b, email_c])
    |> from({"Dr B Banner"<EMAIL_ADDRESS>    |> subject("Hello, Avengers!")
    |> html_body("
Hello #{user.name}
")
    |> text_body("Hello #{user.name}\n")

which Mailjet will return something like this
%{
  "Messages" => [
    %{
      "Bcc" => [],
      "Cc" => [],
      "CustomID" => "",
      "Status" => "success",
      "To" => [
        %{
          "Email" =><EMAIL_ADDRESS>          "MessageHref" => "https://api.mailjet.com/v3/REST/message/aaa",
          "MessageID" => aaa,
          "MessageUUID" => "aaaa"
        },
        %{
          "Email" =><EMAIL_ADDRESS>          "MessageHref" => "https://api.mailjet.com/v3/REST/message/bbb",
          "MessageID" => bbb,
          "MessageUUID" => "bbbb"
        },
        %{
          "Email" =><EMAIL_ADDRESS>          "MessageHref" => "https://api.mailjet.com/v3/REST/message/ccc",
          "MessageID" => ccc,
          "MessageUUID" => "cccc"
        }
      ]
    }
  ]
}

When get_message_id/1, it will throw (FunctionClauseError) no function clause matching in Swoosh.Adapters.Mailjet.get_message_id/1
get_message_id/1 is expecting To to contain a list of one element only while there are cases To contains multiple elements.

we can add a clause to get_message_id to handle the multiple to situation, returning a list of message ids, and keeping it backwards compatible (as in single to still works the same way)

Now it will return {:ok, %{id: [...ids...]}} when there are multiple tos
Still returning the singular id, i.e. not a list, when there is only one to.
Not great, but it's backwards compatible.


Add html theme

As the title says.

Before switching between themes too frequently, it's better to decide on one theme. I would use either

https://github.com/pydata/pydata-sphinx-theme
https://sphinx-book-theme.readthedocs.io

The latter has the advantages that it works best with myst-nb as it is developed by the same group.

easier to move the

https://pydata-sphinx-theme.readthedocs.io/en/stable/user_guide/layout.html#header-navigation-bar

Looks nice 😏 Approved 🔥
Just a thought though: it seems that pydata puts each page on the top navigation bar, which isn't really scalable (you can't scroll horizontally). I sure it's possible to move them to the sidebar, so we can look at that once there are more notebooks. (This is incidentally why I prefer sphinx-book-theme — it has some convenience settings that make it easier to move the pages between sidebar and navbar.)