Type conflicts in forms with file inputs

I wanted to implement a form where users should submit the pdf file, but I keep getting the conflicts in Input props.
I tried to extend the InputProps in ui/input.tsx, but with no success
For now, I only found a solution that passes the pdf as z.any() and it passes as a string with fakepath to the values. I wanted to pass the File object to then use it on the backend

"use client";

import { zodResolver } from "@hookform/resolvers/zod";
import * as z from "zod";

import { Button } from "@/components/ui/button";
import {
  Form,
  FormControl,
  FormDescription,
  FormField,
  FormItem,
  FormLabel,
  FormMessage,
} from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { useForm } from "react-hook-form";

const MAX_SIZE_MB = 1;

const formSchema = z.object({
  pdf: z
    .custom<FileList>()
    .transform((file) => file.length > 0 && file.item(0))
    .refine(
      (file) => !file || (!!file && file.size <= MAX_SIZE_MB * 1024 * 1024),
      {
        message: `The profile picture must be a maximum of ${MAX_SIZE_MB}MB.`,
      }
    )
    .refine(
      (file) => !file || (!!file && file.type?.startsWith("application/pdf")),
      {
        message: "Only PDFs are allowed to be sent.",
      }
    ),
});

export function VerifyForm() {
  // 1. Define your form.
  const form = useForm<z.infer<typeof formSchema>>({
    resolver: zodResolver(formSchema),
    defaultValues: {
      pdf: null,
    },
  });

  // 2. Define a submit handler.
  function onSubmit(values: z.infer<typeof formSchema>) {
    // Do something with the form values.
    // ✅ This will be type-safe and validated.
    console.log(values);
  }

  return (
    <Form {...form}>
      <form
        onSubmit={form.handleSubmit(onSubmit)}
        className="space-y-8"
      >
        <FormField
          control={form.control}
          name="pdf"
          render={({ field }) => (
            <FormItem>
              <FormLabel>Student Card</FormLabel>
              <FormControl>
                <Input
                  type="file"
                  accept=".pdf"
                  placeholder="StudentCard.pdf"
                  {...field}
                />
              </FormControl>
              <FormDescription>
                This is used to get your University and Course year
              </FormDescription>
              <FormMessage />
            </FormItem>
          )}
        />
        <Button type="submit">Submit</Button>
      </form>
    </Form>
  );
}

Some solution for this? or better use another Input (drop-zone) or custom

The problem comes from react-hook-form.
Found that and it worked for me with shadcn-ui's  component inside ! :
https://github.com/react-hook-form/react-hook-form/issues/127#issuecomment-963884695

Does anyone have a link to a solution for this? The one listed in that linked issue does not seem to be working for me.
I went ahead and made a new issue with my current setup: https://github.com/shadcn-ui/ui/issues/1085

have u resolved this @blusrc?

I just write my solution, with dropzone, and add value to submit function... not best, but dropzone component validate me everything what i need

any link ?

sorry i haven't here part of code
import React from 'react'
import { FileRejection, FileWithPath, useDropzone } from 'react-dropzone'
import { ImageIcon } from 'lucide-react'

export const Dropzone = ({ onDrop, ...props }: { onDrop: (acceptedFiles: FileWithPath[]) => void }) => {
    const { getRootProps, getInputProps, acceptedFiles, fileRejections } = useDropzone({
        onDrop,
        accept: {
            'image/jpeg': ['.jpeg', '.png'],
        },
    })

    const files = acceptedFiles.map((file: FileWithPath) =>
{file.path}
)

    const fileRejectionItems = fileRejections.map((file: FileRejection, index: number) => {

        return (

File: {(file.file as FileWithPath).path} error

        )
    })

    return (

                <input {...getInputProps()} {...props} />
                {files.length === 0 ? (

                        <ImageIcon className={'h-full w-full'} />

Can be just: png, jpg, heif

                ) : (

{files}

                )}

            {fileRejectionItems.length > 0 && (

Rejected files

{fileRejectionItems}

            )}

    )
}

And dialog
export const DialogForm = () => {
    const t = useTranslations('form')
    const [files, setFiles] = useState<FileWithPath[]>([])

    const formSchema = z.object({
        fullName: z
            .string({ required_error: t('validate.fullName') })
            .min(2, {
                message: t('validate.minimal_characters'),
            })
            .max(40),
        mail: z
            .string({ required_error: t('validate.mail') })
            .email({ message: t('validate.mail') })
            .min(2, {
                message: 'email required',
            })
            .max(50),
        tel: z
            .string({ required_error: t('validate.tel') })
            .min(6)
            .max(18),
        note: z.string().optional(),
        file: z.instanceof(File).optional(),
    })
    const form = useForm<z.infer<typeof formSchema>>({
        resolver: zodResolver(formSchema),
    })
    const submitForm = (data: z.infer<typeof formSchema>) => {
        data.file = files[0]
    }

    const handleDrop = (acceptedFiles: File[]) => {
        setFiles(acceptedFiles)
    }

    return (
        <Dialog>
            <DialogTrigger asChild>
                <Button variant="outline">Contact modal. IDK when should be oppened</Button>
            </DialogTrigger>
            <DialogContent className="md:max-w-4xl top-1/2">
                <DialogHeader className={'border-b border-greyLight20 border-solid'}>
                    <DialogTitle className={'text-redMain sm:text-lg'}>Neznáte název kamen ani číslo dílu?</DialogTitle>
                    <DialogDescription>
                        Zašlete nám fotografii a my se s Vámi v co nejkratším čase spoojíme.
                    </DialogDescription>
                </DialogHeader>
                <Form {...form}>
                    <form
                        onSubmit={form.handleSubmit(submitForm)}
                        className="w-full grid md:grid-cols-2 grid-cols-1 gap-y-4 gap-x-2"
                    >
                        <FormField
                            name="file"
                            control={form.control}
                            render={({ field }) => {
                                return (
                                    <FormItem className="col-span-2 md:col-span-2 col-start-1 md:col-start-1">
                                        <FormLabel htmlFor="file">Nahrajte nebo přetáhněte fotografii</FormLabel>

                                        <FormControl>
                                            <Dropzone onDrop={handleDrop} {...field} />
                                        </FormControl>
                                        <FormMessage />
                                    </FormItem>
                                )
                            }}
                        />
                        <FormField
                            name={'fullName'}
                            control={form.control}
                            render={({ field }) => (
                                <FormItem className="col-span-2 md:col-span-1 col-start-1 md:col-start-1">
                                    <FormLabel htmlFor={'fullName'}>{t('fields.fullName')}</FormLabel>
                                    <FormControl>
                                        <Input {...field} />
                                    </FormControl>
                                    <FormMessage />
                                </FormItem>
                            )}
                        />

I have found a solution to this. This way worked for me.

`"use client";
import Link from "next/link";
import * as z from "zod";
import { zodResolver } from "@hookform/resolvers/zod";
import { useForm } from "react-hook-form";
import { Loader2 } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import {
Form,
FormControl,
FormField,
FormItem,
FormLabel,
FormMessage,
} from "@/components/ui/form";
const FileUpload = () => {
// Images
const MAX_IMAGE_SIZE = 5242880; // 5 MB
const ALLOWED_IMAGE_TYPES = [
"image/jpeg",
"image/png",
"image/webp",
"image/jpg",
];
// Form Schema Validation
const formSchema = z.object({
images: z
.custom((val) => val instanceof FileList, "Required")
.refine((files) => files.length > 0, Required)
.refine((files) => files.length <= 5, Maximum of 5 images are allowed.)
.refine(
(files) =>
Array.from(files).every((file) => file.size <= MAX_IMAGE_SIZE),
Each file size should be less than 5 MB.
)
.refine(
(files) =>
Array.from(files).every((file) =>
ALLOWED_IMAGE_TYPES.includes(file.type)
),
"Only these types are allowed .jpg, .jpeg, .png and .webp"
),
});
// Form Hook
const form = useForm<z.infer>({
resolver: zodResolver(formSchema),
});
// Form Submit Handler (After validated with zod)
const onSubmit = async (values: z.infer) => {
// Log values
console.log(values);
};
return (

<Form {...form}>

{/* Images */}
<FormField
control={form.control}
name="images"
render={({ field: { onChange }, ...field }) => {
// Get current images value (always watched updated)
const images = form.watch("images");
          return (
            <FormItem>
              <FormLabel>Images</FormLabel>
              {/* File Upload */}
              <FormControl>
                <Input
                  type="file"
                  accept="image/*"
                  multiple={true}
                  disabled={form.formState.isSubmitting}
                  {...field}
                  onChange={(event) => {
                    // Triggered when user uploaded a new file
                    // FileList is immutable, so we need to create a new one
                    const dataTransfer = new DataTransfer();

                    // Add old images
                    if (images) {
                      Array.from(images).forEach((image) =>
                        dataTransfer.items.add(image)
                      );
                    }

                    // Add newly uploaded images
                    Array.from(event.target.files!).forEach((image) =>
                      dataTransfer.items.add(image)
                    );

                    // Validate and update uploaded file
                    const newFiles = dataTransfer.files;
                    onChange(newFiles);
                  }}
                />
              </FormControl>
              <FormMessage />
            </FormItem>
          );
        }}
      />

        {/* Cancel Button */}
        <Link
          href="/dashboard/my-events"
          className={`w-full ${
            form.formState.isSubmitting
              ? "pointer-events-none"
              : "pointer-events-auto"
          }`}
        >
          <Button
            variant="secondary"
            type="button"
            className="flex w-full flex-row items-center gap-2"
            size="lg"
            disabled={form.formState.isSubmitting}
          >
            {form.formState.isSubmitting && (
              <Loader2 className="h-4 w-4 animate-spin" />
            )}
            Cancel
          </Button>
        </Link>

        {/* Submit Button */}
        <Button
          variant="default"
          className="flex w-full flex-row items-center gap-2"
          size="lg"
          type="submit"
          disabled={form.formState.isSubmitting}
        >
          {form.formState.isSubmitting && (
            <Loader2 className="h-4 w-4 animate-spin" />
          )}
          Create Event
        </Button>

    </form>
  </Form>

);
};
export default FileUpload;
`

@evgeniiPerov sorry, how did you solve for the ReferrenceError: File is not define in your formSchema (" file: z.instanceof(File).optional(),")?? On almost every page save, a full reload is initiated with the error in the console

@evgeniiPerov sorry, how did you solve for the ReferrenceError: File is not define in your formSchema (" file: z.instanceof(File).optional(),")?? On almost every page save, a full reload is initiated with the error in the console

You can use z.custom().optional()
I’m trying figure out how send the validate form to my api route. In client console I got the file in server I got empty field :S

I have found a solution to this. This way worked for me. For the code I wrote below, if you upload the files more than once, the old files are still there. If you don't want your old files, you can just use onChange={(event) => onChange(event.target.files)} for the onChange field in the .

"use client";

import Link from "next/link";
import * as z from "zod";
import { zodResolver } from "@hookform/resolvers/zod";
import { useForm } from "react-hook-form";
import { Loader2 } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import {
  Form,
  FormControl,
  FormField,
  FormItem,
  FormLabel,
  FormMessage,
} from "@/components/ui/form";

const FileUpload = () => {
  // Images
  const MAX_IMAGE_SIZE = 5242880; // 5 MB
  const ALLOWED_IMAGE_TYPES = [
    "image/jpeg",
    "image/png",
    "image/webp",
    "image/jpg",
  ];

  // Form Schema Validation
  const formSchema = z.object({
    images: z
      .custom<FileList>((val) => val instanceof FileList, "Required")
      .refine((files) => files.length > 0, `Required`)
      .refine((files) => files.length <= 5, `Maximum of 5 images are allowed.`)
      .refine(
        (files) =>
          Array.from(files).every((file) => file.size <= MAX_IMAGE_SIZE),
        `Each file size should be less than 5 MB.`
      )
      .refine(
        (files) =>
          Array.from(files).every((file) =>
            ALLOWED_IMAGE_TYPES.includes(file.type)
          ),
        "Only these types are allowed .jpg, .jpeg, .png and .webp"
      ),
  });

  // Form Hook
  const form = useForm<z.infer<typeof formSchema>>({
    resolver: zodResolver(formSchema),
  });

  // Form Submit Handler (After validated with zod)
  const onSubmit = async (values: z.infer<typeof formSchema>) => {
    // Log values
    console.log(values);
  };

  return (

      <Form {...form}>
        <form
          onSubmit={form.handleSubmit(onSubmit)}
          className="flex flex-col gap-4 xl:gap-5"
        >
          {/* Images */}
          <FormField
            control={form.control}
            name="images"
            render={({ field: { onChange }, ...field }) => {
              return (
                <FormItem>
                  <FormLabel>Images</FormLabel>
                  {/* File Upload */}
                  <FormControl>
                    <Input
                      type="file"
                      accept="image/*"
                      multiple={true}
                      disabled={form.formState.isSubmitting}
                      {...field}
                      onChange={(event) => {
                        // Triggered when user uploaded a new file
                        // FileList is immutable, so we need to create a new one
                        const dataTransfer = new DataTransfer();

                        // Add old images
                        if (images) {
                          Array.from(images).forEach((image) =>
                            dataTransfer.items.add(image)
                          );
                        }

                        // Add newly uploaded images
                        Array.from(event.target.files!).forEach((image) =>
                          dataTransfer.items.add(image)
                        );

                        // Validate and update uploaded file
                        const newFiles = dataTransfer.files;
                        onChange(newFiles);
                      }}
                    />
                  </FormControl>
                  <FormMessage />
                </FormItem>
              );
            }}
          />

            {/* Cancel Button */}
            <Link
              href="/dashboard/my-events"
              className={`w-full ${
                form.formState.isSubmitting
                  ? "pointer-events-none"
                  : "pointer-events-auto"
              }`}
            >
              <Button
                variant="secondary"
                type="button"
                className="flex w-full flex-row items-center gap-2"
                size="lg"
                disabled={form.formState.isSubmitting}
              >
                {form.formState.isSubmitting && (
                  <Loader2 className="h-4 w-4 animate-spin" />
                )}
                Cancel
              </Button>
            </Link>

            {/* Submit Button */}
            <Button
              variant="default"
              className="flex w-full flex-row items-center gap-2"
              size="lg"
              type="submit"
              disabled={form.formState.isSubmitting}
            >
              {form.formState.isSubmitting && (
                <Loader2 className="h-4 w-4 animate-spin" />
              )}
              Create Event
            </Button>

        </form>
      </Form>

  );
};

export default FileUpload;

                                  if (images) {
                                    Array.from(images).forEach((image) =>
                                      dataTransfer.items.add(image)
                                    );
                                  }
```  ReferenceError: images is not defined
can, you please fix bugs.

Hello, I'm sorry to hear that. I have updated my comment. I think I accidentally deleted the get current value of the images. Please read my comment and try again. Goodluck!

@evgeniiPerov sorry, how did you solve for the ReferrenceError: File is not define in your formSchema (" file: z.instanceof(File).optional(),")?? On almost every page save, a full reload is initiated with the error in the console

I'm sorry to hear that. What node version are you using? If the error you stated is in the server console, it might be a node.js version error. I assume you are trying to use type "File" while running on the server but type "File" only available in NodeJS version 20+. See Node JS Class File and click the history accordion. Maybe you can try upgrading your node version? @R1NEJ0

I think this is related to #163, and in react you can't set the image variable in the value of an input like:
const image = new File();

<input type="file" value={image} />

That is why you are getting error, so the working around is to hidden the input type="file" with something like a dropzone and create a new file viewer like showing the fileName like following:
import { Loader2Icon } from 'lucide-react'
import Image from 'next/image'
import { useParams } from 'next/navigation'

import apiClient from '@/lib/axios'
import { useRequest } from '@/hooks'

import { Button } from '@/components/ui/button'
import { blobUrlToFile } from '@/utils/handle-file'

export default function ShowFilePreview({
  path = undefined,
  name,
  type,
  isOnlySave = false
}: {
  path?: string
  name: string
  type: string
  isOnlySave?: boolean
}) {
  const params = useParams()
  const { isFetching, data: realPath } = useRequest({
    queryFn: async () => {
      if (path && !path.includes('blob:http')) {
        const file = await blobUrlToFile(
          path ?? '',
          name,
          isOnlySave ? (params?.id as string) : undefined,
          apiClient
        )
        if (!file) return undefined
        return URL.createObjectURL(file)
      }

      return path
    },
    queryKey: ['image', path, name, params, isOnlySave]
  })
  return (
    <>
      {!path ? (
        <>File type can't be pre-viewed</>
      ) : (
        <>
          {isFetching ? (
            <Loader2Icon className="mr-2 h-4 w-4 animate-spin" />
          ) : (
            <>
              {Boolean(realPath) && (
                <>
                  {type === 'image' ? (
                    <Image
                      alt="File Uploaded"
                      src={realPath as string}
                      width={300}
                      height={300}
                      className="object-contain w-[300px] h-[250px]"
                    />
                  ) : (

                  )}

                    <Button
                      type="button"
                      variant="outline"
                      onClick={() => {
                        window.open(realPath ?? '', '_blank')
                      }}
                    >
                      See in full screen
                    </Button>

                </>
              )}
            </>
          )}
        </>
      )}
    </>
  )
}

@Tony-Stark-Jr i have solution for u
"use client";

import { useForm } from "react-hook-form";

import {
  Form,
  FormControl,
  FormDescription,
  FormField,
  FormItem,
  FormLabel,
  FormMessage,
} from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import { ChangeEvent, useState } from "react";
import { Button } from "@/components/ui/button";
import { zodResolver } from "@hookform/resolvers/zod";
import * as zod from "zod";

// Define schema for RegisterCircleInputClient
const RegisterCircleInputClientSchema = zod.object({
  circle_image: zod.string(), // Assuming the circle image is a URL or file path
  // Add more fields as needed
});

type RegisterCircleInputClient = zod.infer<typeof RegisterCircleInputClientSchema>;

// Define schema for registerCircleSchemaClient
const registerCircleSchemaClient = RegisterCircleInputClientSchema;

export type { RegisterCircleInputClient, registerCircleSchemaClient };

function getImageData(event: ChangeEvent<HTMLInputElement>) {
  // FileList is immutable, so we need to create a new one
  const dataTransfer = new DataTransfer();

  // Add newly uploaded images
  Array.from(event.target.files!).forEach((image) =>
    dataTransfer.items.add(image)
  );

  const files = dataTransfer.files;
  const displayUrl = URL.createObjectURL(event.target.files![0]);

  return { files, displayUrl };
}

export function RegisterForm() {
  const [preview, setPreview] = useState("");
  const form = useForm<RegisterCircleInputClient>({
    mode: "onSubmit",
    resolver: zodResolver(registerCircleSchemaClient),
  });

  function submitCircleRegistration(value: RegisterCircleInputClient) {
    console.log({ value });
  }

  return (
    <>
      <Form {...form}>
        <form
          className="space-y-8"
          onSubmit={form.handleSubmit(submitCircleRegistration)}
        >
          <Avatar className="w-24 h-24">
            <AvatarImage src={preview} />
            <AvatarFallback>BU</AvatarFallback>
          </Avatar>
          <FormField
            control={form.control}
            name="circle_image"
            render={({ field: { onChange, value, ...rest } }) => (
              <>
                <FormItem>
                  <FormLabel>Circle Image</FormLabel>
                  <FormControl>
                    <Input
                      type="file"
                      {...rest}
                      onChange={(event) => {
                        const { files, displayUrl} = getImageData(event)
                        setPreview(displayUrl);
                        onChange(files);
                      }}
                    />
                  </FormControl>
                  <FormDescription>
                    Choose best image that bring spirits to your circle.
                  </FormDescription>
                  <FormMessage />
                </FormItem>
              </>
            )}
          />
          <Button type="submit">Register</Button>
        </form>
      </Form>
    </>
  );
}

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.


Onboard plugin to orchestrator workflow

@ashwin-pc do we need this anymore? I'm going to close this, but if we need it could you add more details then re-open?
Tank you!
cc: @manasvinibs


update to pydantic v2

Closes #50 and #46
Note: Tests currently fail because the AnyUrl type always appends a / at the end:
>>> from pydantic import AnyUrl, BaseModel
>>> class x(BaseModel):
...     a:AnyUrl
...
>>> x(a="https://tally.xyz")
x(a=Url('https://tally.xyz/'))

Either find a way to modify it not to do that or go for a simple string instead
https://github.com/pydantic/pydantic/issues/7186

Tests currently fail because the AnyUrl type always appends a / at the end

Related to that, it's the reason why there was a custom date type, to enable transitivity. Mainly because the verification method re-serialises the message before verifying the method. Which is arguably a wasteful process.
I see a few alternatives:

keep wrapper types for fields that have multiple representations for the same thing;
keep the original message in SiweMessage;
with the introduction of a from_message method, it could do the verification before deserialising; or
split the SiweMessage type into SiweMessageBuilder and SignedSiweMessage.

The last two are kind of the same, and I think it's probably the best way to go about it, JWT-style verification.
Do you have an opinion?

If the AnyUrl thing got fixed, please also upgrade eth-account, the current 0.8.0 is old

Do you have an opinion?

Just seeing this but I agree that split the SiweMessage type into SiweMessageBuilder and SignedSiweMessage. is the right way to go. I do think that that might be beyond the scope of the PR however,. For now I think making AnyUrl a string instead might be better, since I did have a similar issue with another project and I concluded that the benefits of Pydantic validating URL structure are minimal

Closed by #59


Fix for Issue #13, now xml special characters are encoded properly

Hi Willi,
I ran into a bug ( #13 ) and I believe these changes address the issue.
Thanks!

@jk1ng awesome, thanks! I like that its a fix that you can delegate into an existing library, and thus the patch is only three lines long. Great work :-)

Thanks man! Happy to have helped... this is officially my first open source contrib :) :+1:


Fix map for side effects

map() can't be used for side effects in Python 3 as it is lazy.

[x] Add missing test coverage

Expired Travis access token?

Where did you see that, @rthille?

That's what I got when I clicked thru on the "Details" link to the right of "continuous-integration/travis-ci/pr — The Travis CI build failed"

From the current failure, it looks like the tear down of Producer might be racy:
AssertionError: Found 1 outstanding delayed calls:
<DelayedCall 0x7ff384233520 [0.225120067596s] called=0 cancelled=0 Deferred.callback([ProduceRequest(topic=u'test_throughput-SACkeUGuEP', partition=10, messages=[Message(magic=0, attributes=0, key=None,

That says to me that either the test didn't tear it down properly (wait for all the deferreds to be cancelled/complete) or Afkak itself doesn't properly shutdown the Producer in all cases.

Is there not coverage report generated by the builds anymore?

Not by the Travis builds, no. I tried adding one here but it looks like it will be non-trivial so I will move those commits to a separate PR.

I've kicked the builds a few times and am satisfied that the failures haven't been related to the changes here, so I will go ahead and merge.


tf.TensorArray  can't work in tf.while_loop

Describe the current behavior
I tried to implement a model like an auto-regressive model which can recurrently generate samples, one of the ways is using tf.TensorArray and tf.while_loop, but I found it would go wrong. Here is a gist for reference. I have simplified the source, this gist is just for illustration.
Describe the expected behavior
I can use another way with tf.keras.backend.rnn to reach my goal, but I just wonder what the wrong is in this way.

@gdhy9064 ,
Can you please refer the links with similar error.It helps.Link1,Link2,Link3.
Thanks

@tilakrayal ,
Many thanks to you, these links help me a lot. It is my first time to use tf.TensorArray, and I have made a careless mistake in the wrong usage of  tf.TensorArray.write, I should have received its return value as a new tf.TensorArray, but I didn't.


Define parallelism in YAML

Is there a way to define the parallelism in the YAML file ? It could be useful for example when optimizing the hyperparameters and using all the GPUs in the machine. (I am not sure if doing hyperopt -n THREADS will spread the tasks across the GPUs)

Do you mean parallelism as in launching multiple runs each one assigned to
a different gpu?  If so there is no way to specify it via yaml, you have to
launch separate runs from command line using the -i option to specify which
device you want to run on.  If you mean parallelism as in splitting a
single run to run on several gpus at once, it is something that we are
working on adding to neon and is close to being added to the main
repository.
On Fri, Jun 19, 2015 at 3:40 PM, Sébastien Arnold<EMAIL_ADDRESS>wrote:

Is there a way to define the parallelism in the YAML file ? It could be
useful for example when optimizing the hyperparameters and using all the
GPUs in the machine. (I am not sure if doing hyperopt -n THREADS will
spread the tasks across the GPUs)
—
Reply to this email directly or view it on GitHub
https://github.com/NervanaSystems/neon/issues/52.

Cool ! (I meant the second one)
And when using the hyperopt command with -n were you able to spread each optimization procedure across the GPUs ? Would neon be responsible for that ?


How to make a depth stream video

I'm using the command rosrun image_view video_recorder image:=/kinect2/sd/image_depth _encoding:=16UC1 to make depth stream video. However, it crashes with the following error.
Starting to record MJPG video at [512 x 424]@15fps. Press Ctrl+C to stop recording. OpenCV Error: Assertion failed (image->depth == 8) in writeFrame, file /build/buildd/opencv-2.4.8+dfsg1/modules/highgui/src/cap_ffmpeg.cpp, line 238 terminate called after throwing an instance of 'cv::Exception' what(): /build/buildd/opencv-2.4.8+dfsg1/modules/highgui/src/cap_ffmpeg.cpp:238: error: (-215) image->depth == 8 in function writeFrame
Aborted (core dumped)
It doesnt work either with _encoding:=32FC1, 32SC1. If _encoding:=mono16 is used, it says "unable to convert 16UC1 to mono16"
Is it a problem with converting from ROS encoding to OpenCV encoding? Or is the video-writer only limited to color videos? This would be strange.
Thanks.

From the error message I would say that it is only supports 8 Bit channel depth. So RGB or grayscale. I think limiting a video codec to color images is not really strange, it is kind of strange to use them for something else than that. But maybe a different codec might work.
http://wiki.ros.org/image_view#image_view.2BAC8-diamondback.video_recorder

Okay. Thanks


request through actioncable

I think we got hung up on REST and websockets precisely because they're different protocols.
What if the flow was more like REST controllers generate static pages and any updates are requested and published through websockets.
I'm wondering what it would look like if we made requests through actionable in javascipt.

handle the 'on change' event
send a websocket message something like { action: 'replace', id: 'app_inspector_histogram' } (IDK what the interface is here, but simplicity is good and maybe it's even just { action: 'run_this_function' } and then we just call a run_this_function on the thing listening).
The rails app responds to this message by broadcasting the replace message (much like the system status panels do now)

So the slider 'on change' wouldn't make an HTTP request it'd send a websocket message that the rails app would then broadcast another.  So there's no (or at least less) bleed from HTTP -> web sockets. static page are requested & shown over HTTP and all updates happen through websockets.
┆Issue is synchronized with this Asana task by Unito

@johrstrom I'm finding that using this method adds a lot more complexity because we have to create an actioncable instance, a new channel, a client on the frontend and new methods for things that turbo would handle automatically. Is there a different way of accessing websockets that I am unaware of or is this the right way to go?

I'm finding that using this method adds a lot more complexity because we have to create an actioncable instance, a new channel, a client on the frontend and new methods for things that turbo would handle automatically. Is there a different way of accessing websockets that I am unaware of or is this the right way to go?

I'd guess what you're finding is the right track. I would like to see what it would look like/entail anyhow.

Do we actually want to move away from the built-in way of turbo-streams?

🤷  Let's see what we see then decide. I'm not sold on it either, but if it gave us some better building blocks.  There will be more code sure, but if our mental model can compartmentalize it better that may be a win.
In any case, this project is exploratory and this ticket even more so.  I don't want to do it for sure, I just want to see what it would look like.


New version: Microsoft.VC++2015-2022Redist-x86 version 14.32.31302.0

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[X] Does your manifest conform to the 1.0 schema?

Microsoft Reviewers: Open in CodeFlow

/azp run


[Feature Request]: In Postgres Keyword Search, give user flexibility to select between match all words or any words

Feature Description
The query we use right now is wrapped inside plainto_tsquery('english', QUERY) which will be converted to tsquery with & operator, in other words, every word in the query will need to exist in the document. If one of the words is not in the document, the document will be filtered out. That's why you found far fewer results than without the where @@ clause.
This example will fail because there is no single node that contains all the words in the query, if we change it to the | parameter, then it should work.
select plainto_tsquery('english', 'Who does Paul Graham think of with the word schtick'), to_tsquery('paul|graham|think|word|schtick');

plainto_tsquery                                 |to_tsquery                                      |
------------------------------------------------+------------------------------------------------+
'paul' & 'graham' & 'think' & 'word' & 'schtick'|'paul' | 'graham' | 'think' | 'word' | 'schtick'|

For more detail please check
https://github.com/run-llama/llama_index/pull/9529
https://github.com/run-llama/llama_index/pull/9529#issuecomment-1938848435
Potential Solution
SELECT to_tsquery(
  REPLACE(
    TEXT(
      plainto_tsquery('english', 'Who does Paul Graham think of with the word schtick')
    ), '&', '|'
  )
);

to_tsquery                                      |
------------------------------------------------+
'paul' | 'graham' | 'think' | 'word' | 'schtick'|

Reason
No response
Value of Feature
No response

I think the default behaviour should be AND. It's unusual for a natural language query to match all the words.


Trouble running on AWS Ubuntu 22.04.1 LTS Instance

Describe the bug
I was able to install Rill unix on a AWS Ubuntu instance.  The UI does not function correctly.  The "add source" UI has a blank dialog window.
Console shows this message:
Server started at http://localhost:8080
/bin/sh: 1: open: not found
Error: Command failed: open http://localhost:8080
/bin/sh: 1: open: not found
at checkExecSyncError (node:child_process:828:11)
at Object.execSync (node:child_process:899:15)
at execSync (pkg/prelude/bootstrap.js:2115:30)
at StartCommand.sendActions (/snapshot/rill-developer/web-local/dist/web-local/src/cli/StartCommand.js:32:43)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async StartCommand.run (/snapshot/rill-developer/web-local/dist/web-local/src/cli/DataModelerCliCommand.js:73:9) {

status: 127,
signal: null,
output: [
null,
,
<Buffer 2f 62 69 6e 2f 73 68 3a 20 31 3a 20 6f 70 65 6e 3a 20 6e 6f 74 20 66 6f 75 6e 64 0a>
],
pid: 6149,
stdout: ,
stderr: <Buffer 2f 62 69 6e 2f 73 68 3a 20 31 3a 20 6f 70 65 6e 3a 20 6e 6f 74 20 66 6f 75 6e 64 0a>
To Reproduce
Launch Ubuntu 22.04.1 LTS instance on AWS
Connect via ssh
Install rill using command line script.  Either last stable or nightly build
Launch - Gets error message trying to launch browser.  This is headless
Connect to port 8080.
UI shows, but is not usable
Expected behavior
Should work
Desktop (please complete the following information):

OS: Ubuntu 22.04.1 LTS
Browser Chrome
Version [e.g. 22]

Additional context
Works great on Mac.  Want to host it where other people can use it, but ran into this problem.  We could use a different flavor of Linux if we knew one that worked.  What do you use for testing?

Thank you for reporting this, @DougLoyer -- we are investigating what might be going on.  I think you are encountering two (or maybe more) issues.
The first is one we are looking to fix. Right now there is a bug where we are using the open command to open the browser on your behalf when you run rill start, however it only works on mac, not linux.
The second is related to hosting Rill on AWS. Unfortunately we do not support this path at this time, but we do have some plans in the works to help you share your Rill project with others in the near future!
@nishantmonu51, could this issue reported in discord be related? It seems similar to what this user is reporting.
https://www.loom.com/share/664656924cc5474a80772121350bb61f
As discussed internally, I would like to get this fix in for the next release. Can we please scope this work and assign it?

I replicated this on codespaces.  Here is the error I am getting, the same one reported in loom, I believe.
@magorlick ➜ /workspaces/codespaces-blank $ rill start
Ports 8081 or 9081 already in use.
Server started at http://localhost:8080
/bin/sh: 1: open: not found
Error: Command failed: open http://localhost:8080
/bin/sh: 1: open: not found

    at checkExecSyncError (node:child_process:828:11)
    at Object.execSync (node:child_process:899:15)
    at execSync (pkg/prelude/bootstrap.js:2115:30)
    at StartCommand.sendActions (/snapshot/rill-developer/web-local/dist/web-local/src/cli/StartCommand.js:32:43)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async StartCommand.run (/snapshot/rill-developer/web-local/dist/web-local/src/cli/DataModelerCliCommand.js:73:9) {
  status: 127,
  signal: null,
  output: [
    null,
    <Buffer >,
    <Buffer 2f 62 69 6e 2f 73 68 3a 20 31 3a 20 6f 70 65 6e 3a 20 6e 6f 74 20 66 6f 75 6e 64 0a>
  ],
  pid: 6487,
  stdout: <Buffer >,
  stderr: <Buffer 2f 62 69 6e 2f 73 68 3a 20 31 3a 20 6f 70 65 6e 3a 20 6e 6f 74 20 66 6f 75 6e 64 0a>

@hamilton also encountered this when run 'rill start' after install app using 'curl -s https://cdn.rilldata.com/install.sh | bash', any updates?

@DougLoyer I believe this might have been fixed in 0.15, which is now live. Mind checking if it works for you?

I'm 0.15 and I still come across the same issue...

I just tried again in codespaces and I am still getting the port error, though it seems like this quick fix helped with the linux open error.
I think the port error for hosting Rill is a more complicated fix. Unfortunately we do not currently support hosting Rill in this way, but we have plans to help share your analysis in the works.  @lya01013451 @eminemead ,  are you both trying to host Rill? If so, why do you want to host your project in this way? Would love to understand whether the solutions we are cooking up would help you with your issue here!

We released Rill 0.16 yesterday and I just validated that we now work in linux codespaces. Give it another try when you have a chance and let me know if it works for you too @eminemead , @lya01013451 , @DougLoyer ,
https://docs.rilldata.com/using-rill/install


Exponential backoff for snapshot recovery

Notes
We are currently using a huge amount of bandwidth on Cloudflare. We believe this is because of our snapshot logic greedily pulling images. We want to better understand what is driving Cloudflare usage and make requests in a more conservative way.
Need to confirm why we are downloading so much.

Caused by failures or retrying even on success?
Could this be happening from miners that aren't ours

Acceptance Criteria

Add custom user agent so we can be sure who is making requests
Add version to requests so we know which code is healthy

We discovered in the grooming that this one is trickier that it seems. Ideally, the retry logic should be done inside of miner code (which is written in Erlang unfortunately).

@marvinmarnold @vpetersson we can probably close this now the issues with cloudflare are sorted? dunno what you think?

Yeah agreed. Not super relevant anymore.


Add macOS secureTextEntry prop support to TextInput

Please select one of the following

[ ] I am removing an existing difference between facebook/react-native and microsoft/react-native-macos :thumbsup:
[ ] I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos :thumbsup:
[x] I am making a fix / change for the macOS implementation of react-native
[ ] I am making a change required for Microsoft usage of react-native

Summary
Closes #423 : the macOS implementation of the TextInput component was ignoring the secureTextEntry prop.
In RCTSinglelineTextInputView.m there is an ivar named _backedTextInputView.   It is initialized to be a RCTUITextField which is a subclass of UITextField on iOS or NSTextField on macOS.    On iOS, setSecureTextEntry:YES can simply be called on the UITextField to place it in secure text entry mode.   On macOS, there is no such property.   Instead the entire NSTextField has to be replaced with a NSSecureTextField which is a subclass of NSTextField.
A new RCTUISecureTextField class is defined which subclasses NSSecureTextField and conforms to the RCTBackedTextInputViewProtocol protocol.   It is a duplicate of RCTUITextField in every way except that it has a different base class.   To reuse the code and to minimize deltas from upstream, the following approach was taken: RCTUITextField.h and RCTUITextField.m now have #if RCT_SUBCLASS_SECURETEXTFIELD/#endif blocks that alternatively make RCTUITextField renamed to RCTUISecureTextField and subclass NSSecureTextField instead of UITextField (which is a synonym for NSTextField).   It similarly switches the internal class RCTUITextFieldCell from NSTextFieldCell to NSSecureTextFieldCell.   Then a new compilation unit is defined via RCTUISecureTextField.h/m which just #define RCT_SUBCLASS_SECURETEXTFIELD 1 and then #include RCTUITextField.h/m.
For macOS the secureTextEntry prop is mapped to a new useSecureTextField property that replaces the _backedTextInputView with a RCTUITextField or RCTUISecureTextField.
macOS has other NSTextField subclasses such as NSSearchField.   This same approach could be used to add support for search fields in the future.
Changelog
[macOS] [fixed] - Add macOS secureTextEntry prop support to TextInput
Test Plan
These in RNTester's TextInput page:

Microsoft Reviewers: Open in CodeFlow

thanks a lot for fixing this issue, will it be released soon?

It is in master now which is our canary for RN .63.   We will soon have a 0.63-stable release branch and it will contain this fix


[ast] pragma usage breaking lint

@arnonsha
it seems the following code is breaking our lint flow.
https://github.com/lowRISC/opentitan/blob/955b928e18bcfb96d16fd67947c911dea1535d86/hw/top_earlgrey/ip/ast/rtl/rglts_pdm_3p3v.sv#L79-L84
Basically our lint tool understands the on/off pragmas, and the resulting code makes it think there's a parameter declaration with nothing in there.  What's also odd to me is that this particular file has nested pragma's, is that really what you want?
And lastly, it looks like pok signals are going to be completely ignored by synthesis..given these ok signals drive the reset.. arent' we concerned our trial synthesis will have tons of stuff optimized away because the root reset is not driven?

Remember these are behavioral models, so the delays have no meaning in synthesis. The pragmas allows the synth flow to pass without errors. The delay params are only respected during simulation. In Nuvoton's IP, these delays come from the .lib file.
About the error. I cannot reconstruct since we are not running Ascent lint, however we use this empty param list (because of pragmas) in other places as well and you don't see errors. For example here: https://github.com/lowRISC/opentitan/blob/master/hw/top_earlgrey/ip/ast/rtl/ast.sv#L224
It might be that the nested pragmas is causing the error. This is indeed a mistake in our code. Please see the PR https://github.com/lowRISC/opentitan/pull/4276 where only the pragma issue was changed. Hope this fixes the errors.

hey arnon,
it's not the delay i'm necessarily concerned about.  But whether during synthesis the pok signals will have no drivers.
Doesn't that technically make the entire reset tree useless? Makes me wonder if more things than expected will be optimized out.
and yes, you're right, i think the issue is no the empty param as i mentioned but the nested pragmas.

@tjaychen is this resolved ?

not yet.
It seems like this PR is not able to be merged due CI errors
https://github.com/lowRISC/opentitan/pull/4276
On Mon, Dec 7, 2020 at 12:47 AM arnonsha<EMAIL_ADDRESS>wrote:

@tjaychen https://github.com/tjaychen is this resolved ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/lowRISC/opentitan/issues/4267#issuecomment-739770722,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH2RSW4O67Q57FMRFPAJELSTSJDPANCNFSM4T4LB7RQ
.


Test set ground truth is empty

Hi,
All the 'gt' fields in the test set of CodeCompletion-Line are empty, am I missing something?
https://github.com/microsoft/CodeXGLUE/blob/main/Code-Code/CodeCompletion-line/dataset/javaCorpus/line_completion/test.json
Thanks,
Uri

Hi, we don't provide the ground truth of test set in line completion task. Feel free to submit your predictions to<EMAIL_ADDRESS>and we will give you results!

Got it, thanks!
On Wed, Feb 23, 2022 at 22:09 Shuai Lu @.***> wrote:

Hi, we don't provide the ground truth of test set in line completion task.
Feel free to submit your predictions to @.*** and we
will give you results!
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/CodeXGLUE/issues/102#issuecomment-1049450620,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSOXMFZO37UXHTQ2GGG343U4WOQJANCNFSM5PCKXFSQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>


Stuck "in-between" on Chrome

Describe the bug
As explained in the Firefox issue, when I drag the slide in Chrome sometimes it get stuck and doesn't slide all the way.
Expected behavior
It is expected to slide smoothly without getting stuck.
How to reproduce
Go to any official demo with Google Chrome and drag a slide.
Screenshots / Logs
ScreenRecording: https://streamable.com/eu32x9
Additional context
No response

What pointer device are you using? Mac touchpad? External trackpad? Mouse?
Are you able to reproduce this issue with all Chrome extensions disabled?
Are you seeing this issue only in Chrome?
Are you using the latest version of Chrome?
Are you seeing this issue on any other device?

I'm asking all these questions because I'm still unable to reproduce this issue on my end and I need your help to get to the bottom of it.

It is linked to my pointer setup ! As I'm using a server to communicate between device I guess there are some drop in the communication.
I'm closing the issue thanks again for the help !

Hi Alban,
Thank you for providing the additional details about your environment. I investigated this issue further and was finally able to reproduce it on my Mac. It happens extremely rarely, but it does happen.
As it turns out, the root cause is two-fold:

out-of-order events in Chrome (onpointermove event with buttons: 0 sometimes fires before the corresponding onpointerup event)
the fix implemented in #48

I'm wondering if you can help me test the fix in your environment. The patched version is available here:
https://yet-another-react-lightbox-2caw0pqcb-igor-danchenko.vercel.app/examples/basic
I'd really appreciate it if you could give it a go in your environment and see if it addresses this bug.

I'll go ahead and release this fix since I no longer see this issue in my tests. Please let me know if you have any feedback.


Can’t detect modified files

I modified a file in my local repo, but Code can’t detect it, and refused to commit.
The modified file is a GitHub Actions file, which is located in a hidden folder /.github/workflows/CI.yml.

Restarting Code is useful. It detected the files after restarting. However, I think it is a bug, because it can’t act immediately.

Hello. In that case, you can also tap the refresh button at the bottom of explorer. It will reload the directory as well as the Git status.
Nevertheless, Git support should be drastically improved in the coming update including faster cloning, branching and detached head mode.


BIA-643 Update GradingPeriodDim tests to run on Postgres

The GradingPeriodDim tests will now run against Postgres for DataStandard32 only. They have their own copy of the data insert script along and with a schema xml file, which had modifications made to match how things need to work in Postgres with being all lowercase for columns, updated datatypes for the columns, and removing top 1 from the select queries.

Something I noticed is that when I comment out the where clause on the view, no tests fail, which is a bug. The problem is that this is not Postgres specific. SQL Server version has the same issue. The question would be: Should this be part of the scope of the ticket. I would say the answer is No.
We'll have to talk to David C. about this.
But then, on the other hand, fixing this shouldn't be very tricky and we could just go ahead and fix it right away.  I don't know...

Something I noticed is that when I comment out the where clause on the view, no tests fail, which is a bug. The problem is that this is not Postgres specific. SQL Server version has the same issue. The question would be: Should this be part of the scope of the ticket. I would say the answer is No.
We'll have to talk to David C. about this.
But then, on the other hand, fixing this shouldn't be very tricky and we could just go ahead and fix it right away. I don't know...

Personally, I usually like to fix a bug like this (without a separate ticket) when it doesn't substantially increase: development effort, testing effort, and the risk that something will break for the end-user. What you guys choose to do is... your choice though. Not mine, So please feel perfectly free to ignore me.

Something I noticed is that when I comment out the where clause on the view, no tests fail, which is a bug. The problem is that this is not Postgres specific. SQL Server version has the same issue. The question would be: Should this be part of the scope of the ticket. I would say the answer is No.
We'll have to talk to David C. about this.
But then, on the other hand, fixing this shouldn't be very tricky and we could just go ahead and fix it right away. I don't know...

Personally, I usually like to fix a bug like this (without a separate ticket) when it doesn't substantially increase: development effort, testing effort, and the risk that something will break for the end-user. What you guys choose to do is... your choice though. Not mine, So please feel perfectly free to ignore me.

In standup we came to an agreement that any further ones we find like this in the postgres conversion we would create separate tickets for if it turns out to be a lot of work to address any underlying issues with the tests themselves, beyond the conversion. In this case it did not appear to be a lot of work to include it, so we are including it in this PR.

Something I noticed is that when I comment out the where clause on the view, no tests fail, which is a bug. The problem is that this is not Postgres specific. SQL Server version has the same issue. The question would be: Should this be part of the scope of the ticket. I would say the answer is No.
We'll have to talk to David C. about this.
But then, on the other hand, fixing this shouldn't be very tricky and we could just go ahead and fix it right away. I don't know...

This has now been addressed and can be re-reviewed.

Something I noticed is that when I comment out the where clause on the view, no tests fail, which is a bug. The problem is that this is not Postgres specific. SQL Server version has the same issue. The question would be: Should this be part of the scope of the ticket. I would say the answer is No.
We'll have to talk to David C. about this.
But then, on the other hand, fixing this shouldn't be very tricky and we could just go ahead and fix it right away. I don't know...

This has now been addressed and can be re-reviewed.

Are we creating a bug ticket to cover this new scenario on SQL Server? As it is right now, if I comment out the where clause on SQL Server no tests fail.

Something I noticed is that when I comment out the where clause on the view, no tests fail, which is a bug. The problem is that this is not Postgres specific. SQL Server version has the same issue. The question would be: Should this be part of the scope of the ticket. I would say the answer is No.
We'll have to talk to David C. about this.
But then, on the other hand, fixing this shouldn't be very tricky and we could just go ahead and fix it right away. I don't know...

This has now been addressed and can be re-reviewed.

Are we creating a bug ticket to cover this new scenario on SQL Server? As it is right now, if I comment out the where clause on SQL Server no tests fail.

No additional ticket is needed. This was a miss on my part for not addressing them in the last commit, but they have now been addressed as part of the most recent commit.


now possible to use aggregators with localnames, in viewing mode (fn.…

now possible to use aggregators with localnames, in viewing mode (fn.pivot)

Danish language added

I've ported the DA locale file into coffeescript, thanks! :)


Fixes AgentRandom uniform int

Tested 600 ints (from the same thread) in the range [0, 5]
Got this histogram, which seems as you would expect.
0: 118
1: 86
2: 89
3: 109
4: 90
5: 110

curand rng returns in the range (0, 1], so the math is a bit arkwards.
Furthermore, as we return an inclusive range, we must add an additional 1 to the range (max-min).
Perhaps there's a slight argument for the upper bound to be exclusive to simplify the maths.

Probably worth aiming to be consistent with what users would expect in terms of inclusivity.
std::uniform_int_distribution is a <= i  <= b.
Pythons random.randint(a, b) is a <= N <= b (although randrange(start, stop) also exists as start <= N < stop
In terms of floating point:

std::uniform_real_distributionisa <= x  < b(which is apparently the "rectangular distribution" of[a,b)`
Python random.random() is  [0.0, 1.0)

So curand seems to differ from what standard libraries suggest. Would it not be better to modify AgentRandom::uniform() so that it returns [0.0, 1.0) instead of curands (0.0, 1.0], then the other methods would be cleaner and curand would be more like the rest of the world? Might be a key point when porting from flamegpu 1 though.

Trivial change, I just err on the side of 'that's more ops'.

I would assume that the cost of an extra floating point subtraction is going to be negligible compared to the cost of actually generating a random number.
Could also expand the testing of RNG (#330) while i'm blocking changes to CUDASimulation

I'm not really sure how #330 should look. I certainly don't think it will fit inside the regular test suite.
Random is random, one trusts it does what it's documented to do.

No, but we are documenting the inclusivity of the ranges for float and int variants, so atleast verifying that would be good.
The random integer generation is also done by us (from the curand float) so it's probably worth making sure that distribution is approximately correct (as a common mistake with doing that (in C atleast) is to have too few at the upper bound due to rounding)

The int generation works now, small histogram suggests its got no huge bias, and I can't see it being changed further (besides lopping off the inclusive upper bound), so that doesn't seem like an issue.

Int generation seems to be inclusive most places so i'd keep it inclusive.
Ranges should certainly be tested though (as changing what uniform returns would potentailyl lead to out of bounds etc) and worth having a test.

I want to make some more changes to this before it's merged (mostly to how double uniform is calculated)

Actually can't do what I thought I could, so won't bother.

Windows/Debug/SEATBELTS=ON Python tests pass (I wanted to check RTC would build the updated header)

===================================== 648 passed, 11 skipped in 331.66s (0:05:31) =====================================


chore: release 1.1.0

:robot: I have created a release *beep* *boop*
1.1.0 (2022-10-19)
Features

support nestjs@9 (9b15afe)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/Val-istar-Guo/nestjs-take-type/releases/tag/v1.1.0 :sunflower:


Enhance the import order

add more groupings so similar directories are grouped
enforce newlines between import groups for readability
alphabetize imports
warn about import order instead of erroring

This is fairly opinionated. I'd be happy to leave the grouping as is, instead of grouping parent and sibling imports.
This import rule is only good if you have an autoformatter that can do it for you (VSCode does it for me). Otherwise it's very painful.

I'm going to close this out because I want to use the Typescript autoformatter's defaults and not force folks to use eslint unnecessarily.
In the future if I feel like spaces between import groups or alphabetization would provide a big benefit, I may reopen this PR.

@pangolingo definitely open to continuing the discussion!


"Please install SwiftGen"

Hi! Beginner dev here. I love your app! I've started using it as I was looking build something like this for my first project. I'm trying to build this and it says "Please install SwiftGen." I did a podinstall of SwiftGen and also did a brew install of SwiftGen but it still is asking me to do this. I'm not sure what to do, kinda stumped. Is this something you might know how to get it to build? Thank you!

For some reason I had swiftgen linked in my /usr/local/bin (probably some rushed work-related setup)
If you update your repository with the master branch it should work now.
I added Homebrew's path to the script.
If you have any other issues, feel free to ask. 😉

Brilliant! Thank you, now to dig through it a bit. Just wondering, why did you use SwiftGen? I haven't heard about it before, but I assume it's just cause I'm new. It looks really useful!

@pakerwreah your "buy me a coffee" link is broken btw ;)