amp-image arbitrary assetdir storage

Hi
I keep my images/videos under static/images, and I keep each image separate depending on the category and its post.
Currently, partials/blocks/image.html defines the search space as
{{ $resource := resources.Get .src }}
    {{ with $resource }}
    {{ if in (slice "jpeg" "jpg" "png" "gif" "webp" "webm") $resource.MediaType.SubType }}

Forcing me to change over 100 images location (from my old theme) to assets/
Is there's a way to load the image from the content folder using any path?
Example
image:
src: folder/folder/image.webp
This folder will be accessible from the root of public when Hugo generates the files
Muchas gracias!

nvm, figured it out
assetDir = "static"


Installation instructions?

Windows forks are most likely to install via a package manager or setup executable.
Many Windows users will be unsure where to put curl.exe from the zip file: app/roaming/or Windows/system 32, etc...
It would be nice to have instructions or a pointer to same in the readme or downloads page.
Thx!

I think the point is that there is no installation. Where to unpack is up the everyone's use case, preference, or permissions. Another optional step is adding that location to PATH.
For those uncertain doing these manually, it's probably easiest to rely on winget, scoop or Chocolatey which make these steps automatic and use their own locations to make it work as a one-step process. These package managers all use curl-for-win binaries under the hood.
That said, I'd be happy linking to a document (a curl wiki page?) that's community maintained.

I know a bit more after researching further!
I think it would help to add a sentence stating that "Windows users should generally wait for Microsoft to update curl via standard Windows Updates". The Curl executable is a trusted system file and not easy to replace or update.
More info at:
https://daniel.haxx.se/blog/2023/04/24/deleting-system32curl-exe/

Yes, overwriting the base OS, including its bundled curl.exe with any other curl is strongly not recommended. Unzipping the archives distributed here will never overwrite it.
The Windows bundled curl is mentioned on the binary download page: https://curl.se/windows.


[HUDI-3664] Fixing Column Stats Index composition

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contribute/how-to-contribute before opening a pull request.

What is the purpose of the pull request
Currently, Column Stats Index is being composed incorrectly internally storing all the stats as strings, which leads to it comparing all of the stats lexicographically instead of based on the binary representation.
This PR is addressing that.
Brief change log

Rebasing ColumnStatsMetadata to persists appropriate binary-encoded types
Fixing Column Stats Usages to use native Java types returned from the Column Stats

Verify this pull request
This pull request is already covered by existing tests, such as (please describe tests).
This change added tests and can be verified as follows:
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@hudi-bot run azure


Implement pickerPosition:'auto' option

This should resolve #209.
My first commit should have been all that was needed to implement this.
However, I ran into an issue where left and right did not always mean left or right respectively.
Ex:
If you look at the date pickers before this PR, they would have the CSS 'bottom-right'. However, the date picker is created on the left hand side and the arrow is on the left.
Swapping the CSS to be 'bottom-left' moves the arrow to the right side. Moreover, the picker would be on the left, but the arrow on the right of the picker.

I was worried about changing the CSS to seem more correct in this scenario. It may be a breaking change for many people using this library. Even if it seems correct.
Thus, I wrote the class being applied to be the inverse (left/right) of the actual picker's location.
This will ensure the picker and arrow appears on the same side.
I can open an issue to look into this if needed.
Testing:

Ensure Date pickers near the bottom of the page do not go off screen and instead open above the input
Ensure default positioning of all pickers and their arrows are on the left side of an input
Ensure default positioning of all pickers are on the bottom

I have now added support for the picker to dynamically adjust it's positioning, including auto position. This will move and rotate the picker to always be on the screen and where the input may move.
This was added in the place method which will be called on show, on window.resize, and fill (called on click).


added fix for Instant::now() subtraction overflow

under the case that an individual runs a piece of software depending on this crate, the runtime will panic due to the Instant being smaller than the duration since the UNIX epoch.
You can reproduce this bug by simply restarting your PC (whether its linux or windows, i observed it occurring on both) and then trying to run an application depending on this crate.

@RealAstolfo thanks a lot, very interesting edge case. I definitely should be careful with OS time.


Chart doesn't display on IOS Emulator(physical phone didn't check)

Chart don't work on IOS emulator work on the example presented in README.
Error Log:
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building CanvasTouchDetector(dirty, state:
_CanvasTouchDetectorState#ffa39):
Incorrect GestureDetector arguments.
Having both a pan gesture recognizer and a scale gesture recognizer is redundant; scale is a
superset of pan.
Just use the scale gesture recognizer.

The relevant error-causing widget was:
  CanvasTouchDetector
  CanvasTouchDetector:file:///Users/shaygettu/development/flutter_sdk/flutter/.pub-cache/hosted/pub.dartlang.org/time_chart-0.3.3/lib/src/chart.dart:470:28

When the exception was thrown, this was the stack:
#0      new GestureDetector.<anonymous closure> (package:flutter/src/widgets/gesture_detector.dart:245:14)
#1      new GestureDetector (package:flutter/src/widgets/gesture_detector.dart:263:9)
#2      _CanvasTouchDetectorState.build (package:touchable/src/canvas_touch_detector.dart:38:16)
#3      StatefulElement.build (package:flutter/src/widgets/framework.dart:4870:27)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4754:15)
#5      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11)
#6      Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#7      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4735:5)
#8      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4919:11)
#9      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4729:5)
...     Normal element mounting (91 frames)
#100    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3790:14)
#101    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6422:36)
#102    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6433:32)
...     Normal element mounting (7 frames)
#109    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3790:14)
#110    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6422:36)
#111    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6433:32)
...     Normal element mounting (32 frames)
#143    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3790:14)
#144    Element.updateChild (package:flutter/src/widgets/framework.dart:3540:18)
#145    _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:138:18)
#146    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2600:19)
#147    _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:156:12)
#148    RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1997:59)
#149    PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:918:15)
#150    RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1997:14)
#151    RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:230:7)
#152    _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:319:5)
#153    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#154    ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#155    RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:829:43)
#156    RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:931:32)
#157    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#158    _RenderSingleChildViewport.performLayout (package:flutter/src/widgets/single_child_scroll_view.dart:504:14)
#159    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#160    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#161    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#162    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#163    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#164    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#165    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#166    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#167    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#168    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#169    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#170    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#171    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#172    ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#173    RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:896:45)
#174    RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:931:32)
#175    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#176    MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#177    _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1005:7)
#178    MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#179    RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)
#180    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#181    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#182    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#183    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#184    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
#185    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#186    ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#187    RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:896:45)
#188    RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:931:32)
#189    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#190    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#191    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#192    RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
#193    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#194    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#195    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#196    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#197    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#198    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#199    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#200    ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#201    RenderStack._computeSize (package:flutter/src/rendering/stack.dart:570:43)
#202    RenderStack.performLayout (package:flutter/src/rendering/stack.dart:597:12)
#203    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#204    _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:321:14)
#205    RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7)
#206    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#207    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1731:7)
#208    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
#209    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:497:19)
#210    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#211    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
#212    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#213    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1081:9)
#214    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:995:5)
#218    _invoke (dart:ui/hooks.dart:151:10)
#219    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#220    _drawFrame (dart:ui/hooks.dart:115:31)
(elided 3 frames from dart:async)

Hi @ShaggyGettu, thanks for filling the issue.
Can you provide the flutter docter -v? I can't reproduce this issue.

[✓] Flutter (Channel stable, 2.10.5, on macOS 12.3.1 21E258 darwin-arm, locale en-IL)
    • Flutter version 2.10.5 at /Users/shaygettu/development/flutter_sdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5464c5bac7 (11 days ago), 2022-04-18 09:55:37 -0700
    • Engine revision 57d3bac3dd
    • Dart version 2.16.2
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/shaygettu/Library/Android/sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk-11.0.15.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

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

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] VS Code (version 1.66.2)
    • VS Code at /Users/shaygettu/development/Visual Studio Code.app/Contents
    • Flutter extension version 3.38.1

[✓] Connected device (2 available)
    • iPhone 13 Pro Max (mobile) • FA97B36E-9BC4-4539-B6E8-33A21C0A8DF7 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-4 (simulator)
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 101.0.4951.41

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

I've uploaded the 0.3.4 version to the pub.dev. thanks.


BootGrid Add / Edit from MySQL Database

Does anyone have working BOOTGRID code that does an add / edit to the table that refreshes the table and not the entire page?  I would really like to see how this is done as the documentation is very vague using server side MySQL.  Thank you I appreciate it!!!

I'm looking for the same feature.

You need to send it as an ajax request using the post option for bootgrid. see http://www.jquery-bootgrid.com/Examples/Index#data . Also, you will have to set up your models to hold the appropriate meta data needed for the grid to render correctly ( see the response json results on same example). The information is there and this is not a new/hidden feature. It is implied from the examples but should be easy to understand if you look at all parts of the example.

https://www.phpflow.com/php/addedit-delete-record-using-bootgrid-php-mysql/

or try out http://gijgo.com/grid/demos/jquery-grid-bootstrap


Bug with telepad

Issue Description:
When teleporting chestcart with Telepad across dimensions the items stored in the chest cart will get duped after teleport.
It doesnt happen for teleporting in the same dimension.
What happens:
When you move chestcart with items in on top of the Telepad and then initiate the teleport, the cart will teleport to designated cords in the specified dimension, the items in the chest cart will remain in the cart. But also the items will get spit on the ground on the place with telepad. This effectively dupes everything in the cart by spilling on the ground.
What you expected to happen:
Either the items spill on the ground, but will not get teleported with the cart. (this would be better, because for Cart teleporting we have ender rails/transceiver combo).
or
The items will get teleported with the cart, but no spillage on the ground.
Steps to reproduce:

Build a Telepad
Set the coords for different dimension (for example nether)
Get Chestcart and fill it with items
move the chest cart on top of the telepad
initiate the teleport.
???
Items contained in the chest cart will spill out on the ground
Chest cart will get teleported to other dimension still containing the items
...

Affected Versions (Do not use "latest"):

EnderIO: <IP_ADDRESS>4
EnderCore: <IP_ADDRESS>
Minecraft: 1.7.10
Forge: <IP_ADDRESS>6

Your most recent log file where the issue was present:
None

Am I right to assume that this is not going to be fixed in 1.7? I read that 1.7 EnderIO development is closed?

there will be a final release to fix some remaining bugs. We'll have to see if this one can easily be fixed. Also, as we are quite busy at the time, that may take a while.

a while like?


Add two-way binding to ClrDatagridHideableColumn

Signed-off-by: Wallabeng<EMAIL_ADDRESS>

Golden file needs some love too I guess, but there I need some instructions how to handle it. Just copy the compiled file over?

Everything updated and green now! Is it possible to add this to todays release?

Hi @Wallabeng, v0.13.6 and v0.12.6 are already out today. But we can include your fix in our next week's release 🙂


Globals not referencing collections with relationship fields in them.

Bug Report

Current Behavior
I'm trying to reference a collection from a global. Instead of building the server, the cli spits out an error:
node_modules/payload/dist/fields/config/sanitize.js:36
throw new errors_1.InvalidFieldRelationship(field, relationship);
^
InvalidFieldRelationship: Field Piece has invalid relationship ' WrittenPieces'.
at new ExtendableError (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/errors/APIError.js:22:15)
at new APIError (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/errors/APIError.js:38:9)
at new InvalidFieldRelationship (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/errors/InvalidFieldRelationship.js:9:9)
at /Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/fields/config/sanitize.js:36:27
at Array.forEach ()
at /Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/fields/config/sanitize.js:34:27
at Array.map ()
at sanitizeFields (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/fields/config/sanitize.js:16:19)
at /Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/globals/config/sanitize.js:61:57
at Array.map ()
at sanitizeGlobals (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/globals/config/sanitize.js:14:38)
at sanitizeConfig (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/config/sanitize.js:35:58)
at buildConfig (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/config/build.js:19:35)
at Object. (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/payload.config.js:10:25)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._compile (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/pirates/lib/index.js:136:24)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Object.newLoader [as .js] (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/pirates/lib/index.js:141:7)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Module.require (node:internal/modules/cjs/loader:1061:19)
at require (node:internal/modules/cjs/helpers:103:18)
at loadConfig (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/config/load.js:35:18)
at init (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/init.js:48:41)
at initSync (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/init.js:125:22)
at Payload.init (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/node_modules/payload/dist/index.js:154:29)
at Object. (/Users/ronanfuruta/Desktop/Dev/Client/halfway-there-cms/server.js:13:9)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:23:47 {
status: 500,
data: null,
isPublic: false,
isOperational: true
}
Node.js v18.12.0
This error only shows up if I'm referencing a collection that has reference fields inside of it. If I reference a collection that doesn't have relationships it works as expected.
Expected Behavior
I expect the global to be able to reference the collection.
Code
Global collection:
const FeaturedArticle = {
    slug: 'featuredArticle',
    versions: {
        drafts: true
    },
    fields: [
        {name: "test",
    type: "text",
},
      {
        name: "piece",
        type: "relationship",
        relationTo: "writtenPieces",
        hasMany: false,
        required: true,
        maxDepth: 3
      }
    ],
    access: {
        read: ({ req }) => {
          // If there is a user logged in,
          // let them retrieve all documents
          if (req.user) return true;

          // If there is no user,
          // restrict the documents that are returned

          return {
            _status: {
              equals: 'published',
            },
          };
        },
      },
};

export default FeaturedArticle;

Written Piece collection:
const WrittenPieces = {
    slug: 'writtenPieces',
    admin: {
      useAsTitle: 'title',
      listSearchableFields: ['content'],
      group: 'Content'
    },
    access: {
        read: ({ req }) => {
          // If there is a user logged in,
          // let them retrieve all documents
          if (req.user) return true;

          // If there is no user,
          // restrict the documents that are returned

          return {
            _status: {
              equals: 'published',
            },
          };
        },
      },
    versions: {
        drafts: true,
        maxPerDoc: 5
    },
    fields: [
        {
          label: "Banner Image",
            name: 'image',
            type: 'upload',
            relationTo: 'media',

        },
      {

        name: 'title',
        type: 'text',
        required: true,
      },
      {
        label: "Unique Slug",
        name: 'slug',
        type: 'text',
        required: true,
        index: true,
        admin: {

        validate: async (val, { operation }) => {
        var urlPattern = /^[a-zA-Z0-9_-]*$/
        if (!urlPattern.test(val)) {
          return 'Slug must be URL safe'
         }
          const response = await fetch(`http://localhost:3111/writtenPieces/${val}`);
          if (response.ok) {
          return 'This value is allready in use';

          }
          return true;

        },
      },
      {
        name: 'content',
        type: 'richText',
        required: true,
        admin: {
            elements: ["h1", "h2", "link", "indent", "ol", "ul"],
        }
      },
      {
        name: 'author',
        type: 'relationship',
        required: true,
        relationTo: 'authors'
      },
      {
        name: 'publishedAt',
        type: 'date',
        label: 'Published At',
        admin: {
          date: {
            // All config options above should be placed here
            pickerAppearance: 'dateOnly',
          }
        }
      },
      {
        name: "tags",
        type: "array",
        admin: {

        },
        fields: [{
            name: "tag",
            type: "relationship",
            relationTo: "tags",
            required: true
        }]

      }

    ]
  }

  export default WrittenPieces;

update: if I change the collection from 'writtenPieces' to 'written-pieces' it resolves the error. It must hav to do with this issue: #1316

Hey @ronan18 — yes, this is the same issue. I'm going to close this one in favor of the other one. Thank you for the report!


Ecto schema based model - Feature/11

Preliminary release of Ecto-based model. Should be tested with further development for refinement.


Rebuild to address failed build last time out

This PR rebuilds healpy to address the failed build that occurred when #44 was merged.

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

The pypy failures will probably be addressed by https://github.com/benfogle/crossenv/pull/85.

@conda-forge/healpy, this is ready, please merge at your earliest convenience.


Error in example code Try your first query

The example code for "Try your first query" includes an extra single quote ' at the end of the query.  The image of the query does not include the single quote.

Copying and pasting the example query into Security Center results in an error when executed.
Removing the extra single quote is successful when executed.

https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/advanced-hunting-query-language
Apologies, I'm not sure how to get the page information to populate here, but according to the contributing guidelines, the URL should also be acceptable.

Fair point, https://dataexplorer.azure.com/clusters/help/databases/Samples marks the apostrophe (single quote) as incorrect when it is present in the editor.
Based on my experience with MySQL, it is also incorrectly placed, missing a paired apostrophe on the other side of a text string.
(Quotes are mostly used as comment delimiters / text string delimiters in query-based languages.)
// Finds PowerShell execution events that could involve a download.
ProcessCreationEvents
| where EventTime > ago(7d)
| where FileName in ("powershell.exe", "POWERSHELL.EXE", "powershell_ise.exe", "POWERSHELL_ISE.EXE")
| where ProcessCommandLine has "Net.WebClient"
        or ProcessCommandLine has "DownloadFile"
        or ProcessCommandLine has "Invoke-WebRequest"
        or ProcessCommandLine has "Invoke-Shellcode"
        or ProcessCommandLine contains "http:"
| project EventTime, ComputerName, InitiatingProcessFileName, FileName, ProcessCommandLine
| top 100 by EventTime

I will open a PR to suggest removing the incorrectly added apostrophe/single quote, both in the full sample and the excerpt.


Create a contact info block

Add links to social networks (LinkedIn, Facebook, Instagram), phone number, email, Telegram username, etc.

Add home address


Zero-Copy Serialization/Deserialization

The pointer-free nature of succinct data-structures makes them very amenable to (de)serialization by simply casting their memory to/from a bunch of bytes.
Not only would this remove most (de)serialization costs, it could also enable very fast and simple on-disk storage when combined with mmap.
One might want to implement this via rkyv, but simply providing a safe transmute to and from bytes::Bytes (with a potential rkyv implementation on top of that) might be the simpler, more agnostic solution.

rkyv looks good, and adding that with an optional dependency (because I am quite keen on keeping it zero-dependencies) might be an option. I'll look further into it, because it seems like a nice additon.
Doing it myself by just casting raw data sounds painful though, because while rkyv offloads endianess somewhere into the frontend (i.e. the user has to decide what to do if I read it correctly), I'd have to handle that if I implement it myself (even if I do the same, I still have to keep it in mind). Maybe I am overthinking that though, I don't know.

When adding a new serialization framework, it's worth thinking about the serialization-breaking change of reducing stack size by changing Vec into Box in immutable data structures.

Endianess is a good point. But I think rkyv handles it somewhat ungracefully, by using feature flags, and I'm not sure what happens when you use two libraries that transitively use both archive_be and archive_le.

No using features is actually convenient for me, because I just disable all features, and let the downstream crate decide.

I think the same late descisions could be achieved with generic paramethers though? Without the conflict problem where different pieces of code want different endianness.
To give an example, my use case requires the ability to reproducibly produce these archives in a bit-perfect manner, so that they can be hashed/checksummed.

I mean, as long as you don't import serialized data from systems with opposite endianness, using only native endianness shouldn't create any issues, no?

Well if you're using the (de)serialization as way to create a data-exchange/file format (think .jpg not application instance specific .dat), then that format will want to decide on some endianess. In my case it's a file format for knowledge graphs, with the added bonus that you can query it without having to build any indexes first, just mmap and go. So it's always going to be in be.

Okay, I see where you are coming from, but exporting into pre-defined file formats using zero-copy serialization seems difficult.
For example, let's pretend you write a Wavelet Matrix that looks like the database file and can be directly serialized and deserialized to and from that format. The rank/select data structures still need to be written to file, if zero-copy deserialization is a goal, which will interleave the data format with junk data.
To solve that, the helper data structures needed to be excluded from the Archive format, but then the deserialization process needs to recalculate them, which negates any speedups gained from the zero-copy process.

I'm not sure I'm following. Do you mean undefined data caused by padding? Rkyv for example zeroes these to get determinism and also avoid accidental memory data leakage.

No, for example RsVec, the bit vector that supports rank and select (which enables Wavelet Trees), looks like this:
pub struct RsVec {
    data: Vec<u64>,
    len: usize,
    blocks: Vec<BlockDescriptor>,
    super_blocks: Vec<SuperBlockDescriptor>,
    select_blocks: Vec<SelectSuperBlockDescriptor>,
    rank0: usize,
    rank1: usize,
}

And I assume your data format only wants the data bits, but does not take the super_blocks and select_blocks into account (because why would the data format specify those). So if you serialize the WaveletTree into your data format, the actual bits in the vector (data) will sit next to all the bits of the supporting structures (blocks, super_blocks, select_blocks), which don't belong in your target format.
There are actually even more problems to this approach:

data is a vector of u64. So if you export it to big endian from a little endian platform, your data must be rearranged during serialization and deserialization, which destroys the zero-copy property.
this can be solved if the data is transformed into u8 and then stored, because now endianness doesn't matter anymore. However, this cannot be done with blocks, super_blocks, and select_blocks, because those aren't bit vector structures.
if the data is transformed into u8, you cannot transform it back into RsVec without copying, so all operations that work on RsVec need to be reimplemented for ArchivedRsVec (which is the one you want to serialize), but now the data looks different

So all in all, this is unfortunately not an easy issue, a lot of code needs to be written to support rkyv with a big endian serializer, and manually implement the operations in a way that you can call them on RsVec and ArchivedRsVec.

I would question that assumption and ask why shouldn't you include them? They are an essential component of the datastructure and enable their nice time complexities.
Not storing them would be a bit like storing only the leafs of a B-Tree.
More importantly, since succinct datastructures have a space complexity of ${Z+o(Z)}$ that support data is "asymptotically free", i.e. $\lim {support \over data}  = 0$ and it costs "nothing" to store it.
The only pitfall is that the support data should be deterministic.
Your points are related to what I tried to express with my previous musings about the serialization point.
I don't think that a separation between ArchivedRsVec and RsVec as Rkyv does is useful as they both have the same (immutable-write-once) property.
In my mind RsVec is more analogous to an ArchivedBitVec, since a writable BitVec is serialized/archived into a read-only RsVec, with an analogous deserialzation from RsVec to BitVec.
With that line of thought, I would make RsVec (but not BitVec) parametric over the Endinaness, always use that one on memory, and have every integer access go through the appropriate conversion.
I suspect this isn't as expensive as it sounds:

on platforms where the parameter is equal to the native type that conversion should simply get compiled away
"embedded" architectures like ARM can actually load both endianess (due to their common application in networking devices)
in the cases where the CPU has to actually perform a conversion (e.g. my data format on an x86), I'm doubtful that the added BSWAP instruction will actually be measurable, given that all the operations are heavily memory bound
having everything munged together into a single contiguous allocation without indirections and bounds checks would probably be faster than the current std::Vecs (albeit [a lot?] less safe)

I would question that assumption and ask why shouldn't they be included?

Perhaps I still don't understand what you are doing, but it sounded like you want the data structure to serialize into an existing format (you mentioned jpg as an example for a specced format, and I assume you mean a database index format).
Obviously, the support data structures are proprietary and thus do not adhere to any existing format specification, hence my concerns.
But now it seems you don't want to do that.

I don't think that a separation between ArchivedRsVec and RsVec, as Rkyv suggests, is useful as they both have the same immutable-write-once property.

This is not the reason why rkyv suggests this pattern. Zero-copy can only be achieved if the data structure is both immutable, and does not contain pointers, and no allocating data structures (like Vec).
RsVec is immutable, but it does contain pointers (and currently it also contains Vecs).

A Vec cannot be constructed by zero-copy deserialization, because it has to own the data (which it will free at when dropped), and it also wants to manage its own allocation. A pointer creates problems during deserialization, because it has to be stored with a relative offset, but when recreating the data structure, it has to be turned into an actual pointer again (so even more work beside mmap).
Box can also not be created by zero-copy deserialization because it, too, has to own the data.

Finally, the largest hurdle that ArchivedRsVec tries to overcome is, again, endianness:
If you want to store the vector as big endian and then mmap it into memory, you cannot recreate a RsVec with zero-copy deserialization from it, because RsVec must use the native endianness (which commonly is little endian). So to avoid a copy, you have to keep the data in ArchivedRsVec and handle the endianness by duplicating the functionality of RsVec for that struct.

Perhaps I still don't understand what you are doing, but it sounded like you want the data structure to serialize into an existing format (you mentioned jpg as an example for a specced format, and I assume you mean a database index format).

I'm defining my own spec-ed database index format similar to HDT.
The JPG analogy was meant to clarify that it is meant as a standardized interchange format, and not an ad-hoc format that can change with every release.

Obviously, the support data structures are proprietary and thus do not adhere to any existing format specification, hence my concerns.

Fair point, but I feel like I would have that problem with any implementation, even if I managed to find the most textbook DArray implementation out there. The alternative would be to build my own, but then I'd be having the same problem on top of reinventing the wheel.
I figured, given that I'll have this problem regardless, that I'm just gonna go with the library made in Germany™ (I'm from Bremen), then it'll at least look nice if we ever co-author a paper, and might give Rust more street-cred in Germany. 🤣

This is not the reason why rkyv suggests this pattern. Zero-copy can only be achieved if the data structure is both immutable, and does not contain pointers, and no allocating data structures (like Vec).

My point was that from an API/user perspective RsVec behaves like an archived version of BitVec, regardless of it's current internal implementation (which would require an additional archival step to get rid of the absolute pointers and to coalesce the allocations).

* A `Vec` cannot be constructed by zero-copy deserialization

Yeah when I said "munged together into a single contiguous allocation" I meant that the reworked implementation would get rid of the Vecs and manage the memory itself.

Finally, the largest hurdle that ArchivedRsVec tries to overcome is, again, endianness:

I was assuming (based on a quick glance and the way other implementations work) that the implementation uses SIMD only to popcntthe bytes of the lowest block/chunk level, which shouldn't be affected by endianness? In which case doing the conversion on the fly for the other levels should have been feasible, but I should probably dig into the code to see where problems might arise.

Edit: I am not saying it is impossible btw, I am just saying it involves major refactoring of the entire code base, and a lot of efforts to keep the efficiency (because having more indirections would suck)

Sure sure, my hunch is that it might be a zero sum game, some perf improvements from removing vector bounds checks, some slowdown from having to do some on the fly endianness conversion. But I'll probably know more once I've properly read through the entire codebase. I'm aware that it would take some major rework. I'm also definitely not asking you to do it, I'd do it myself as part of the wavelet matrix. 😄

I pushed some changes to a new branch dev_zero_copy.
All functionality of RsVec is now moved to traits that abstract over the data layout. This way it should be possible to generate an ArchivedRsVec (gated behind a crate-feature) that also implements the trait.
As it stands, this constitutes a breaking change, because you now have to import the trait to access methods on RsVec. This could be fixed by renaming the trait methods and then providing convenience functions in RsVec.

I just started some work on a minimalist approach to this, using a combination of techniques from minibytes to allow for extensible Bytes definitions (to allow for byte sources like mmaped files), and zerocopy to be able to  use Vec<T> as a zerocopy byte source when T itself conforms to the FromBytes/AsBytes traits from  zerocopy.
This would still require some form of archive format (i.e. a header with length and layer count), but most of the data (data/blocks/...) can just be sliced from the binary data source.
The main reason I'm writing this comment though is that I've noticed that
pub struct WaveletMatrix {
    data: Box<[RsVec]>,
    bits_per_element: u16,
}

appears to have the information about the number of layers redundantly.
Isn't bits_per_element == data.len(), in which case it would be sufficient to store only the data smartpointer?
Is this an atavism from a version in which data was only a single RsVec  like most other implementations that I've seen? In which case my guess would be that the split is because of performance as it allows you to remove some counting ops in the new layers?
Really awesome implementation btw, I'm super impressed. It smells like you were able to justify working on it as part of your PhD 😆

Oh damn, didn't even realize that. I was too occupied not putting num_elements into the struct to notice that bits_per_element is also not required.
But it actually cancels out, because I also forgot to add serde support to the WaveletMatrix, so I can still change it without breaking anything.

data was only a single RsVec like most other implementations that I've seen?

Really? I thought about doing that, but it seemed counterproductive to me, as it would complicate the rank-query patters with no real benefit. The layers are still so far apart that cache efficiency isn't increased. And the small memory gains due to packed RS-support structs are negligible.

It smells like you were able to justify working on it as part of your PhD

No, I handed in my master thesis, and therefore had some free time. This ends Monday, though, so let's see if I can find that justification eventually.

as it would complicate the rank-query patters with no real benefit

You're right, I just checked again, and I remembered writ's actually only the terminusdb implementation that does it like that. 😅
I think the reason they do it is because it makes loading from memory a bit more straightforward, but I agree that that is probably not a worthy tradeoff.

I handed in my master thesis

Congratulations! ✨🎉 🍻🎉✨

Whops, sorry for fat-finger closing the issue 🙇♂.
I've created a pull request that removes bits_per_element.

I've come to the conclusion that APIs should in general return usize*

*but use specific sizes in the structs 😆
Could we fixate the SuperBlockDescriptor and SelectSuperBlockDescriptor fields from usize to concrete types?
SuperBlockDescriptor zeroes should also fit into an u16 with the current?
const SUPER_BLOCK_SIZE: usize = 1 << 13;

The SelectSuperBlockDescriptor is a bit trickier, (2^(32 + 13)) bits = 4.39804651 terabytes, that's right on the edge of being reasonably large enough for encoding all real world consecutive runs of 0s or 1s, but it's also small enough that one can construct a theoretical counter example on a supercomputer or in a mmaped file. So it might be better to err on the side of caution and use an u64?
The SelectSuperBlockDescriptor is also the only thing that's giving me a bit of a headache right now in terms of serialisation because it's the only thing where the size is dependent on the data distribution and not only the length of the bitvector. 😅
Lastly the fields len, rank0, rank1 of RsVec should all be u64.
Btw this should read
/// The indices do not point into the bit-vector, but into the ~~select~~super-block vector.

right?

SuperBlockDescriptor zeroes should also fit into an u16 with the current?

No, the counter isn't reset between super-blocks, lest you'd need to generate a prefix-sum of all super-blocks before the query.

So it might be better to err on the side of caution and use an u64?

Lastly the fields len, rank0, rank1 of RsVec should all be u64.

Yes. I'll add it to #9.

Btw this should read...

Yes

The SelectSuperBlockDescriptor is also the only thing that's giving me a bit of a headache right now in terms of serialisation because it's the only thing where the size is dependent on the data distribution and not only the length of the bitvector.

Can't you just add a value to the file header that tells the loading code how big the slice is?

No, the counter isn't reset between super-blocks, lest you'd need to generate a prefix-sum of all super-blocks before the query.

Ah gotcha, sorry u64 it is then 😄

Yes

I'll create a PR

Can't you just add a value to the file header that tells the loading code how big the slice is?

True, it's just something that needs to be stored per layer, so Header | Blocks becomes something like Header | PerLevelHeader | Blocks, not really a big deal though 😅.
Btw which memory layout do you prefer?  Storing the Block/SuperBlock/...s so that each level is stored consecutively [([B], [SB], [SSB])], or by block type so that each type is stored consecutively regardless of level origin([B], [SB], [SSB]). My hunch is that there is more locality level-wise for small wavelet matrixes? But if you had something like slab allocation planned for the future, it might make sense to have things with the same size in the same allocation?

When you load a WaveletMatrix struct, the Box and Vec members contain their sizes. How do the zerocopy crates load a vec?  Or is the archived vec continuous with its header, without indirection?

Maybe this requries some preliminaries ^^'
I can only speak for the way I would do it with the anybytes library I adapted from minibytes.
I'm personally not a fan of pointers in zerocopy data (Rkyv for example stores relative pointers from what I understand), because they need to be recursively validated, so validation is potentially $$O(n)$$. They are also generally expensive.
What I do try to do is store the data as flat and with as little "dynamic" data as possible, using zerocopy datatypes that don't have invalid bit-patterns.
You end up with a format that is not generic like rkyv or serde, but imho much cleaner/nicer.
Structs that implement zerocopy::FromBytes/zerocopy::AsBytes are really nice in this regard. You only need a correctly aligned, correctly sized byte slice and parsing becomes a (safe) pointer transmute. You might get a junk value if you read junk, but it will never be an invalid or unsafe value.
Similarly zerocopy allows you to convert &[u8] to &[T] based on the length of the slice.
Note: What the anybytes, minibytes and ownedbytes crates all do is store an "owner" of the byte source in an Arc, and then keep a slice ref/pointer next to that owner in a smart pointer like struct. The source needs to have a stable address that it derefs to, but this way you get something that has all the avantages of an Arc, with the performance of a reference.
What I did there with the PackedSlice is simply wrap one of these Bytes objects annotated with some PhantomData zerocopy type, to allow for convenient and safe conversion to a reference of the type. So you can safely transmute to and from a vector of the thing (interpreted as a byte owner), to the bytes, and back.
So:
In the case of the wavelet matrix I would store the number of bits and layers in a header, followed by a slice of select super block counts for each layer (with the length of the layer count). And then the blocks in one of the above orders. When parsing the header one would calculate the number of bytes each slice should take up based on the previously read header information.

I just misread your question 😅.
I don't plan on adding slab allocation or anything, because this isn't a dynamic data structure, and thus it shouldn't be worth messing with allocation here.
The only thing you should keep in mind is that I do plan on merging blocks and super_blocks into a singular structure and vector (#9), since you only need to access the blocks inside one super block, and thus you can increase locality with that.
I also don't think changing the layout here gets any improvements in locality, because for that, multiple block-lists would have to share cache lines, which shouldn't happen for non-trivial vectors. So for simplicity, [([B], [SB], [SSB])] sounds better.

Gotcha 😄!
I do see how that's potentially nice for rank, but wouldn't it significantly reduce the locality in select operations though, because there you have to binary and linearly search through the super_blocks?

Good point, that needs to be evaluated during implementation

I did some thinking. Maybe it's not a good idea to try to provide the zerocopy serialization/deserialization as a pre-packaged one-size-fits-all solution. Someone designing a on-disk file format, will have thoughts and insights about the layout themselves. For example if you store multiple wavelet-matrixes with the same alphabet but different orderings, you can share that information between them, whereas an implementation provided by us would have to replicate that into every serialised instance.
So I think it might be better to make the internals part of the public interface, and expose constructors that can take something like the generic read-only PackedSlice<...>s.
I mean the cool thing about succinct vectors is that they are somewhat simple Data-structures, they are somewhat canonical by construction (modulo hyperparameters).

so you suggest just a from-raw-parts layer, maybe some conversions with common libs and then let downstream crates handle it?

Yeah exactly. Focusing on making the raw parts stable and zerocopy seems to be the better time-invest, compared to trying to create a full collection type that's just gonna be part of some larger thing in a downstream crate anyways.
I mean low-level stuff like succinct data-structures don't really exist outside of some specialised application that composes them into something useful I guess.

Yeah, that actually sounds reasonable, and gets rid of a lot of inelegant decision-making. And the raw-parts are pseudo-stable anyway, since I don't want to break serde compatibility between versions.
This also means that it's probably possible to implement the necessary parts of this issue without a major version bump, theyll just break alongside everything else when I do one.

Maybe.
It requires changes to the collections that own the bytes holding the data/blocks from a Vec to something with shared ownership of the (read-only) bytes. So:
pub struct RsVec {
    data: Vec<u64>,
    len: usize,
    blocks: Vec<BlockDescriptor>,
    super_blocks: Vec<SuperBlockDescriptor>,
    select_blocks: Vec<SelectSuperBlockDescriptor>,
    rank0: usize,
    rank1: usize,
}

Becomes
pub struct RsVec {
  len: usize,
  pub(crate) rank0: usize,
  pub(crate) rank1: usize,
  data: PackedSlice<u64>,
  blocks: PackedSlice<BlockDescriptor>,
  super_blocks: PackedSlice<SuperBlockDescriptor>,
  select_blocks: PackedSlice<SelectSuperBlockDescriptor>,
}

Or any other ByteOwningThing instead of PackedSlice that you prefer (I'm willing to write the missing docs and bump the anybytes crate to 1.0.0 if you only want non-pre-release dependencies).
I think it should serialise similarly with Serde, but it would probably require a custom (de)serializer implementation that creates a byte owning Vec and casts that to a PackedSlice.

It also just occured to me that serde support should probably be a feature flag for downstream crates which don't want it as a dependency (as it's often a major contributor to compile times).
In that case zerocopy and serde could be mutually exclusive features (if we don't want to write custom (de)serializers or it turns out that it's not possible for whatever reason).

I think it would be best if zerocopy/anybytes was an optional feature that would replace the struct. This way everything stays normal and optimized for everyone who doesn't need this feature, and we only lose compatibility between the serde-version and the packed-version

Yeah I think that's fair.
I did some preliminary benchmarks, and saw no impact on performance (the PackedSlice is essentially just a regular fat pointer, so not any different from a Vec and the safe transmute is also zero cost), but the #[repr(C)] on blocks alone might make a difference in optimisability, so I can't guarantee that it won't have an impact in every case.
One interesting side effect, wrt. performance, of using the PackedSlices is that cloning RsVecs actually becomes super duper cheap, but I'm not sure if that has any merit 😆
I also just realized that there is a third option of me implementing serde for PackedSlice, I think serde doesn't distinguish between sequence types in the serialized output, so it might be that such an implementation was automatically backwards compatible with the current Vec based approach.
I've created a draft pull request to make discussions about the code easier at #14.
Feel free to take it for a benchmark spin. I currently don't have access to a large x86, only an aarch64.
ARM SIMD support is also on my wishlist but that's a different issue 😉

Annoyingly I check that invariant of the PackedSlice at creation time so subsequent dereferences could just use an unsafe path relying on that invariant
Wouldn't that induce !Unpin?

Yes, definitely, but the way anybytes::Bytes works, is that it takes ownership of whatever implements unsafe trait ByteOwner in an Arc. It then calls ByteOwner::as_bytes() -> &[u8] on the thing, with the required invariant that that the returned address must be stable (Pin in a sense, but requiring that as a Bound would only serve as documentation as [u8] is itself is trivially Unpin, but it's the reason why the trait is unsafe).
Since PackedSlice is immutable, because Bytes is immutable, we know that that for example an encapsulated Vec<T>, will never grow, and thus never change it's reference.

I just stumbled upon sux by chance, and their epserde approach is pretty much what we've also decided to use, so there's some prior art there.
I've look at their code and it's a less flexible than what we have imho, so it's also nice that we can make some improvements in this space.
From friday on I'll be in Sicily for two weeks to harvest some olives, so I might find the time to push this a bit 😁

Wouldn't that induce !Unpin?

Good thing we had this convo! It caused me to take a closer look at the code I inherited from minibytes and I actually discovered a use after free scenario because you could get a mutable pointer to an owning Vec and grow it so that the slice no longer points to valid memory. This is fixed in the new 0.6.0 release which I just pushed (It also includes a much cleaner downcast and downgrade/upgrade API).

So, since I've been doing some work here anyway, whats the status on this?
I tend to agree with your last approach that we only expose some constructors and add some tags on the structures (guarded by a crate feature obviously), and leave the details of serialization to downstream crates.

It was relatively easy to replace the Vecs with a read-only zerocopy-bytes based one: https://github.com/triblespace/vers/tree/zerocopy
I just never got around to write an de/serialization example itself (the epsilon part of the epsilon serialization), because integrating vers into my storage layer was a bit harder than anticipated and then there were other things coming up at work.
But the tests pass.


Add support for docker-compose.yml files

This PR adds support for docker-compose.yml files in the docker package. The approach was to add additional handlers alongside docker/lib/dependabot/docker, i.e. docker/lib/dependabot/docker_compose.
To address the duplication of code resulting from identical logic in e.g. parsing Docker image names or computing resulting updates some shared logic was extracted to modules under docker/lib/dependabot/docker/utils, which then get pulled in as mixins. For tests, I've added e.g. docker/spec/dependabot/docker/common/shared_examples_for_docker_update_checkers.rb, since most of the code is exactly the same.
Suggestions are welcome, especially on:

the correct location for the docker_compose folder;
the best way to share common Docker logic between docker and docker_compose;
whether naming this as docker_compose is the right way. I see that some languages already support multiple package managers in Dependabot (e.g. go:dep and go:modules), so I'm wondering if this should be named docker:compose in this list. I'm trying to figure out where that is configured, just searching for go:modules doesn't yield results.

Closes #390
[dependabot-core-dev] ~/dependabot-core $ bin/dry-run.rb docker_compose buildkite/agent --dir .buildkite
warning: parser/current is loading parser/ruby26, which recognizes
warning: 2.6.5-compliant syntax, but you are running 2.6.2.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
=> fetching dependency files
=> dumping fetched dependency files: ./dry-run/buildkite/agent/.buildkite
=> parsing dependency files
=> updating 1 dependencies

=== golang (1.12)
 => checking for updates
 => latest version from registry is 1.13.1
 => latest resolvable version is 1.13.1
 => requirements to unlock: own
 => requirements update strategy:
 => updating golang from 1.12 to 1.13.1

    ± docker-compose.yml
    ~~~
    5c5
    <     image: golang:1.12
    ---
    >     image: golang:1.13.1
    ~~~

Thanks @PombeirP! Would love to see support for docker-compose.yml land ❤

@feelepxyz Don't know what is happening but the tests show as failing in the PR, while there's a newer CircleCI build that passed: https://circleci.com/gh/dependabot/dependabot-core/12398. Something fiddly with the CI integration with GH?

@PombeirP @feelepxyz It looks like the tests are passing again.

@PombeirP thanks for the contribution! Just a heads up that I won't be able to get to this immediately but hopefully get some time in the next week or so to review it thoroughly to make sure we understand the changes and can maintain it going forward.

@feelepxyz Sure, totally understand it, thanks for the transparency.

Looking forward to this

Also looking forward to this getting in!

@pedropombeiro Can you tell us why this PR was closed? Would love to use this.

@erkannt There was no feedback from reviewers for about 4 months, and because I keep a widget of open PRs in VS Code, I decided to clean that up a bit.

@erkannt There was no feedback from reviewers for about 4 months, and because I keep a widget of open PRs in VS Code, I decided to clean that up a bit.

😭

Think we can re-open this? Who do we have to prod to get some review feedback?

@rebelagentm could you have a look again?


Extra information in the pkbar

Is there a way to add epoch number in the progress bar?

Hi,
Now you could pass epoch (epoch) and total epochs (num_epochs) when initialize kbar.
kbar = pkbar.Kbar(target=train_per_epoch, epoch=epoch, num_epochs=num_epochs, width=8, always_stateful=False)

which will print epoch number like below
Epoch: 1/3

#5


The first install of chef shows an error trying to removing an existing install

The first time install of Chef Client looks like something went wrong as it can't remove the previous install directory:
 [ec2-52-88-252-105.us-west-2.compute.amazonaws.com] removing /opt/chef...
 [ec2-52-88-252-105.us-west-2.compute.amazonaws.com] mv: cannot stat ‘/opt/chef’: No such file or directory

need to know the distro.  someone changed behavior of rm -rf that has been stable for at least 30 years...

oh no, that's mv right.  fuck.


bug(mat-checkbox): Checkbox not rendered in multi-column layout on Chrome (Version 103.0.5060.53 (Official Build) (64-bit))

Description
In multi-column layout, using an unordered list, the mat-checkbox is no longer rendered/visible on Chrome Browser.
The Bug maybe relates to https://github.com/angular/components/issues/19089
Reproduction
https://stackblitz.com/edit/angular-dcfswq-yfp4aw?file=src/app/checkbox-overview-example.css
Steps to reproduce:

Create an unordered list with each checkbox being wrapped by a list item tag
Set column-count: 2; on the unordered list
Open Page in Chrome Version 103.0.5060.53

Expected Behavior
All Checkboxes are visible and selectable.

Actual Behavior
Starting with the Second Row the Checkboxes are no longer visible. If I click on the Position of the last Checkbox ('Warn'), the first Checkbox gets selected (Primary).

Environment

Angular: 14, 12.2.13
CDK/Material:14.0.3, 12.2.13
Browser(s):Version 103.0.5060.53 (Official Build) (64-bit)
Operating System (e.g. Windows, macOS, Ubuntu): Windows

I am also able to reproduce this on a Window machine

This is definitely some sort of browser bug, because adding .mat-checkbox { transform: translateZ(0); } fixes it.

@crisbeto  position: relative on the same class also fixes the problem


PluralSight stop working again

URSL e.G:
1)youtube-dl.exe --cookies "%SCRIPT_DIR%cookies.txt" "https://app.pluralsight.com/player?course=java-fundamentals-language&author=jim-wilson&name=java-fundamentals-language-m0&clip=0&mode=live"

youtube-dl.exe --cookies "%SCRIPT_DIR%cookies.txt" "https://app.pluralsight.com/player?course=java-fundamentals-language&author=jim-wilson&name=java-fundamentals-language-m1&clip=4&mode=live"

Please follow the guide below
-New command VEBOSE MODE:
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--cookies', 'C:\Users\Administrator\Downloads\youtube-dl\cookies.txt', 'https://app.pluralsight.com/player?course=ja
va-fundamentals-language&author=jim-wilson&name=java-fundamentals-language-m1&clip=4&mode=live', '--verbose']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2018.08.28
[debug] Python version 3.4.4 (CPython) - Windows-7-6.1.7601-SP1
[debug] exe versions: none
[debug] Proxy map: {'no': '<IP_ADDRESS>'}
[pluralsight] java-fundamentals-language-m1-4: Downloading JSON metadata
[pluralsight] java-fundamentals-language-m1-4: Downloading mp4-high-widescreen viewclip graphql
[pluralsight] java-fundamentals-language-m1-4: Waiting for 2 seconds to avoid throttling
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to
update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpc4srko6s\build\youtube_dl\YoutubeDL.py", line 792, in extract_info
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpc4srko6s\build\youtube_dl\extractor\common.py", line 502, in extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpc4srko6s\build\youtube_dl\extractor\pluralsight.py", line 409, in _real_extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpc4srko6s\build\youtube_dl\extractor\common.py", line 1281, in _sort_formats
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest versio
n; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
**New command fore preview video Still working fine **
C:\Users\Administrator\Downloads\youtube-dl>youtube-dl.exe --cookies "%SCRIPT_DIR%cookies.txt" "https://app.pluralsight.com/player?course=java-fundame
ntals-language&author=jim-wilson&name=java-fundamentals-language-m0&clip=0&mode=live" --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--cookies', 'C:\Users\Administrator\Downloads\youtube-dl\cookies.txt', 'https://app.pluralsight.com/player?course=ja
va-fundamentals-language&author=jim-wilson&name=java-fundamentals-language-m0&clip=0&mode=live', '--verbose']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2018.08.28
[debug] Python version 3.4.4 (CPython) - Windows-7-6.1.7601-SP1
[debug] exe versions: none
[debug] Proxy map: {'no': '<IP_ADDRESS>'}
[pluralsight] java-fundamentals-language-m0-0: Downloading JSON metadata
[pluralsight] java-fundamentals-language-m0-0: Downloading mp4-high-widescreen viewclip graphql
[pluralsight] java-fundamentals-language-m0-0: Waiting for 3 seconds to avoid throttling
[debug] Default format spec: best/bestvideo+bestaudio
[debug] Invoking downloader on 'https://vid.pluralsight.com/clips/resolution/62466baa-ab38-4982-99da-b73844c0826f/current/mp4/1280x720.mp4?Rwy2as7PJO2
Fu1YmVpc32aV7Bjf27agN5MGB1kHYQhbBCwi0rGXtJ9lWMon-tBGv6mP-s71iemI4f8RznGuLRpT1cP3unUs5bCHHZqdqMtyOTlmaPmztIQxddQGz6LKrbBT2TwYaJOhR_jUbsrY2gMg551-00_n5m
p-nF1UFp78GcUxJrU41qLABGjXa'
[download] Course Overview-java-fundamentals-language-m0-01.mp4 has already been downloaded
[download] 100% of 6.46MiB
What is the purpose of your issue?

[X ] Bug report (encountered problems with youtube-dl)
[X ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[x] Other

Description of your issue, suggested solution and other information
can't dwonload fro mpluarl sight again

Most likely expired cookies. Anyway for any further work on the issue you must provide account credentials.

i attached the account credentials.... as you can see i still have  time on
it.
or i did in that time of opening the bug.
<EMAIL_ADDRESS>Saf57pAs015.0561161816273n
On Sat, Sep 1, 2018 at 12:31 PM Sergey M<EMAIL_ADDRESS>wrote:

Closed #17396 https://github.com/rg3/youtube-dl/issues/17396.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/rg3/youtube-dl/issues/17396#event-1821828858, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AlPEo8bbZ8YZwyrA9pducjnk2IwY4z-bks5uWlPkgaJpZM4WUwLi
.

HTTP Cookie File downloaded with cookies.txt by Genuinous @genuinous
This file can be used by wget, curl, aria2c and other standard compliant tools.
Usage Examples:
1) wget -x --load-cookies cookies.txt "https://app.pluralsight.com/library/"
2) curl --cookie cookies.txt "https://app.pluralsight.com/library/"
3) aria2c --load-cookies cookies.txt "https://app.pluralsight.com/library/"

.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	__cfduid	d4c3076ced540e0557eddcb93448c9d861525892785
.pluralsight.com	TRUE	/	FALSE	0	AMCVS_70D658CC558978FF7F000101%40AdobeOrg	1
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	ajs_group_id	null
.pluralsight.com	TRUE	/	FALSE	0	s_cc	true
billing.pluralsight.com	FALSE	/	FALSE<PHONE_NUMBER>	_sdsat_db_employee_range	N/A
.pluralsight.com	TRUE	/	FALSE	0	IR_gbd	pluralsight.com
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	IR_PI<PHONE_NUMBER>779.zck7rnv5oj
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	_psga	GA1.2.1047094905.1525892736
dps.pluralsight.com	FALSE	/	FALSE<PHONE_NUMBER>	clm_id	5af346f53bb55b5d02b299ba
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	bf_lead	1vrl8e535f0o00
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	cto_lwid	243736db-f24e-4c84-b328-a99c3d824704
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	ps_visNum	1
www.pluralsight.com	FALSE	/	FALSE<PHONE_NUMBER>	_sdsat_db_employee_range	N/A
.pluralsight.com	TRUE	/	FALSE	0	IR_7490<PHONE_NUMBER>578%7C0%7C1525892746578
billing.pluralsight.com	FALSE	/	FALSE	0	_sdsat_ktsProfile	New-Direct
.pluralsight.com	TRUE	/	FALSE	0	check	true
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	midCheckout	1
.billing.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	_ceg.s	p9ffas
.billing.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	_ceg.u	p9ffas
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	ei_client_id	5b0ba8e82a146d001695a07b
.pluralsight.com	TRUE	/	FALSE	0	s_ht<PHONE_NUMBER>435
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	mbox	PC#82749ccb9224496e96202ab96ded1037.26_20#1590735353|session#9ded7a09ac3740ff87947093fed33195#1527492474
.pluralsight.com	TRUE	/	FALSE	0	s_hc	2%7C21%7C0%7C0%7C0
www.pluralsight.com	FALSE	/	FALSE<PHONE_NUMBER>	ps_visNum	2
get.pluralsight.com	FALSE	/	TRUE	0	BIGipServersj11web-app_https	!J+tw4nQ4gtC14fL+0lRBM0wOTlTd7yv/SBNddlOHUHR+zi8COnhjUlzkh12g+O10iRH/51XcSdNNKLw=
.pluralsight.com	TRUE	/	FALSE	0	prism-cookienotify<PHONE_NUMBER>247
app.pluralsight.com	FALSE	/	FALSE<PHONE_NUMBER>	_sdsat_v03 - Global - User ID	ebebe4da-228a-4d0b-bac6-51b4837d8f50
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	ps_optout	0
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	AMCV_70D658CC558978FF7F000101%40AdobeOrg<PHONE_NUMBER>%7CMCIDTS%7C17753%7CMCMID%7C76031104142100691492642019263335257792%7CMCAAMLH-1528005542%7C6%7CMCAAMB-1533816155%7C6G1ynYcLPuiQxYZrsz_pkqfLG9yMXBpb2zX5dvJdYQJzPXImdj0y%7CMCOPTOUT-1533823358s%7CNONE%7CMCAID%7CNONE%7CMCSYNCSOP%7C411-17687%7CvVersion%7C2.1.0
.pluralsight.com	TRUE	/	FALSE	0	s_sq	pluralsight.united.dev%3D%2526c.%2526a.%2526activitymap.%2526page%253Dhttps%25253A%25252F%25252Fapp.pluralsight.com%25252Flibrary%25252Fcourses%25252Fspark-2-building-machine-learning-models%25252Ftable-of-contents%2526link%253DDownload%252520exercise%252520files%2526region%253Dps-main%2526.activitymap%2526.a%2526.c%2526pid%253Dhttps%25253A%25252F%25252Fapp.pluralsight.com%25252Flibrary%25252Fcourses%25252Fspark-2-building-machine-learning-models%25252Ftable-of-contents%2526oid%253DDownload%252520exercise%252520files%2526oidt%253D3%2526ot%253DSUBMIT
app.pluralsight.com	FALSE	/	TRUE<PHONE_NUMBER>	NPS_a97f541b_last_seen<PHONE_NUMBER>883
.pluralsight.com	TRUE	/	FALSE	0	__cfruid	12f4def139f753753b67dcc399c193f87d2b9c6f-1534931575
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	ps_trk	1
www.pluralsight.com	FALSE	/	FALSE<PHONE_NUMBER>	ps_infl	0
.pluralsight.com	TRUE	/	TRUE<PHONE_NUMBER>	www-status-production	1
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	ajs_user_id	%22610b3b2a-69f1-4855-9e20-867a8144fcfc%22
.pluralsight.com	TRUE	/	FALSE<PHONE_NUMBER>	ajs_anonymous_id	%22975ba2aa-dc94-4340-bfc2-56703dbb3c38%22
.pluralsight.com	TRUE	/	TRUE<PHONE_NUMBER>	PsJwt-production	eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJoYW5kbGUiOiI2MTBiM2IyYS02OWYxLTQ4NTUtOWUyMC04NjdhODE0NGZjZmMiLCJpYXQiOjE1MzQ5NDU3MjcsImV4cCI6MTUzNTU1MDUyN30.hFVC3QJMUl4vLkdupO_HqmkqJ2cQ5fZg-kbpwfX8srE

i attached the account credentials.... as you can see i still have  time on it.
or i did in that time of opening the bug.
<EMAIL_ADDRESS>Saf57pAs015.0561161816273n


:arrow_up<EMAIL_ADDRESS>

To just upgrade the as-odd-tiles apm

Hi @spongecattle, thanks for your PR. I have updated that branch against master, so that it can be tried again. I am going to close this PR for now, but it’d be great to know if you tried it out and if it worked for you.
Thank you! :bow:

OK, but thanks anyway @as-cii


weak property in Sendable type leaks implementation detail

Describe the bug
Using weak on a Sendable class leads to a bad diagnostic.
Steps To Reproduce
final class A: NSObject, Sendable {
    lazy var a: String = "test"
}

Expected behavior

Stored property 'a' of 'Sendable'-conforming class 'A' is mutable

Actual behavior

Stored property '$_lazy_storage$_a' of 'Sendable'-conforming class 'A' is mutable

Environment (please fill out the following information)

OS: macOS 13.0
Xcode: 14.0 beta 4
Swift: 5.7 (swiftlang-<IP_ADDRESS>.7 clang-14<IP_ADDRESS>)

Tracked internally as rdar://86926732

This is still happening on Swift 6.


Make gregorian calendar standard rather than option.

resolution_fixed   |    by<EMAIL_ADDRESS>
Suites we've inherited from the Met Office have the Gregorian calendar as an optional configuration.
Our suites would be simpler if they just used the Gregorian calendar and there was no option.

Issue migrated from trac:359 at 2024-01-31 18:33:46 +1100

<EMAIL_ADDRESS>commented

Change made in u-bf481 [107445]
https://code.metoffice.gov.uk/trac/roses-u/changeset/107445/.
All DECK suites should be based on this.

<EMAIL_ADDRESS>changed status from assigned to closed

<EMAIL_ADDRESS>set resolution to fixed


Search returns Uncaught TypeError: Cannot read property 'search' of undefined

I am populating the table inside an ajax call
//ajax
...
success: function(data) {
    $("#my-table").bootgrid().bootgrid("append", data.data);
}
...

Everything works except search which returns the error
Uncaught TypeError: Cannot read property 'search' of undefined

line 180 is where it breaks
...
 column.converter.to(row[column.id]).search(searchPattern) > -1)
...

I had the same issue.  Just add these 2 lines right above line 180.
if(row[column.id] === undefined)
    continue;

Please provide me a jsfiddle so I can see whats going on. Thanks.

Be sure to put all the attributes to rows in the html section, this error appeared to me because I had not put data-type = "numeric" to a row of numbers.
Hope this help.


Proof of concept JIT compiler

Proof of concept for a JIT(just in time) compiler, that compiles python functions down to native code.
This uses https://github.com/bytecodealliance/wasmtime/tree/main/cranelift to do the heavy lifting of generating the native code.
Currently this can successfully compile the following:
def foo():
    a = 9_223
    return 10 + a

As a proof of concept, this has very limited functionality:

only handles functions that take no arguments and return an integer
only handles a very limited set of bytecodes
aborts if operations overflow

LGTM, feel free to merge


Implement the Project MR approvals

Hey guys!
This endpoint is really missing for us: any chance you could include it?
Cheers!
Gitlab endpoint documentation: https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-configuration

I would like to give it a shot


Feedback on week 6 project progress

Subject: feedback on week 6 project progress
See mid-v1.1 progress guide for more details of the activities mentioned below.
Team progress
Progress noted (well done! :+1:):

Team org and repo set up with the correct names.
PR created from team repo to AB-4.

Suggestions (to do soon):
None
Individual progress of @barkhyehyeon:
Progress noted (well done! :+1:):

Team repo forked to your GitHub account.
PRs created to update documents.

Suggestions (to do soon):

Create PRs to do a local change to the Java code.

Individual progress of @benntay:
Progress noted (well done! :+1:):

PRs created to update documents.

Suggestions (to do soon):

Fork team repo to your GitHub account.
Create PRs to do a local change to the Java code.

Individual progress of @limshiminjonathan:
Progress noted (well done! :+1:):
None
Suggestions (to do soon):

Fork team repo to your GitHub account.
Create PRs for your share of updating documents.
Create PRs to do a local change to the Java code.

Individual progress of @#n/a:
Progress noted (well done! :+1:):
None
Suggestions (to do soon):

Fork team repo to your GitHub account.
Create PRs for your share of updating documents.
Create PRs to do a local change to the Java code.

Individual progress of @junrong09:
Progress noted (well done! :+1:):

Team repo forked to your GitHub account.
PRs created to update documents.

Suggestions (to do soon):

Create PRs to do a local change to the Java code.

Tutor: @AceCentury
Note: the above observation was done by the CS2103-feedback-bot and covers changes up to 18/9/2018 only. If you think the above observation is incorrect, please let us know by replying in this thread. Please include links to relevant PRs/comments in your response.

Noted with thanks


gimp: add AVIF support

Description of changes
Gimp supports AVIF since 2.10.22, on the 2.10 Installation instructions it only calls for libheif, but that seems to not be enough. On 2.99 (Pre-release) Installation instructions, which specifically mentions AVIF, it says:
 14. HEIF support depends on the libheif library. If you don't have
     access to pre-built packages, the code is available at:

        https://github.com/strukturag/libheif

     Make sure you build libheif with libde265 and libx265 support (for
     respectively decoding and encoding of HEVC, i.e. HEIC files), and
     libaom decoder and encoder (for AV1, i.e. AVIF files), otherwise
     the plug-in is mostly useless.

Not sure what libx265 is, but that name isn't in the store. libheif has libaom on its buildInputs currently.
Regardless, adding either libavif or libaom to the builInputs enables AVIF support for GIMP, since there is no mention of libavif here, I just added libaom.
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Not sure what libx265 is, but that name isn't in the store

There is x265 which includes libx265.so.209 :D

Perhaps we can use this PR to also enable support for HEIC files by adding libde265 and x265 to buildInputs.
Additionally, it would be great if you could rebase your PR on a recent revision of master to ease reviewing this locally, as this branch is currently about 60000 commits behind :eyes:

Result of nixpkgs-review pr 341914 run on x86_64-linux 1

2 packages marked as broken and skipped:

gimpPlugins.exposureBlend
gimpPlugins.resynthesizer

14 packages built:

gimp (gimpPlugins.gimp)
gimp-with-plugins
gimp.dev (gimpPlugins.gimp.dev)
gimpPlugins.bimp
gimpPlugins.farbfeld
gimpPlugins.fourier
gimpPlugins.gap
gimpPlugins.gimplensfun
gimpPlugins.gmic
gimpPlugins.lightning
gimpPlugins.lqrPlugin
gimpPlugins.texturize
gimpPlugins.waveletSharpen
toppler

I wasn't able to make this work.

I tried opening the following image: https://github.com/link-u/avif-sample-images/raw/master/fox.profile0.10bpc.yuv420.avif

Perhaps we can use this PR to also enable support for HEIC files by adding libde265 and x265 to buildInputs.
Additionally, it would be great if you could rebase your PR on a recent revision of master to ease reviewing this locally, as this branch is currently about 60000 commits behind 👀

Apologies, even for a small change like that I should have rebased!
Also, I tested against sample1.heic at https://filesampleshub.com/download/image/heic/sample1.heic, and it seems to work for heic files as well even without those, but perhaps they should be added anyway?

I wasn't able to make this work.

That is actually the exact same image I tried using. I my case it worked fine, but more to your point about rebasing, I tried building it again on top of the master and now it indeed no longer works for both AVIF & HEIC.
Nothing changed on .../gimp/default.nix between those 60000 commits (outside meta.description), so I am not sure what the problem is.

The following patch adds AVIF and HEIC support to GIMP (again?).
The root cause was libheif dropping some variables from its pkg-config. With this patch, I can open and save both AVIF and HEIC files.
From 1029000dc79986daec456ea4cfacd310119fc060 Mon Sep 17 00:00:00 2001
From: Sefa Eyeoglu<EMAIL_ADDRESS>Date: Sat, 14 Sep 2024 21:09:32 +0100
Subject: [PATCH] gimp: Fix AVIF/HEIC support

Signed-off-by: Sefa Eyeoglu<EMAIL_ADDRESS>---
 pkgs/applications/graphics/gimp/default.nix   | 10 +++++++++
 .../graphics/gimp/force-enable-libheif.patch  | 22 +++++++++++++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 pkgs/applications/graphics/gimp/force-enable-libheif.patch

diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix
index fe89869809e9..8faf717a147e 100644
--- a/pkgs/applications/graphics/gimp/default.nix
+++ b/pkgs/applications/graphics/gimp/default.nix
@@ -42,6 +42,7 @@
 , mypaint-brushes1
 , libwebp
 , libheif
+, libxslt
 , libgudev
 , openexr
 , desktopToDarwinBundle
@@ -76,6 +77,14 @@ in stdenv.mkDerivation (finalAttrs: {
     # Use absolute paths instead of relying on PATH
     # to make sure plug-ins are loaded by the correct interpreter.
     ./hardcode-plugin-interpreters.patch
+
+    # GIMP queries libheif.pc for builtin encoder/decoder support to determine if AVIF/HEIC files are supported
+    # (see https://gitlab.gnome.org/GNOME/gimp/-/blob/a8b1173ca441283971ee48f4778e2ffd1cca7284/configure.ac?page=2#L1846-1852)
+    # These variables have been removed since libheif 1.18.0
+    # (see https://github.com/strukturag/libheif/commit/cf0d89c6e0809427427583290547a7757428cf5a)
+    # This has already been fixed for the upcoming GIMP 3, but the fix has not been backported to 2.x yet
+    # (see https://gitlab.gnome.org/GNOME/gimp/-/issues/9080)
+    ./force-enable-libheif.patch
   ];

   nativeBuildInputs = [
@@ -85,6 +94,7 @@ in stdenv.mkDerivation (finalAttrs: {
     gettext
     makeWrapper
     gtk-doc
+    libxslt
   ] ++ lib.optionals stdenv.isDarwin [
     desktopToDarwinBundle
   ];
diff --git a/pkgs/applications/graphics/gimp/force-enable-libheif.patch b/pkgs/applications/graphics/gimp/force-enable-libheif.patch
new file mode 100644
index<PHONE_NUMBER>00..de3dfb09b95e
--- /dev/null
+++ b/pkgs/applications/graphics/gimp/force-enable-libheif.patch
@@ -0,0 +1,22 @@
+diff --git a/configure.ac b/configure.ac
+index 48c3c77892..3189781817 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1843,13 +1843,13 @@ can_export_heic=no
+ can_import_avif=no
+ can_export_avif=no
+ if test "x$have_libheif" = xyes; then
+-  can_import_heic=`$PKG_CONFIG --variable=builtin_h265_decoder libheif`
+-  can_export_heic=`$PKG_CONFIG --variable=builtin_h265_encoder libheif`
++  can_import_heic=yes
++  can_export_heic=yes
+   if test "x$can_import_heic" = xyes; then
+     MIME_TYPES="$MIME_TYPES;image/heif;image/heic"
+   fi
+-  can_import_avif=`$PKG_CONFIG --variable=builtin_avif_decoder libheif`
+-  can_export_avif=`$PKG_CONFIG --variable=builtin_avif_encoder libheif`
++  can_import_avif=yes
++  can_export_avif=yes
+   if test "x$can_import_avif" = xyes; then
+     MIME_TYPES="$MIME_TYPES;image/avif"
+   fi
--
2.46.0


Complete  doc on Page variables

There have been some questions lately about "how to get filename" -- these fields are exported, but not documented.
They should be.

Have to have some of those to push the world in the right direction :-)
Re getgb.io; GitHub do a much better job at presenting YAML frontmatter, TOML looks kind of ugly.

It all looks the same in vim.

On 12 May 2015, at 23:28, Bjørn Erik Pedersen<EMAIL_ADDRESS>wrote:
Have to have some of those to push the world in the right direction :-)
Re getgb.io; GitHub do a much better job at presenting YAML frontmatter, TOML looks kind of ugly.
—
Reply to this email directly or view it on GitHub.

@digitalcraftsman have this covered in another issue.


Resolve name/path/filename property confusion in test objects (both magellan and plugins)

Nightwatch plugin should move to filename
The path property should be renamed to name (in mocha this is the string from it(".."))

Done


Split the benchmark workflow

The pre and post jobs don't need the benchmarking machine, and the
benchmarking machine bit that runs code from the repo has reduced permissions.
The logs are also available as an artifact.

Pre-submit checklist:

Branch

[ ] Tests are provided (if possible)
[ ] Commit sequence broadly makes sense
[ ] Key commits have useful messages
[ ] Changelog fragments have been written (if appropriate)
[ ] Relevant tickets are mentioned in commit messages
[ ] Formatting, PNG optimization, etc. are updated

PR

[ ] (For external contributions) Corresponding issue exists and is linked in the description
[ ] Targeting master unless this is a cherry-pick backport
[ ] Self-reviewed the diff
[ ] Useful pull request description
[ ] Reviewer requested

/benchmark plutus-benchmark:nofib

I think this is obsolete now.

I do actually still think this is a good idea but it's not a big deal


Scrolling using trackpad when editing a file in vim/nano should move cursor up/down

Description of the new feature/enhancement
Using the trackpad to scroll up/down by default scrolls terminal buffer. When editing a file in vim, doing the same thing should send cursor up/down to the terminal so that it scrolls within vim/nano's context rather than scrolling the terminal buffer.
This is what VSCode or iTerm do for example.
Here is what happens in Windows Terminal when using the trackpad in nano:

Proposed technical implementation details (optional)
Here is what happens in VSCode (and I suggest should happen in Windows Terminal too):
https://user-images.githubusercontent.com/199648/157679351-5679492f-c843-4458-b6c0-00f9d0df90c8.mov

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #3321 for more discussion.
/dup #3321


Remove Clock-Stopwatch

Clock-Stopwatch is an empty file and should be removed

can i work on this

Clock-Stopwatch is an empty file and should be removed

Someone assigned for that and already created pr


Backports

fixes gh-3431 by cherry-picking some commits to the 0x.29.x branch. These reduce the number of warnings when compiling with PyPy

could this get a milestone for the next 0.29 release?

Thanks


Converted majority of BS elements

Converted most of the BS elements to ReactBootstrap, as per #140. I did not do all of them - I am not sure how Button would react, for instance, and I want to make sure I do it right before I mess something up.

@Dignifiedquire Fixed linting error.

:+1:

Passed. This should be merged before more work is done on the webpack branch.

Done :)


Generator non-kotlin Templates

As mentioned in #172 change from using kotlin files as templates to some other format that would, most probably, not need to be compiled. This would make contributions to the lwjgl bindings easier for other people to do as well as possibly making maintaining easier. This should also go hand in hand with #165.

Hopefully XML won't be the chosen format (tis really horrid). Not sure it offers enough but YAML might be a good option to consider, its nice to look at and read.

I was thinking a more custom format but xml, yaml, or is in would also work

Using an existing format has the advantage of already having existing libraries, tools and validators that can be used. IDE's like Eclipse, Intellij, Netbeans all already support XML, JSON, YAML (via plugins if not built in support) which can provide syntax highlighting and error checking. Further there are much more documentation and tutorials for these formats and developers may already be familiar with them allowing lower entry for contributions.
This is something a custom format will be missing and it would require a lot more work to implement and maintain.

Using an existing format has the advantage of already having existing libraries, tools and validators that can be used. IDE's like Eclipse, Intellij, Netbeans (even GitHub) already support XML, JSON, YAML (via plugins if not built in support) which can provide syntax highlighting and error checking. Further there is existing documentation and tutorials for these formats and developers may already be familiar with them allowing lower entry for contributions.

It wouldn't really be any lower as all three of those are basically just ways to format data that can then be read so it would basically be its own format built on top of a more general format. It forces a set format which can be useful for parsing and validating data though so that would be useful.

This is something a custom format will be missing and therefore require a lot more work to implement and maintain.

again all three of those are basically just key-value pair mappings so there isn't much syntax highlighting to miss in the first place but it could be useful.

all three of those are basically just key-value pair mappings

Conceptually, you are right. But in practice there is much more to that than simply saying "this format is just a mathematical tree structure, so it is just as good as any other format."
Like kappa said, with XML (for example) there are uncountably many IDE plugins, validators and transformation tools already existing that can be let loose on the data and that can aid in authoring the templates and transform them. Just think about XSLT to transform XML templates into Java sources or HTML documentation output or use XSL-FO to build printable PDF documentation documents, which would be one possible argument for using XML. (not saying that you should use that!)
You simply don't have any of that with a custom format.
You have to work everything from scratch and do everything by yourself, starting with a grammar definition which you, if you're smart, define in some form of EBNF and let a parser generator generate a working lexer, parser and AST for you. By no means would you implement a lexer and parser by hand.... :)
So, like kappa said: "Be smart and use a format that already has a healthy ecosystem around it."

I agreed with him on that part I just disagreed with it lowering the entry point really (though thinking on it more it would technically lower it a bit more but not by all that much)
on the other side if one of those 3 is chosen I would hope that it is JSON as XML looks messy and confusing (its not that bad once you know how to use it though). YAML I haven't used much so I can't really speak for it but the indentation part would both be good for readability but also a headache I think though like I said I haven't really used it.

I think YAML might require tabs (I know some implementations do) which could be troublesome/time-consuming if spaces are used accidentally.

JSON is horrible, can't even put comments
Kotlin + DSL is 1000x better than everything mentioned

I've changed my mind about this.
The advantages of using Kotlin for the templates are hard to give up. The DSL has also improved considerably over the past couple of years and we now have the Template Extractor (powered by the Clang bindings), which makes writing new bindings much quicker.
Documentation is still a pain and makes the templates heavier than they need to be, so it's worth exploring possible solutions for #165.


Add support for glob

In javascript/typescript world it is common to separate files using app.test.js vs app.js. Sometimes I want to run apply only for *.test.js. Would be good if it support glob pattern for paths when using apply.

Are you using Grit outside a terminal shell? I regularly use globs, but the shell has built-in expansion support.
Ex. I just ran:
$ grit apply '`console.log`' **/*.test.js

I'm using it under bash. Seems like it partially works.
Here is a failing case. Notice how the dir doesn't contain any *.test.js file.
$ tree
.
├── a.js
└── dir
    └── c
        ├── b.js
        └── b.test.js
3 directories, 3 files

$ grit apply '`console.log`' **/*.test.js
ERROR (code: 100) - **/*.test.js: IO error for operation on **/*.test.js: No such file or directory (os error 2)
Processed 0 files and found 0 matches

Now If I add a dir/d.test.js it works.
$ touch dir/d.test.js
$ tree
.
├── a.js
└── dir
    ├── c
    │   ├── b.js
    │   └── b.test.js
    └── d.test.js

3 directories, 4 files
$ grit apply '`console.log`' **/*.test.js
Processed 1 files and found 0 matches

I expect ** to recurse the dir.

Unfortunately we can't control how bash handles directory traversal.
We might consider our own glob matching in the future but I also want to avoid too much scope creep.
For now you might want to try an alternative shell like zsh. Or using a util like find/xargs to feed paths into the Grit CLI.

Haven't looked at the code yet but my thought was that the last arg to grit apply was just glob pattern which could be solved by using crates such as glob and that the rust code actually does the traversal of the directory.


Revert "[SPARK-45502][BUILD] Upgrade Kafka to 3.6.0"

This reverts commit d1bd21a2a219ebe6c5ac3fcb1e17db75af3c670c.
What changes were proposed in this pull request?
This pr aims to revert SPARK-45502 to make the test case KafkaSourceStressSuite stable.
Why are the changes needed?
The test case KafkaSourceStressSuite has become very unstable after the merger of SPARK-45502, with 10 out of the recent 22 tests failing because of it. Revert it for now, and we can upgrade Kafka again after resolving the test issues.

https://github.com/apache/spark/actions/runs/6497999347/job/17648385705
https://github.com/apache/spark/actions/runs/6502219014/job/17660900989
https://github.com/apache/spark/actions/runs/6502591917/job/17661861797
https://github.com/apache/spark/actions/runs/6503144598/job/17663199041
https://github.com/apache/spark/actions/runs/6503233514/job/17663413817
https://github.com/apache/spark/actions/runs/6504416528/job/17666334238
https://github.com/apache/spark/actions/runs/6509796846/job/17682130466
https://github.com/apache/spark/actions/runs/6510877112/job/17685502094
https://github.com/apache/spark/actions/runs/6512948316/job/17691625228
https://github.com/apache/spark/actions/runs/6516366232/job/17699813649

Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass GitHub Actions
Was this patch authored or co-authored using generative AI tooling?
No

https://github.com/apache/spark/pull/43362
I see that the author is trying to fix it, we can also wait a little longer. But since the sbt test is in a fail-fast mode, once KafkaSourceStressSuite  fails, the modules to be tested later will not run, making it hard to confirm whether the subsequent tests are healthy. This is a risk point.
also cc @dongjoon-hyun @dengziming

https://github.com/LuciferYang/spark/runs/17721718456
GA Passed

Merged into master. Thanks @HyukjinKwon @HeartSaVioR @dengziming  ~

Thank you, @LuciferYang and all.

Could we please be conservative and pick bugfix versions unless the minor release unblocks us/users for some specific functionalities?

Thank you @HeartSaVioR for mention this, I agree with you about picking bugfix versions, however, this bug is introduced by me when I haven't  tested it carefully and the last build accidentally succeed, so it was merged by mistake. lets wait and upgrade it to 3.6.1 later.
BTW, I have found the root cause is https://github.com/apache/kafka/pull/12590, we will send a fetch request when closing FetchSession which contains a deleted topic, and we are setting "auto.create.topics.enable"=true so deleted topics will come back again.

Thank you for the info, @dengziming .


Create chainer.optimizer_hooks namespace and move hooks there.

This PR is a updated version of #2397.

Closed, as it is hard to resolve conflicts than to make a new PR (#3977)


update e2etest instructions; update gitignore for local files

What type of PR is this?
e2etest documentation update
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 33.212%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3472

Relevant Lines:
10454

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 33.212%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3472

Relevant Lines:
10454

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 33.212%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3472

Relevant Lines:
10454

💛  - Coveralls


Mc ci logon

@oceanzus @DanielJMaher
Supporting PR for the cilogon

@FBRTMaka Looks like rauth didn't make it into the requirements file.

@oceanzus good catch, updating now

@oceanzus cool cool, would you mind making a PR to this branch?  I'm done for the night. Otherwise I'll do clean up tomorrow.

@FBRTMaka I'm toast as well.  Hit it in the morning.

@oceanzus I hear ya!  But I'm up now so I'll get it cleaned up.

@DanielJMaher @FBRTMaka Looks good to me.  Ready to merge when the timing is right.