I can't make it work for target x86_64-unknown-linux-musl

I have a Dokerfile similar to what is described in this repo README file.
The cache is not working.
Expected behaviour
I suppose the build should use the cached layer if I do not change any file in src directory or the Cargo.toml or Cargo.lock files.
In other words, this line:
RUN cargo build --release --target x86_64-unknown-linux-musl --bin rust-cargo-chef-test

should be cached if you do not change those files.
Actual behavior
The cargo build compiles all the files even if you only change the README file.
How to reproduce
I've created a repo with the minimum code to reproduce the problem. You can reproduce it running:
cd /tmp
git clone git@github.com:josecelano/rust-cargo-chef-test.git
cd rust-cargo-chef-test

If you run the build script twice, the second time, you will use the cache for all the layers:
$ ./build.sh
./build.sh: line 3: UID: readonly variable
Building docker image ...
UID: 1000
[+] Building 2.0s (24/24) FINISHED
 => [internal] load build definition from Dockerfile                                                                              0.1s
 => => transferring dockerfile: 1.31kB                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 61B                                                                                0.0s
 => [internal] load metadata for docker.io/library/alpine:latest                                                                  1.3s
 => [internal] load metadata for docker.io/clux/muslrust:stable                                                                   1.6s
 => [stage-3 1/7] FROM docker.io/library/alpine:latest@sha256:8914eb54f968791faf6a8638949e480fef81e697984fba772b3976835194c6d4    0.0s
 => [chef 1/3] FROM docker.io/clux/muslrust:stable@sha256:368156460a4f9a4498cb7bf842096f2e13bcfac982a4b16c660733fad452c3b9        0.0s
 => CACHED [chef 2/3] WORKDIR /app                                                                                0.0s
 => CACHED [chef 3/3] RUN cargo install cargo-chef                                                                                0.0s
 => CACHED [planner 1/3] WORKDIR /app                                                                                0.0s
 => [internal] load build context                                                                                0.1s
 => => transferring context: 82.91kB                                                                                0.1s
 => CACHED [stage-3 2/7] WORKDIR /app                                                                                0.0s
 => CACHED [stage-3 3/7] RUN apk --no-cache add ca-certificates                                                                   0.0s
 => CACHED [builder 2/6] RUN adduser   --disabled-password   --gecos ""   --home "/nonexistent"   --shell "/sbin/nologin"   --no  0.0s
 => CACHED [planner 2/3] COPY . .                                                                                0.0s
 => CACHED [planner 3/3] RUN cargo chef prepare --recipe-path recipe.json                                                         0.0s
 => CACHED [builder 3/6] COPY --from=planner /app/recipe.json recipe.json                                                         0.0s
 => CACHED [builder 4/6] RUN cargo chef cook --release --target x86_64-unknown-linux-musl --recipe-path recipe.json               0.0s
 => CACHED [builder 5/6] COPY . .                                                                                0.0s
 => CACHED [builder 6/6] RUN cargo build --release --target x86_64-unknown-linux-musl --bin rust-cargo-chef-test                  0.0s
 => CACHED [stage-3 4/7] COPY --from=builder /etc/passwd /etc/passwd                                                              0.0s
 => CACHED [stage-3 5/7] COPY --from=builder /etc/group /etc/group                                                                0.0s
 => CACHED [stage-3 6/7] COPY --from=builder --chown=appuser   /app/target/x86_64-unknown-linux-musl/release/rust-cargo-chef-tes  0.0s
 => CACHED [stage-3 7/7] RUN chown -R appuser:appuser /app                                                                        0.0s
 => exporting to image                                                                                0.0s
 => => exporting layers                                                                                0.0s
 => => writing image sha256:0794352934801e6658229724f9036f21b38831c01c261e97371f5f27dc496fef                                      0.0s
 => => naming to docker.io/library/rust-cargo-chef-test                                                                           0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

but if you change something in the README file and you rerun the build script it will compile the dependencies again:
...
 [builder 6/6] RUN cargo build --release --target x86_64-unknown-linux-musl --bin rust-cargo-chef-test
...

Notes
I tried to fix it COPYING only the src dir and the Cargo.toml and Cargo.lock files:
COPY ./src/* Cargo.toml Cargo.lock ./
RUN cargo build --release --target x86_64-unknown-linux-musl --bin rust-cargo-chef-test

but it does not work. The layer is cached, but the binary does not work.
The actual project where I have this problem is this one: https://github.com/torrust/torrust-tracker/pull/123
Am I missing something?

I believe this is due to #149, since I faced the same issue and resolved it by stripping in the Dockerfile instead.


conflicts prevention

When assigning a student check if the student application for that year has no assignment.
If it was already assigned => return error with information about where it was already assigned.
This error message will be shown in the frontend

Closing as this was implemented in this PR #567
The current error is
{
  http: 409,
  reason: "This student does already have a contract",
}


[BEAM-11057] Make BigQueryIO.Read.withTestServices methods public

Using the BigQueryIO.Read transform in unit tests is difficult without these methods, so lets make them public like the Write equivalents.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] Update CHANGES.md with noteworthy changes.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

that makes sense to me. Thanks @steveniemitz


Add a page about a cool website where you can learn how to program

As well as include some examples of the work I've done using the site!

Cool :)


Fix checker bug that reports all tags as unknown

Description
I forgot to change the output of an append call, which broke the "unkown tag" check.
This is a simple fix of that.
Type of change

Bug fix (non-breaking change which fixes an issue)

Testing steps
make before_commit

Codecov Report

Merging #62 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #62   +/-   ##
=======================================
  Coverage   78.89%   78.89%
=======================================
  Files           7        7
  Lines         199      199
=======================================
  Hits          157      157
  Misses         35       35
  Partials        7        7

Continue to review full report at Codecov.

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


Issue with hosting multiple local bot

Hi, I want to run multiple local bot on same local bot api server, on port 8081, but whenever one bot started, the other previously started bot get terimated. why? any additional args need to passed when starting bot api server?
my command
./telegram-bot-api --api-id=123 --api-hash="123" --local

What do you mean by "the other previously started bot get terimated"? The Bot API server has no way to "terminate" the bot.

the other local bot that already started, get terminated, I think this has something to do with localhost port maybe, any idea?

Bots use the server on the given port, they don't interfere with the server in any way. What do you mean by "the other local bot", and who terminates it?


chore: bump Snowflake.Data from 4.0.0 to 4.1.0

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 73.30%. Comparing base (3c44819) to head (e92fd69).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1091   +/-   ##
=======================================
  Coverage   73.30%   73.30%
=======================================
  Files         293      293
  Lines        3679     3679
  Branches      632      632
=======================================
  Hits         2697     2697
  Misses        812      812
  Partials      170      170

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fix error for autocomplete plugin

This is related to #515

Updated library
Updated custom.js and min version

Currently tested on local files and works

Please have a look of my fix (#627), the issue should be due to bug during init

Closing in favor of #627


Modernize and DRY show-full-names (WIP)

Includes #550. Ignore this PR until that one is merged.

@bfred-it Can you do the below?

I don't think we should add the name here as it's added right below anyways:

@sindresorhus I think this PR already did it, it's already limited to .js-discussion (which only includes the timeline)

Looks good :)


Response of endpoint /corpora/corpusname/play/playname/metadata of single play corpora

If a corpus consists of a single play only, the response of the endpoint is an object containing the metadata; but if there are more plays in a corpus the endpoint returns an array. Maybe this should always be of type array for consistency reasons? I had a script crashing because of this.
to reproduce see: https://staging.dracor.org/api/corpora/dutch/metadata

same for https://staging.dracor.org/api/corpora/pol/metadata

This will be resolved with the merge of #202.


ToolTipDemo Sample

Since java 9 there is an API to control delay before showing. I suppose in my sample it's java 8.
Do you plan java 9 and later demo ? Should I improve my demo to show how to uninstall tooltip ?
First try https://github.com/JonathanGiles/fx-ui-controls/pull/13

Tooltip demo improved to show how to control new java 9 api.


https://www.linux.org/threads/helpline-live-how-do-i-contact-blockchain-support-blockchain-support-number.52248/

Aka.ms link name
https://www.linux.org/threads/helpline-live-how-do-i-contact-blockchain-support-blockchain-support-number.52248/
Category (Optional. Select None to auto-select)
None

https://www.linux.org/threads/helpline-live-how-do-i-contact-blockchain-support-blockchain-support-number.52248/


remove different scale logic for spacings

as we discussed in #68 I switched the scale logic of spacings to align with all the other scales.

0 is added automatically, no need to add it to config
I'm also using withUnits() so one can add the optional unit (I think this should also be added to all scales)

Woot!


Use dense fetches in Query::get and Query::iter_many

Objective
Found while investigating #12476 and #12474. Apparently the Rust compiler cannot optimize out the archetype fetch if it's not used by the fetch type in QueryState::get_unchecked_manual.
Solution
Use the same technique for branching on constants to use dense fetches instead of archetypal fetches. The generated assembly confirms that there's one less memory access for calls to Query::get on dense queries.
Performance
TODO: Microbenchmark

did a benchmark for this,but the results appear strange as there was no noticeable performance gain, even worse than main in table-storage.


POLL: onTeleport Permissions

Ok. So i've been thinking a lot about teleport permissions, and here was one of my latest commit messages (revised to make more sense):
"There are still some access caveats. When an op or console requests that a player be teleported to you, there's currently not a good way to tell the teleport event that since an authority figure issued the teleport, override the user's teleport settings. So we either get full control of all plugins and limited control to override it, or unlimited control to override with other plugins having unrestricted access to teleport players
locations…"
The reason for this is the PlayerTeleportEvent. (Source: https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/event/player/PlayerTeleportEvent.java)
public PlayerTeleportEvent(Player player, Location from, Location to);

The Current situation
This is the only way of telling if other plugins have teleported players (yes, yes, I know about onPlayerPortal, but for this issue, I'm lumping the two into one). However, this event does not tell us who requested the teleport. Was it the player? Or the console? We can't ever know with this method. Asking the Bukkit team to change the event is way out of the question, 99% of plugins don't care about this. This is what we are doing now, so even if you issue a mvtp fernferret world from the console, if player fernferret does not have multivers.access.world he will not be teleported. MVCore's logic will allow it, but when we monitor this event:
    @Override
    public void onPlayerTeleport(PlayerTeleportEvent event) {
        if (event.isCancelled()) {
            return;
        }
        MultiverseWorld fromWorld = this.worldManager.getMVWorld(event.getFrom().getWorld().getName());
        MultiverseWorld toWorld = this.worldManager.getMVWorld(event.getTo().getWorld().getName());
        if (event.getFrom().getWorld().equals(event.getTo().getWorld())) {
            // The player is Teleporting to the same world.
            this.plugin.log(Level.FINER, "Player '" + event.getPlayer().getName() + "' is teleporting to the same world.");
            return;
        }
        if (MultiverseCore.EnforceAccess) {
            event.setCancelled(!playerCanGoFromTo(fromWorld, toWorld, event.getPlayer()));
            if (event.isCancelled()) {
                this.plugin.log(Level.FINE, "Player '" + event.getPlayer().getName() + "' was DENIED ACCESS to '" + event.getTo().getWorld().getName() +
                        "' because they don't have: multiverse.access." + event.getTo().getWorld().getName());
            }
        } else {
            this.plugin.log(Level.FINE, "Player '" + event.getPlayer().getName() + "' was allowed to go to '" + event.getTo().getWorld().getName() + "' because enforceaccess is off.");
        }
    }

It will be caught on this line REGARDLESS
            event.setCancelled(!playerCanGoFromTo(fromWorld, toWorld, event.getPlayer()));

I've thought about using onPlayerChangeWorld, but that fires after a player changes worlds, meaning we'd have to take them back... If anyone has any good ideas on this, feel free to continue discussion here, or even issue a pull request!
What are your thoughts?

If I understood correctly... you could check the sender of the command and if they have said permissions... you could grant the target player temporary immunity to the permission effects, for just one teleport or for the next few seconds/ticks.

I would like two options:

The hard enforce how it is now where you can't change worlds unless you have the permission to enter it
An option to only check the senders permissions when hes issuing mvtp and nothing else (so you can don't have the permission to go to a certain world you still can use portals to that world but not port to the world with mvtp yourself - but you also can get send there by an op) - this means don't care about other plugins at all i mean MV shouldn't be the police ... it should be up to the user how they grant access to other plugins commands

Ugh, this is pretty ugly:
You can tell the difference between a console command and a player command, right? So if it's from the console give the player a one-time pass to get teleported to the world they don't have access to. Clear the pass during the onTeleportEvent, and perhaps clear all passes every five seconds.
That's a dirty, dirty hack. Please don't use. :D

I actually went with a static list for the time being. It works, but may be refactored in the future.


[$500] [Simplified Collect][Tags] Create WorkspaceTagsPage

Implement this section of the Simplified Collect: Tags design doc
cc @waterim
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01094ffd1a31a41461
Upwork Job ID:<PHONE_NUMBER>117129728
Last Price Increase: 2024-02-27

Hello, Im Artem from Callstack and would like to take this one

@waterim is hired and working on this.

Hey, started today, will post a PR soon!

Thanks for letting us know @waterim. Did you get a chance to create that draft PR yet?

PR was merged

Ah missed that, thanks @luacmartins!

payment tomorrow if no regressions
Payouts due:
Contributor+: $500 @abdulrahuman5196 (offer in Upwork - https://www.upwork.com/nx/wm/offer/101352853)
Upwork job is here.

PR is in production so I paid this out based on this payment summary https://github.com/Expensify/App/issues/37309#issuecomment-1993446283
@abdulrahuman5196 do we need a regression test for this?

@abdulrahuman5196 do we need a regression test for this?

Okay thanks @luacmartins - I think this can be closed since it's paid out! Let me know if I missed anything.


no arrows with certain config

I have this config:
var justDateDatePicker = $('.justdatedatepicker').datetimepicker({
        minView: 2,
        format: 'yyyy-mm-dd',
        autoclose: true
    });

and I noticed it uses different code for arrows:

instead of

other datepickers works ok.

It did happen with me too and I fixed it by changing "icon-arrow-left" to "glyphicon-arrow-left" and same for right icon.


adding parameter-less constructor

I'm trying to use the .Net SDK with PowerShell, with mostly-positive results.
One of the nicer features of PowerShell is ability to create a new object and populate its fields/properties by casting a hashtable as the type.
For example:
[pscustomobject]@{
  FirstName = 'First'
  LastName = 'Last'
}

FirstName LastName
--------- --------
First     Last

For this to work, however, requires that the class have a parameter-less construction.  Unfortunately, the AbstractFunction class, which is the base of many of the C_UD classes (e.g. BillCreate) doesn't have such a constructor.
Consequently, when attempting use this feature of PowerShell:
# assuming that Inacct.SDK.dll are located in the same directory as the script
Import-Module './Intacct.SDK.dll'
Import-Module './Microsoft.Extensions.Logging.Abstractions.dll'

$BillCreate = [Intacct.SDK.Functions.AccountsPayable.BillCreate]@{
    VendorId = 'VENDORA'
    TransactionDate = '01/01/2021'
    GlPostingDate = '01/01/2021'
    DueDate = '02/01/2021'
    Description = 'lorem ipsum'
    BillNumber = 'INV-1234'
    ReferenceNumber = 'REF-ABCD'
}

the script fails:
7 |  $BillCreate = [Intacct.SDK.Functions.AccountsPayable.BillCreate]@{
  |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  | Cannot convert the "System.Collections.Hashtable" value of type "System.Collections.Hashtable" to type "Intacct.SDK.Functions.AccountsPayable.BillCreate".

The "work-around" is to call the class' constructor and populate each field individually:
$BillCreate = [Intacct.SDK.Functions.AccountsPayable.BillCreate]::new()
$BillCreate.VendorId = 'VENDORA'
$BillCreate.TransactionDate = '01/01/2021'
$BillCreate.GlPostingDate = '01/01/2021'
$BillCreate.DueDate = '02/01/2021'
$BillCreate.Description = 'lorem ipsum'
$BillCreate.BillNumber = 'INV-1234'
$BillCreate.ReferenceNumber = 'REF-ABCD'
$BillCreate

Doing so creates the expected graph:
ControlId           : 452c9600-d19d-4192-b4ca-480fb3ecf6bb
RecordNo            :
VendorId            : VENDORA
TransactionDate     : 1/1/2021 12:00:00 AM
GlPostingDate       : 1/1/2021 12:00:00 AM
Action              :
SummaryRecordNo     :
BillNumber          : INV-1234
Description         : lorem ipsum
ExternalId          :
BaseCurrency        :
TransactionCurrency :
ExchangeRateDate    :
ExchangeRateValue   :
ExchangeRateType    :
DoNotPostToGL       :
DueDate             : 2/1/2021 12:00:00 AM
PaymentTerm         :
ReferenceNumber     : REF-ABCD
OnHold              :
PayToContactName    :
ReturnToContactName :
AttachmentsId       :
Lines               : {}
CustomFields        : {}

It would be really helpful if the AbstractFunction class had a parameter-less constructor.
As such, I made a modification to the AbstractFunction class to add a parameter-less constructor, while changing the existing construction to not have a default value of null for the controlId.

Is there something that I need to do get this pull merged?

This has been implemented.


Support on OpenCollective

Hi there!
We've been using styled-icons for https://opencollective.com for some weeks now, and I've started using it on some of my personal projects. I'm really happy with this library and would like to say thanks, so I've pledged to give $5/month on https://opencollective.com/styled-icons
I'm sure other people would be happy to support the work that you're doing here :slightly_smiling_face:

Nice, thanks for the support!  I'll get OpenCollective set up here...  Right now, the flow for claiming the collective doesn't seem to be functioning:

Well this is not good, sorry about that :disappointed: I've opened an issue and will keep you updated very soon.

Awesome, thanks for the quick turnaround, I was able to claim the collective!  🎉

I've made a first donation from my personal account, will start monthly support using Open Collective gift card in January :wink: Thanks again for the great work, hope you'll get the support this deserves!

Awesome, thank you so much!  I appreciate it and am glad you're finding the project useful.  👍


If lobby owner leaves lobby ownership should be passed onto another user

Implemented in:
https://github.com/sopra-fs23-group-13/meme-it-server/commit/87bac67b0216b67495b3d31d2abde75580803d89
Had small bug, fixed in:
https://github.com/sopra-fs23-group-13/meme-it-server/commit/4a71cddae042736e8f8814b007c8d9b0820b86f2


Make the sidebar external links into hyperlinks

Kept it the same as you had it!

Codecov Report

Merging #436 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #436   +/-   ##
=======================================
  Coverage   92.98%   92.98%
=======================================
  Files          45       45
  Lines        3037     3037
=======================================
  Hits         2824     2824
  Misses        213      213

Continue to review full report at Codecov.

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


dynamic styles mode

@rauchg and I discussed about possible ways to support dynamic styles i.e. allow props and other dynamic values which #80 doesn't.
From slack:

@g and I are contemplating a "dynamic" mode for styled-jsx where you pay a small penalty in performance but you can write stuff like

<style jsx dynamic>{`
 p {
   width: 100%;
   color: ${someProp ? 'red' : 'blue'}
 }
`}</style>

Basically this mean separate static css from dynamic one, render static css with the current system and inline the dynamic one i.e. each instance will get its own styles.
In order to do so we would need a CSS parser to split things up so that the example above becomes:
[
  {
    dynamic: false,
    css: 'p { width: 100% }'
  },
  {
    dynamic: true,
    css: 'p { color: ___styled-jsx-expression_placeholder_n_1___ }'
  }
]

which eventually compiles down to
<_JSXStyle styleId={woot} css={"p[data-jsx=\"woot\"] {width: 100%;}"} />
<_JSXStyle dynamic styleId={woot2} css={`p[data-jsx=\"woot2\"] {color: ${someProp ? 'red' : 'blue'}}`} />

When dynamic is set our component renders a regular style tag instead of returning null.
To parse the CSS we could write a tiny parser or use something like CSSTree since it seems to be fairly fast https://csstree.github.io/docs/validator.html (we could reuse this for the css transformation as well).

@lahmatiy showed me how this could be done with CSSTree
https://gist.github.com/giuseppeg/2699094fc7f9f355e4289f6432266a83
@thysultan would it be as easy to do so with a new Stylis middleware?

Could add to the existing middleware
var selector = '', collection = '', dynamic = {};

function middlware (context, value) {
	// selector
	if (context === 1) selector = value;

	// property, and some rule to only pull actual dynamic props
	if (context === 2) {
		if (dynamic[selector] === void 0) dynamic[selector] = [];

		dynamic[selector].push(value);

		// removes dynamic prop
		return '';
	}

	// complete
	if (context === 6) {
		selector = '';
		collection = '';
                dynamic = {};

		for (var key in dynamic) collection += key + dynamic[key].join('') + '}';

		// now you have all dynamic rule sets stored in collection
		// selector { ...dynamic props } ...etc
	}
}

@thysultan 👍 that's indeed really easy, thank you!

render static css with the current system and inline the dynamic one i.e. each instance will get its own styles

@rauchg does this make sense? or can you think of a better way to optimize and avoid instance based styles?
Instead of allowing expressions like this ${ someProp ? 'red' : 'blue' } should we add support for functions only? ${ ({someProp}) => (someProp ? red : blue) }?
Also I think that we could auto detect dynamic styles if we want, do you still want to make it explicit?

I would love to see support for the styled-components-like function interpolation. Ideally using (props, context) => to match React in other places. It feels like it enables some powerful things.

 Praying styled-jsx-postcss sticks around too.
Dynamic styles via props + PostCSS = 😍😍😍

Dynamic styles via props + PostCSS

This is going to be hard-ish to do since dynamic parts and in general expressions are replaced with placeholders. Also PostCSS runs at compile time not runtime.
@ianstormtaylor yup we are going to adopt a similar api (props, context) => {}. Are you using styled-jsx at Segment by any chance? If so maybe you guys can contribute? I could use some help.
About the priority this is going to happen after #148 (blocking) and a bunch of bug fixes and other minor features.

This is going to be hard-ish to do since dynamic parts and in general expressions are replaced with placeholders.

Do you have any ideas for how to approach this? I experimented a bit with a similar concept (template literals in CSS). My approach ran the file in a VM, somehow ignored the CSS (I forget exactly), captured via regex/parsed the JS and inserted it back where it was expressed.
I'm sure it's possible and could help out with this in the future (swamped for the next week at least) if you're interested in a proof of concept.

Also PostCSS runs at compile time not runtime.

styled-jsx doesn't compile? How can it SSR? I thought SSR meant it just outputted a bunch of static (compiled) stuff. 🤔

Sure why not, I would take a look at what you've got.
To be clear the problem is that in order for Stylis1 to work we need to replace expressions with placeholders so that the parser gets a simple (valid) CSS string.
This means that any expression (including dynamic styles in the future) is not processed by Stylis – not a big deal with plain styled-jsx probably since Stylis only adds scope (and autoprefixes) but in the case of PostCSS it could be worse.
#182 could solve this problem I think.
[1] (the css processor which adds scoping by rewriting selectors to .foo[data-jsx="id"])

:+1:, the style attribute can't always account for things, like hover states and such.
/* doesn't work at the moment */
function ColorSwatch ({ color }) {
  return <div className='root'>
    <style jsx>{`
      .root { background: ${color}; }
      .root:hover { background: ${lighten(0.10, color)}; }
    `}</style>
  </div>
}

<ColorSwatch color='#aaddff' />

...defining a dynamic color for a hover state isn't possible in any way, at the moment.

@rstacruz I've got a branch which adds support for dynamic styles almost ready :) I might publish a beta this week.

Fixed by #288


Add integration tests that run against a real Redshift cluster

This PR adds end-to-end integration tests that run against a real Redshift cluster.
I moved the build definition from .sbt to .scala format in order to use SBT's standard IntegrationTests configuration.
I configured the Travis build to store Redshift credentials using encrypted environment variables. To minimize security risks, Travis does not allow pull requests from third-party forks to run tests using these credentials.

Current coverage is 84.69%

Merging #41 into master will not affect coverage as of 3bc0fca

@@            master     #41   diff @@
======================================
  Files           10      10
  Stmts          307     307
  Branches        67      67
  Methods          0       0
======================================
  Hit            260     260
  Partial          0       0
  Missed          47      47

Review entire Coverage Diff as of 3bc0fca

Powered by Codecov. Updated on successful CI builds.

Alright, the basic test is now passing (fixed the non-deterministic failure issue), so I'm now going to focus on enabling more tests.

All tests are now enabled, but some seem to fail due to problems in the tests themselves (due to not using a HiveContext) or due to bugs.

This is now ready for review.  Let's not commit until #42 goes in and until I have time for one final pass. This isn't all of the tests that I want to add but it's a reasonable first cut; I'll add more tests and fix more potential bugs in smaller followups.

This is awesome! LGTM.

This was rebased on top of #32, but I'm going to try to back out of that rebase so that we can write a proper regression test for that issue.

Alright, I have now backed out all non-test-related changes and have addressed the review comments, so I'm going to merge this now and will continue to iterate in followups.


Xcode validation - unsupported architectures x86_64, i386

Hi
I have finished creating an App using appery.io in which i have used this cordova plugin.
The plugin works great in the app when testing using an IPA file.
I now need to upload to Apple App Connect Store and its failing on 2 frameworks used by this plugin
IRLDocumentScanner
TOCropViewController
These 2 frameworks support x86_64, i386, arm64 & armv7.
The problems is that Apple no longer allow x86_64, i386.
Can I get these frameworks without x86_64, i386 ?
thanks in advance

Hey those architectures are for the simulator. Try the solution in #18 to get around this issue
Cheers,
Chris
Neutrinos


[Usage] How to load fine-tuned lora checkpoint for CLI inference

Describe the issue
Issue:
Hi! Could you explain how to load the model weights for lora after fine-tuning? Also the mm_projector seems to need be separately loaded? I did not find an argument to specify the path to the mm_projector for cli inference. Thanks for your help!

does the scripts/finetune_lora.sh tune the mm_projector ?  or Just the LLM? I am also trying to fine-tuned with lora, but a little bit confused with the setting

Have you got any solution to load the fine-tuned model using LORA?

I am able to load the model using the following parameters:
python -m llava.serve.cli --model-path /home/user/LLaVA/checkpoints/llava-v1.5-13b-task-lora --model-base /home/user/llava-v1.5-7b --image-file "/home/user/LLaVA/digital_tampering/test_data/image.jpeg"

Try to use the Predictor class in the file predict.py and replace the setup function of the class with this:
def setup(self) -> None:
        self.tokenizer, self.model, self.image_processor, self.context_len = load_pretrained_model("checkpoints/llava-v1.5-13b-task-lora", model_name="llava-v1.5-13b-lora-finetuned", model_base="liuhaotian/llava-v1.5-13b", load_8bit=False, load_4bit=False)
(If you have 'lora' in the model_name, you don't need the mm_projector)
It is working for me after launching this finetune script scripts/v1_5/finetune_task_lora.sh with my own parameters.

我可以使用以下命令加载模型：
python -m llava.serve.cli --model-path /home/user/LLaVA/checkpoints/llava-v1.5-13b-task-lora --model-base /home/user/llava-v1.5-7b --image-file "/home/user/LLaVA/digital_tampering/test_data/image.jpeg"

When I use this command for inference, the following error occurs, but this file is missing from the fine-tuned file. What is the reason?
FileNotFoundError: [Errno 2] No such file or directory: './checkpoints/llava-data_know/mm_projector.bin'

我可以使用以下命令加载模型：
python -m llava.serve.cli --model-path /home/user/LLaVA/checkpoints/llava-v1.5-13b-task-lora --model-base /home/user/llava-v1.5-7b --image-file "/home/user/LLaVA/digital_tampering/test_data/image.jpeg"

When I use this command for inference, the following error occurs, but this file is missing from the fine-tuned file. What is the reason? FileNotFoundError: [Errno 2] No such file or directory: './checkpoints/llava-data_know/mm_projector.bin'

You need to give the parameter model-name with the string 'lora' in the name, for example model_name="llava-v1.5-13b-lora-finetuned". Then the script will understand that it is a different type of model.

我可以使用以下命令加载模型：
python -m llava.serve.cli --model-path /home/user/LLaVA/checkpoints/llava-v1.5-13b-task-lora --model-base /home/user/llava-v1.5-7b --image-file "/home/user/LLaVA/digital_tampering/test_data/image.jpeg"

When I use this command for inference, the following error occurs, but this file is missing from the fine-tuned file. What is the reason? FileNotFoundError: [Errno 2] No such file or directory: './checkpoints/llava-data_know/mm_projector.bin'

You need to give the parameter model-name with the string 'lora' in the name, for example model_name="llava-v1.5-13b-lora-finetuned". Then the script will understand that it is a different type of model.

Thank you very much for your reply, I will be able to use it after adding it.

@Nomiluks could you produce a slightly more full example than what is found in https://github.com/haotian-liu/LLaVA/blob/main/docs/Finetune_Custom_Data.md ? It looks like you were successful at training a LoRA and saving a checkpoint.
I would like to run https://github.com/haotian-liu/LLaVA/blob/main/scripts/v1_5/finetune_task_lora.sh
But there are no instructions provided as to which parameter is the images directory, and then which JSON is your custom dataset as indicated in Finetune_Custom_Data.md
What is deepspeed ./scripts/zero3.json \
And is there documentation on the 37 command line flags here? I'd love to see just a minimal tutorial that I could follow since I was able to successfully prepare a custom dataset

Following things I did:
note: Please make sure you have installed the necessary dependencies and you have an activated conda environment.

Update the finetune_task_lora.sh:

--data_path ./playground/data/complete_normalized_training_with_paths.json
--image_folder ./playground/data/images
--output_dir ./checkpoints/llava-v1.5-7b-task-lora
--per_device_train_batch_size 12 ----> Due to memory constraints

conda activate llava

Run the script : bash scripts/v1_5/finetune_task_lora.sh

Model test: python -m llava.serve.cli --model-path "checkpoints/llava-v1.5-7b-task-lora" --model-base "llava-v1.5-7b" --image-file "training_data/test_cropped_document_samples/6599560327fb1c3dc1155689/front/front.jpg"

Try to use the Predictor class in the file predict.py and replace the setup function of the class with this:
def setup(self) -> None: self.tokenizer, self.model, self.image_processor, self.context_len = load_pretrained_model("checkpoints/llava-v1.5-13b-task-lora", model_name="llava-v1.5-13b-lora-finetuned", model_base="liuhaotian/llava-v1.5-13b", load_8bit=False, load_4bit=False)
(If you have 'lora' in the model_name, you don't need the mm_projector)
It is working for me after launching this finetune script scripts/v1_5/finetune_task_lora.sh with my own parameters.

I want to load the model predict without the conversation behavior.
I used your suggestion, but I am facing the following error:
ModuleNotFoundError: No module named 'cog'
Could you please help me to resolve this error?

Try to use the Predictor class in the file predict.py and replace the setup function of the class with this:
def setup(self) -> None: self.tokenizer, self.model, self.image_processor, self.context_len = load_pretrained_model("checkpoints/llava-v1.5-13b-task-lora", model_name="llava-v1.5-13b-lora-finetuned", model_base="liuhaotian/llava-v1.5-13b", load_8bit=False, load_4bit=False)
(If you have 'lora' in the model_name, you don't need the mm_projector)
It is working for me after launching this finetune script scripts/v1_5/finetune_task_lora.sh with my own parameters.

I want to load the model predict without the conversation behavior. I used your suggestion, but I am facing the following error:
ModuleNotFoundError: No module named 'cog'
Could you please help me to resolve this error?

It doesn't resolve the error to install this package: cog ?

@Nomiluks could you produce a slightly more full example than what is found in https://github.com/haotian-liu/LLaVA/blob/main/docs/Finetune_Custom_Data.md ? It looks like you were successful at training a LoRA and saving a checkpoint.你能提供一个比https://github.com/haotian-liu/LLaVA/blob/main/docs/Finetune_Custom_Data.md更完整的例子吗?看起来你成功地训练了一个LoRA并保存了一个检查点。
I would like to run https://github.com/haotian-liu/LLaVA/blob/main/scripts/v1_5/finetune_task_lora.sh我想跑https://github.com/haotian-liu/LLaVA/blob/main/scripts/v1_5/finetune_task_lora.sh
But there are no instructions provided as to which parameter is the images directory, and then which JSON is your custom dataset as indicated in Finetune_Custom_Data.md但是没有说明哪个参数是图像目录，然后哪个JSON是您的自定义数据集，如Finetune_Custom_Data.md所示
What is deepspeed ./scripts/zero3.json \什么是deepspeed ./scripts/zero3。json
And is there documentation on the 37 command line flags here? I'd love to see just a minimal tutorial that I could follow since I was able to successfully prepare a custom dataset这里有关于37个命令行标志的文档吗?我希望看到一个最小的教程，我可以遵循，因为我能够成功地准备一个自定义数据集

Following things I did: 我做了以下事情: note: Please make sure you have installed the necessary dependencies and you have an activated conda environment.注意:请确保您已经安装了必要的依赖项，并且您有一个激活的conda环境。

Update the finetune_task_lora.sh:   更新:

--data_path ./playground/data/complete_normalized_training_with_paths.json——data_path。/操场/数据/ complete_normalized_training_with_paths.json
--image_folder ./playground/data/images——image_folder。/操场/数据/图像
--output_dir ./checkpoints/llava-v1.5-7b-task-lora——output_dir。/检查点/ llava-v1.5-7b-task-lora
--per_device_train_batch_size 12 ----> Due to memory constraints——per_device_train_batch_size 12 ---->由于内存限制

conda activate llava   康达激活熔岩
Run the script : bash scripts/v1_5/finetune_task_lora.sh执行如下脚本:bash scripts/v1_5/finetune_task_lora.sh
Model test: python -m llava.serve.cli --model-path "checkpoints/llava-v1.5-7b-task-lora" --model-base "llava-v1.5-7b" --image-file "training_data/test_cropped_document_samples/6599560327fb1c3dc1155689/front/front.jpg"模型测试:python -m llava. server .cli——模型路径“检查点/llava-v1.5-7b-任务-lora”——模型基础“llava-v1.5-7b”——图像文件“training_data/test_cropped_document_samples/6599560327fb1c3dc1155689/front/front.jpg”

in the 4. my command is "python -m llava.serve.cli
--model-base /data1/khw/llava
--model-path /data1/khw/output_llava/merge_model-lora
--image-file /data1/khw/img/1.jpg "
but it show
Traceback (most recent call last):
File "/home/khw/miniconda3/envs/llava/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/home/khw/miniconda3/envs/llava/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/home/khw/llava/LLaVA/llava/serve/cli.py", line 126, in
main(args)
File "/home/khw/llava/LLaVA/llava/serve/cli.py", line 32, in main
tokenizer, model, image_processor, context_len = load_pretrained_model(args.model_path, args.model_base, model_name, args.load_8bit, args.load_4bit, device=args.device)
File "/home/khw/llava/LLaVA/llava/model/builder.py", line 122, in load_pretrained_model
model = AutoModelForCausalLM.from_pretrained(model_base, low_cpu_mem_usage=True, **kwargs)
File "/home/khw/miniconda3/envs/llava/lib/python3.10/site-packages/transformers/models/auto/auto_factory.py", line 564, in from_pretrained
raise ValueError(
ValueError: Unrecognized configuration class <class 'transformers.models.llava.configuration_llava.LlavaConfig'> for this kind of AutoModel: AutoModelForCausalLM.
Model type should be one of BartConfig, BertConfig, BertGenerationConfig, BigBirdConfig, BigBirdPegasusConfig, BioGptConfig, BlenderbotConfig, BlenderbotSmallConfig, BloomConfig, CamembertConfig, LlamaConfig, CodeGenConfig, CpmAntConfig, CTRLConfig, Data2VecTextConfig, ElectraConfig, ErnieConfig, FalconConfig, FuyuConfig, GemmaConfig, GitConfig, GPT2Config, GPT2Config, GPTBigCodeConfig, GPTNeoConfig, GPTNeoXConfig, GPTNeoXJapaneseConfig, GPTJConfig, LlamaConfig, MarianConfig, MBartConfig, MegaConfig, MegatronBertConfig, MistralConfig, MixtralConfig, MptConfig, MusicgenConfig, MvpConfig, OpenLlamaConfig, OpenAIGPTConfig, OPTConfig, PegasusConfig, PersimmonConfig, PhiConfig, PLBartConfig, ProphetNetConfig, QDQBertConfig, Qwen2Config, ReformerConfig, RemBertConfig, RobertaConfig, RobertaPreLayerNormConfig, RoCBertConfig, RoFormerConfig, RwkvConfig, Speech2Text2Config, StableLmConfig, TransfoXLConfig, TrOCRConfig, WhisperConfig, XGLMConfig, XLMConfig, XLMProphetNetConfig, XLMRobertaConfig, XLMRobertaXLConfig, XLNetConfig, XmodConfig, LlavaConfig, LlavaMptConfig, LlavaMistralConfig.
could you help me? thank you in advance

Hi @conheaven,
I got the same error, did you find a solution?

Hi @conheaven,
I got the same error, did you find a solution?

sorry, i didn't find any feasible solution

Just use the "scripts/merge_lora_weights.py" to merge lora checkpoints into models before inference.
Guidance:https://github.com/haotian-liu/LLaVA/blob/main/docs/LoRA.md


Using gitter for chat

Is it possible to use Gitter for a chat instead of Slack? It has a better integration with Github.

Hi! I enabled some github integration in slack. Tbh I dont feel very limited by it..


Fixes #4673 Improvements in user management screen

fixes #4673
Proposed changes
commit 1: Fixed duplicate "Accept Invitation" button issue
commit 2: Fixed dialog box not closing after deleting an invite
commit 3: Fixed dialog box not closing after leaving a project
commit 4: Added toast error message to indicate that the username is already taken
Types of changes
What types of changes does your code introduce to Litmus? Put an x in the boxes that apply

[] New feature (non-breaking change which adds functionality)
[x] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices applies)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING doc
[x] I have signed the commit for DCO to be passed.
[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works (if appropriate)
[ ] I have added necessary documentation (if appropriate)

Please resolve the merge conflicts @JanhaviAlekar


New Device (Matter Lock)Aqara U200

This is a thread-based Matter lock seeking WWST certification.

@ctowns Will we automatically switch to a profile that supports lock codes? I believe this device supports lock codes, however that was not the profile selected during the certification process.

@ctowns Will we automatically switch to a profile that supports lock codes? I believe this device supports lock codes, however that was not the profile selected during the certification process.

We will not automatically switch to a profile that supports lock codes. We currently only support switching to a profile without lock codes because the generic matter-lock fingerprint matches to a profile with lock codes (base-lock).
Also, if we know the device does support lock codes, can we override the profile that was selected during the WWST submission? I think it would probably be best if manufacturer fingerprints matched to the correct profile if possible without relying on profile switching in the driver if we can. What do you think?

@ctowns Will we automatically switch to a profile that supports lock codes? I believe this device supports lock codes, however that was not the profile selected during the certification process.

We will not automatically switch to a profile that supports lock codes. We currently only support switching to a profile without lock codes because the generic matter-lock fingerprint matches to a profile with lock codes (base-lock).
Also, if we know the device does support lock codes, can we override the profile that was selected during the WWST submission? I think it would probably be best if manufacturer fingerprints matched to the correct profile if possible without relying on profile switching in the driver if we can. What do you think?

Ah - we are cautious about that for good reasons. Yes, I do think we should push back on the existing submission and recommend that they use a different profile.

Can this ticket be closed, since we now have a fingerprint for this device?

@hcarter-775 Yes we can close this ticket~!


fix: update Mantine example / cleanup layout

add AppShell
fix Navigation

open tasks - need help:

[ ] Navigation / How to get the current path from the router to show the active item in the navigation

Thanks @aheissenberger for the changes on the example, this looks a lot nicer now!
What I did on your branch:

cleaned up getConfig exports, these are not used by the framework
used usePathname to get the current pathname to enable displaying the active link
fixed navigation progress, there was a missing CSS import in the layout
fixed logo and title styling

The only change that might need some clarification is the pathname usage. When rendering the menu on the server-side there was no active link as usePathname imported from @lazarv/react-server/navigation module is a client only hook. But when hydrating the app, it provides the proper pathname on the client causing a hydration error. So I used the server-side equivalent of usePathname from the core module and passed it down to the MainNavigation component. There could be some enhancement on the frameworks part to transfer some server-side data to client-side hooks when rendering client components on the server-side.


Use Linux' API for tmpfiles

At Reddit @jmesmon mentioned a Linux API which allows for creation of (temporary) inodes without actually listing them in the FS. I don't know how this API is called though.

The thing is called O_TMPFILE.

The main drawback of O_TMPFILE is that you can’t linkat(2) over
an existing file. Thus you end up with a compound operation again:
first link into fs with a file name that doesn’t collide, then rename over
the destination.
A while ago there was an effort to add the desired AT_REPLACE
flag which ended up no being accepted.
(I emailed the author last year inquiring about the status of that patchset but
got no response.) Until that flag or something equivalent is available,
O_TMPFILE is largely useless.

@phi-gamma I think for DisallowOverwrite this could still be useful, but then we just split up the codepaths more for nothing.


Initial normalizing flow commit

Here are the the normalizing flow base components, along with iResnet (old PR has been deleted due to branch renaming). Corrections for the previous PR have been applied, with doc types and additional comments.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Looks good @emited thanks! There are some conflicts due to recent changes, but they should just be some imports


There really should be a disclaimer

This project has nothing to do with Autodesk Maya........

I think adding a disclaimer is absolutely not required. We never said that it is in someway related to Autodesk Maya. Maya in general means Magic: https://en.wikipedia.org/wiki/Maya_(illusion)


Example Error

php examples\RetrievePlayerStatsExample.php
Fatal error: Uncaught exception 'Exception' with message 'Incorrect wire format for field 1, expected: 0 got: 2' in E:\OpenServer\domains\goapi\res\POGOProtos\Networking\Envelopes\ResponseEnvelope.php:153

Stack trace:
#0 E:\OpenServer\domains\goapi\src\Handlers\RequestHandler.php(181): POGOProtos\Networking\Envelopes\ResponseEnvelope->read('\n<html><head>\n<...')
#1 E:\OpenServer\domains\goapi\src\Handlers\RequestHandler.php(166): NicklasW\PkmGoApi\Handlers\RequestHandler->unmarshall(Object(GuzzleHttp\Psr7\Response))
#2 E:\OpenServer\domains\goapi\src\Handlers\RequestHandler.php(86): NicklasW\PkmGoApi\Handlers\RequestHandler->call(Object(POGOProtos\Networking\Envelopes\RequestEnvelope))
#3 E:\OpenServer\domains\goapi\src\Services\Request\InventoryRequestService.php(19): NicklasW\PkmGoApi\Handlers\RequestHandler->handle(Object(NicklasW\PkmGoApi\Requests\GetInventoryRequest))
#4 E:\OpenServer\domains\goapi\src\Api\Player\Inventory.php(37): NicklasW\PkmGoApi\Services\Request\InventoryRequestService->getInventory()
#5 E:\Open in E:\OpenServer\domains\goapi\res\POGOProtos\Networking\Envelopes\ResponseEnvelope.php on line 153

Thanks for the report. I'll investigate further.

Try to run the example again, this only happens 1 / 100 request. The pokemon go backend has changed somewhat.

all time i take error
i think it's my location problem but i try other bots and api work correctly

Found the issue, I didn't correctly handle 500 errors from the server. The pokemon go servers must be overloaded at your location.
Try the latest release, it should prompt the correct error message.

502 :)


Loading valid file results in Invalid PDF structure

Loading http://citeseerx.ist.psu.edu/viewdoc/download?doi=<IP_ADDRESS>4.2304&rep=rep1&type=pdf from Chrome Extension results in Message: Invalid PDF structure being thrown. But if I download the file manually (say, with wget) and open it in PDF.js, it'll render fine.

Refreshing the page seems to work. This problem does not seem to be a problem with PDF.js per se, but some weird restriction with the website.
GET /viewdoc/download?doi=<IP_ADDRESS>4.2304&rep=rep1&type=pdf HTTP/1.1
Host: citeseerx.ist.psu.edu
Connection: keep-alive
CSP: active
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36
Accept: */*
DNT: 1
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,nl;q=0.6,en-GB;q=0.4
Cookie: JSESSIONID=069C46E2663358C9ADDED860E5DBA302

HTTP/1.1 302 Found
Server: Apache-Coyote/1.1
Location: http://citeseerx.ist.psu.edu/messages/downloadsexceeded.html
Content-Length: 0
Date: Wed, 29 Jul 2015 08:34:13 GMT

Gotcha, this can probably be closed. Though, the UX here should probably be, if redirected, we follow the redirects in the browser and if it turns out the end result isn't a valid PDF doc, we can render it in the  browser.


Add the softspoken accent

About the PR

Softspoken forces you to whisper and ends your sentences with ellipses...

Technical details

Updated chat code so that speaking is capable of being used for radio channels
Added a new TransformSpeechType event that is thrown and caught by the new Softspoken accents to change the user's chat type from Local -> Whisper or Whisper -> Local
Pretty straightforward and short implementation of the two accents with comments to go along with it
The punctuation (.../!) is only added if the user does not add any punctuation to their messages.

Media

Softspoken:
https://github.com/user-attachments/assets/a005a285-d60c-46ae-bc2b-f4754a710025
Requirements

[x] I have read and I am following the Pull Request Guidelines. I understand that not doing so may get my pr closed at maintainer’s discretion
[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

:cl:

add: Adds the softspoken trait. This forces your character to whisper...

It's kind of meta-gameable because of the forced punctuation. I don't mind removing that part.

this seems cool, but does loudspoken also add the exclamation mark if the sentence already ends with an exclamation mark? and does the elipses on softspoken get added if there's already puncuation like elipses?

this seems cool, but does loudspoken also add the exclamation mark if the sentence already ends with an exclamation mark? and does the elipses on softspoken get added if there's already puncuation like elipses?

"The punctuation (.../!) is only added if the user does not add any punctuation to their messages."

this seems cool, but does loudspoken also add the exclamation mark if the sentence already ends with an exclamation mark? and does the elipses on softspoken get added if there's already puncuation like elipses?

Bullet point #4: "The punctuation (.../!) is only added if the user does not add any punctuation to their messages."

Seems like this PR will likely have to wait until the chat refactor.

why's that?


Interface 'azure' does not exist in layer.yaml, should this be azure-integration?

Hi,
When attempting to build, I get the following error on Juju 2.4.0:

calvinh@calvinh-ws:~/Source/customers/h-and-m/azure-charm/charm-azure$ charm build
build: Composing into /home/calvinh/Source/customers/h-and-m/azure-charm/charm-azure
build: Destination charm directory: /home/calvinh/Source/customers/h-and-m/azure-charm/charm-azure/builds/azure
build: Unable to locate interface:azure. Do you need to set INTERFACE_PATH?

Looks like the interface name is wrong in layers, so I change it to azure-integration, close azure-integration and set the LAYERS_PATH and then hit this issue:  https://github.com/juju-solutions/interface-azure-integration/issues/3
Regards

This charm isn't finished yet. No need to file bugs until is. You'll know it's finished when it's published to the charm store.


[WIP] Implement approx eq trait

Implements approx eq trait from the approx crate

Nice! Now, I haven't studied that trait yet, so I don't know all the details about it, but shouldn't those constants really come from the float type? I mean, different types have different precision, and so on.

To-Do

Delete assert_approx_eq macro
Convert all tests to use assert_rel_eq directly

Design
Implemented the approx trait separately for the hue types using angle difference and separate default epsilon and ulps for the angles. The hue based colors will use the angle defaults for angles and regular defaults for floats. One possible issue with this is that manually providing epsilon will not work as expected
let a = Lch::new(...);
let b = Lch::new(...);

// Will use separate precision for l and chroma vs hue based on the defaults
approx_rel_eq(a,b)

// Will use 0.0001 for even the hues
approx_rel_eq(a,b, epsilon = 0.0001)

//To manually set separate defautls use
approx_rel_eq(a.l,b.l, epsilon = 0.0001)
approx_rel_eq(a.chroma,b.chroma, epsilon = 0.0001)
approx_rel_eq(a.hue,b.hue, epsilon = 0.1)

Another alternative is to only check non hues as default as hues must be manually checked
let a = Lch::new(...);
let b = Lch::new(...);

// Will check only l and chroma. hue not checked
approx_rel_eq(a,b)
// To check hue
approx_rel_eq(a.hue,b.hue)

// Will use 0.0001 for l and chroma
approx_rel_eq(a,b, epsilon = 0.0001)

//To check separately need to use
approx_rel_eq(a,b, epsilon = 0.0001)
approx_rel_eq(a.hue,b.hue, epsilon = 0.1)

Option one seems simpler and that is currently implemented. Not sure if this needs to be documented somewhere.

Nice! Now, I haven't studied that trait yet, so I don't know all the details about it, but shouldn't those constants really come from the float type? I mean, different types have different precision, and so on

This does not work:
        impl<T:Float> ApproxEq for Xyz<T> {
            type Epsilon = T;

            fn default_epsilon() -> Self::Epsilon {
                flt(EPSILON)
            }
            ....
            fn relative_eq(&self, other: &Self, epsilon: Self::Epsilon, max_relative: Self::Epsilon) -> bool {
                T::relative_eq(&self.x, &other.x, epsilon, max_relative)
            }
            ...
        }

errors with approxeq not implemented for T

I must say that alternative 2 seems very fishy, and may become a really bad surprise. Here I come with my questions again, but are the differences really necessary? Does the different scales really matter that much?

errors with approxeq not implemented for T

Because you need to write impl<T:Float + ApproxEq> ApproxEq for Xyz<T> {.

Because you need to write impl<T:Float + ApproxEq> ApproxEq for Xyz {.

Actually thats what I had used, but it errors with
src/xyz.rs:283:43: 283:50 error: mismatched types:
 expected `<T as approx::ApproxEq>::Epsilon`,
    found `T`
(expected associated type,
    found type parameter) [E0308]

src/xyz.rs:283         T::relative_eq(&self.y, &other.z, epsilon, max_relative)
                                                           ^~~~~~~

Did you write type Epsilon = T::Epsilon; or type Epsilon = <T as ApproxEq>::Epsilon;, as well? That is necessary to make sure Epsilon is the same type as for T.

I must say that alternative 2 seems very fishy, and may become a really bad surprise. Here I come with my questions again, but are the differences really necessary? Does the different scales really matter that much?

I am not sure. I am ok with having a single precision. I was looking at it from the tests point of view,  where the data was not really precise, but that should not drive the design of the library.
We need to figure out the right defaults too. Currently set to
const EPSILON: f64 = 0.0001_f64;
const MAX_RELATIVE: f64 = 0.0001_f64;
const ULPS: u32 = 10;
const ANGLE_EPSILON: f64 = 0.1_f64;
const ANGLE_MAX_RELATIVE: f64 = 0.1_f64;
const ANGLE_ULPS: u32 = 10;

I was looking at it from the tests point of view, where the data was not really precise, but that should not drive the design of the library.

No, it's better to fix the tests or test with a lower precision.

We need to figure out the right defaults too.

Those will depend on the precision if the float type, so I would suggest that we try to reuse them. We can just delegate all the relevant methods to T, once all the types checks out, and see how it goes (I think it will be all fine). It's luckily very customizable.

Did you write type Epsilon = T::Epsilon; or type Epsilon = ::Epsilon;, as well? That is necessary to make sure Epsilon is the same type as for T.

Any ideas on how to cast epsilon as T
    fn default_epsilon() -> Self::Epsilon {
        flt(EPSILON)
    }

error: the trait `num::traits::Float` is not implemented for the type `<T as approx::ApproxEq>::Epsilon` [E0277]

You could require T::Epsilon to also be Float, like this: where <T as ApproxEq>::Epsilon: Float, but I'm sill voting for not having our own epsilons.

This work
    fn default_epsilon() -> Self::Epsilon {
        T::default_epsilon()
    }
    fn default_max_relative() -> Self::Epsilon {
        T::default_max_relative()
    }
    fn default_max_ulps() -> u32 {
        T::default_max_ulps()
    }

So we don't manually set the precision then, only override it when  necessary.

Yes, I think that's more robust, since it will be adapted to the float type. It's also not the end of the world if it would turn out to be a problem.

We have an issue with the angles comparison. We are comparing to zero. https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/. Look at the infernal zero section.

Based on the link we can multiply the epsilon by 180. For ulps not clear if multiplying by 180 is right.
    fn default_epsilon() -> Self::Epsilon {
        T::default_epsilon() * 180
    }
    fn default_max_relative() -> Self::Epsilon {
        T::default_max_relative() * 180
    }
    fn default_max_ulps() -> u32 {
        T::default_max_ulps() *180
    }

We have an issue with the angles comparison. We are comparing to zero.

Floats are clearly a piece of junk, sometimes. I'm not sure what we can do to make it better, since we have to touch the values in some way. Maybe check a.norm() == b.norm() || a.positive_norm() == b.positive_norm(). They will both give false negatives for different values (one at +-180 and the other at 0 and 360), but shouldn't give false positives.

Based on the link we can multiply the epsilon by 180. For ulps not clear if multiplying by 180 is right.

I guess that's alright, but I don't know about ULPs, either. They are a bit different...

If you are comparing two arbitrary numbers that could be zero or non-zero then you need the kitchen sink. Good luck and God speed.

:astonished:

Sorry, wrong button... :fearful:

Basicaly what the link is saying is don't use ulps_eq for angles. only use rel_eq.
Some numbers in the link.
http://is.gd/G2ZJNr
180 * float is a good default. It is slightly larger than 1 ulps at 180.0
180 ulps at 0.0 is still very small, should we just multiply ulps also by 180 to be safe?

Might as well do that, as long as it doesn't end up being too big.

I've made a small change
This is an error
            fn default_max_epsilon() -> u32 {
                T::default_max_epsilon() * 180.0
            }
// Mul not implemented for T::Epsilon

So i have added 180 and compared to 180.
        fn relative_eq(&self, other: &Self, epsilon: Self::Epsilon, max_relative: Self::Epsilon) -> bool {
                let f180: T = flt(180.0);
                let diff: T = f180 + (self.to_degrees() - other.to_degrees()).into();
                T::relative_eq(&diff, &f180, epsilon, max_relative)
            }

The end result should be the same, some loss of presicison  for values close to zero. Do you see any issues with this?

Should be good to go!!

Oh, nice! I'll take a look.

The end result should be the same, some loss of presicison for values close to zero. Do you see any issues with this?

I know too little about these things... The other alternative is to add the T::Epsilon: Float clause.

This passes. Forgot f32 tag
    #[test]
    fn check_hue_180() {
        let a = RgbHue::from(180.0_f32);
        let b = RgbHue::from(179.99998474121093750000_f32);
        assert_relative_eq!(a, b);
    }

I am not sure about multiplting ulps by 180, but we can leave it for now.

These things are still pretty much Terra incognita for me, but I think it looks fine, overall. Thank you!
@homu r+

:pushpin: Commit 3b952b3 has been approved by Ogeon

:zap: Test exempted - status

Oh, we forgot to refer to #50, but it's ok.


fix: Prevent crash in case of empty dataclasses

Ran into this when applying mkdocstrings to a real life project. I won't pretend that there was a legitimate reason to use an empty dataclass in my code, but thought it was worth preventing the crash 🙈

Thanks again for your contributions, this is really appreciated :slightly_smiling_face:

I won't pretend that there was a legitimate reason to use an empty dataclass in my code, but thought it was worth preventing the crash

Haha yeah, I agree we should prevent a crash anyway!
I left just one comment!


Update UG for v1.4

Deployed at https://lesterong.github.io/tp

[x] Fixes numbering in Quick Start
[x] Adds heading above table of contents
[ ] Add 'Using this Guide' section
[ ] Glossary (?)

Codecov Report
Base: 73.77% // Head: 73.77% // No change to project coverage :thumbsup:

Coverage data is based on head (8799fd0) compared to base (aaed058).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #128   +/-   ##
=========================================
  Coverage     73.77%   73.77%
  Complexity      807      807
=========================================
  Files           109      109
  Lines          2547     2547
  Branches        316      316
=========================================
  Hits           1879     1879
  Misses          572      572
  Partials         96       96

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Remove version: bornova.numara version 3.16.1

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/bornova/numara-calculator/releases/download/v3.16.1/Numara-3.16.1.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 910)


OperationalError: no such table: main.auth_user__old

When trying to run python manage.py after_deploy
I get the following error:
Traceback (most recent call last):   File "/home/joe/projet/instatoo2/venv2/lib/python3.7/site-packages/django/db/backends/utils.py", line 85, in _execute     return self.cursor.execute(sql, params)   File "/home/joe/projet/instatoo2/venv2/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py", line 303, in execute     return Database.Cursor.execute(self, query, params) sqlite3.OperationalError: no such table: main.auth_user__old
I am using python3.7 on a virtualenv. Just change pillow version to the latest ( 6.2  ) in the requirements.txt and I have run python manage.py collectstatic before python manage.py after_deploy. Otherwise I followed the installation as they are in the readme

tried with python 3.6.8 and Pillow 4.3 and got the same error

Apparently this is a bug for sqlite.
What worked for me is to update to  Django-2.0.3 and stream-django-1.6.1


cmd+d (add selection to next find match) does not work in merge editor

Testing #150389

Open merge editor
Try using cmd+d (add selection to next find match) in any of the editor ares

bug
This command does not work, including in the merge result

/duplicate #150868
Currently, all contributions are disabled.


Improve notification (e.g. after password screen)

This issue is imported from pivotal
In the designs a suggestion is made how to display a notification in the interface. However, it\'s currently unclear how to implement this exactly.

Can you add a screenshot? Is this in the SP or IDP? (edwinvandebospoort - Jan 8, 2020)

@edwinvandebospoort  (Arnout Terpstra - Jan 8, 2020)

@arnoutt Discussed with Edwin and I\'ll re-implement the notification according Edwin\'s suggestion (Okke Harsta - Jan 9, 2020)

(Okke Harsta - Jan 9, 2020)


Improving guides with unit tests

The following guides may be improved with unit test examples:

[ ] https://github.com/danschultzer/pow/blob/master/guides/custom_controllers.md
[ ] https://github.com/danschultzer/pow/blob/master/guides/lock_users.md
[ ] https://github.com/danschultzer/pow/blob/master/guides/sync_user.md
[x] ~~https://github.com/danschultzer/pow/blob/master/guides/user_roles.md~~

There's already unit test in this guide:
https://github.com/danschultzer/pow/blob/master/guides/redis_cache_store_backend.md
I'm not sure if it makes sense for all the above guides, but I think in the case of user roles it could definitely be useful.

I just wanted to say that, the amount of effort going into guides on this project is really great thank you!

Thanks @joshchernoff!
Yeah, documentation is really important, and I feel it's too often neglected in open source libraries. It's understandable since you can only do so much with your free time, but I do agree with you that it's equally important if not more so.
There's also a lot of planned guides for the website: https://github.com/pow-auth/pow_site/issues

@danschultzer https://github.com/danschultzer/pow/pull/496 Added a first example for unittests in the lock users guide.

Thanks! I've fleshed it out a bit more, but haven't tested it yet.

@cdvv7788 all tested, and pushed to the new https://github.com/pow-auth/pow_demo repo 😄

@danschultzer nice! It was indeed a little problematic to test it. I had to create a project from scratch, configure it, etc. This should help with that in the future.
Question: how do you plan on maintaining the demo? Will we need to run through all of the branches and perform the updates in there? Does it make sense to have a demo generator (probably more work but should be easier to maintain)?

Yeah, I think a generator would be great to have! For now it's just rebase and force push, not great 😄
Actually I've thought about a generator ever since I began working on Pow so you only had to run a single mix task without any adjustments. However there was no big libraries that did code injection, or at least I didn't find one that I particularly like.
Now with phx.gen.auth there might be a good way to do it: https://github.com/aaronrenner/phx_gen_auth/blob/master/lib/mix/phx_gen_auth/injector.ex


Feature request (sorry if already implemented)

If notes could be sorted by creation date, could be a great journaling app.
Maybe this is a different issue ; I just imported text files created in another journaling app and the date of the file in nvalt is now the import date.

View Menu>>Sort By>>Date Added
Sounds like the journaling app you exported from just gave them all the same created date


XXE in UpdateMessageReader.java via Man-in-the-Middle (MitM)

The Issue
An XML External Entity attack is a type of attack against an application that parses XML input. This attack occurs when XML input containing a reference to an external entity is processed by a weakly configured XML parser. This attack may lead to the disclosure of confidential data, denial of service, server side request forgery, port scanning from the perspective of the machine where the parser is located, and other system impacts.
Where the Issue Occurred
The following code snippets display the usage of XMLReader without securely disabling entities:
https://github.com/frostwire/frostwire/blob/7414e3be2ef5ced88a775df7831b7ae382fcf966/desktop/src/com/frostwire/gui/updates/UpdateMessageReader.java#L306
An attacker can Man-in-the-Middle (MitM) the HTTP call to the URL below:
https://github.com/frostwire/frostwire/blob/7414e3be2ef5ced88a775df7831b7ae382fcf966/desktop/src/com/frostwire/gui/updates/UpdateMessageReader.java#L43
Remediation
https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet

I don't see this being a issue. There is no login for the frostwire site, but you could steal there cookies.

the issue is a man in the middle attack, where somehow they could serve malicious XML and have FrostWire parse a malicious update URL. But I believe this shouldn't be the case as now the update URL is HTTPS based

I also believe in recent updates we changed the XMLReader  with the one recommended for JDK12, perhaps the new one SAXParserFactory.newDefaultInstance().newSAXParser().getXMLReader() doesn't have the XXE issues.

@gubatron if the update URL is HTTPS base, will this issue still exist?

I think it's significantly harder, but then again, we changed the XML Reader class for a new one that comes with Java 12.
I'm gonna go ahead and close this.


Suggest rename OpenGLCanvas#onReshape()

the method name onReshape for OpenGLCanvas is a little awkward. The shape could be considered as either dimensions of the existing shape, or a literal shape (oval, square, rectangle, triangle, etc). The shape will always be a rectangle, but the dimensions can change. Perhaps rename to OpenGLCanvas#onSizeChange()?
Or the user could just bind to the widthproperty/heightproperty that JavaFX already provides for us as this is a member of the Region class, which makes a size change callback redundant.

See #14


Change explore api fields to bigint

We have table sizes that surpasses the limit of integer in Explore API table so we need to change that columns to bigint.

Please @juanignaciosl check this tiny PR

:+1:


Does the integration support tokenization?

Hello,
We were wondering if this integration supports tokenization as described here: https://docs.adyen.com/online-payments/tokenization/create-and-use-tokens#page-introduction
When trying this, we do not see the additional data returned in the Payment Response. We have enabled it in Adyen as per the guide written [see above]
Thanks
Request:
{"channel":"Web","recurringProcessingModel":"CardOnFile","shopperInteraction":"Ecommerce","additionalData":{"allow3DS2":"true"},"amount":{"currency":"GBP","value":0},"applicationInfo":{"merchantApplication":{"name":"commercetools-adyen-integration-extension","version":"9.9.1"},"externalPlatform":{"name":"commercetools","integrator":"commercetools Professional Services"}},"billingAddress":{"city":"London","country":"GB","houseNumberOrName":"221 B","postalCode":"NW1 6XE","street":"Baker Street"},"deliveryAddress":{"city":"London","country":"GB","houseNumberOrName":"221 B","postalCode":"NW1 6XE","street":"Baker Street"},"lineItems":[{"amountIncludingTax":400,"description":"Trainers","id":"Item 1","quantity":1}],"merchantAccount":"S0016_FA_Web","metadata":{"orderNumber":"TestExample1234567890","ctProjectKey":"fa-compcomm-dev"},"paymentMethod":{"type":"scheme","encryptedCardNumber":"test_4444333322221111","encryptedExpiryMonth":"test_03","encryptedExpiryYear":"test_2030","encryptedSecurityCode":"test_737","holderName":"Sherlock Holmes"},"origin":"https://your-company.com","reference":"303a2fc2-c6e0-45aa-b22d-1ba224716e60","returnUrl":"https://your-company.com/api/handleShopperRedirect?paymentId=303a2fc2-c6e0-45aa-b22d-1ba224716e60","shopperEmail":"sherlock.holmes@famouspeople.com","shopperIP":"::1","shopperName":{"firstName":"Sherlock","lastName":"Holmes"},"shopperReference":"TestExample1234567890","storePaymentMethod":true,"telephoneNumber":"+44 20 7224 3688"}
Response:
{"pspReference":"QV5WFMH27DQ2WN82","resultCode":"Authorised","amount":{"currency":"GBP","value":0},"merchantReference":"303a2fc2-c6e0-45aa-b22d-1ba224716e60"}

I have also raised this with Adyen, to make sure I have not missed something with the setup. I note that the payment in Adyen seems to have all the recurring information but I just don't get it back.

@BielsasBucket Thank you for your reporting.
Indeed we don't have any extra implementation to rule out recurring payment.  We only transfer what you have given to /payment endpoint. I suppose the request is obtained from custom.fields.makePaymentRequest. As long as you have provided recurringProcessingModel and other necessary attributes for recurring payment in makePayment request,
it should successfully create the recurring payment in Adyen side.
In case you have already raised a ticket to Adyen, you can check with their team and ask them to investigate why the expected response doesn't contain additionalData

I have checked the following document
https://docs.adyen.com/online-payments/tokenization/create-and-use-tokens?tab=one_off_payments_1#save-for-one-off
and i saw the required attributes seem to be given already within your request. But I would suggest you to ask Adyen technical team to verify your requests.

Hi,
Spoken with Adyen, who say they return the following response in their backend:
{   "additionalData" : {      "recurringProcessingModel" : "CardOnFile",      "recurring.shopperReference" : "T011***********8787878",      "recurring.recurringDetailReference" : "S5K84T69N6KXWD82"   },   "pspReference" : "P9D55X558DQ2WN82",   "resultCode" : "Authorised",   "amount" : {      "currency" : "GBP",      "value" : 0   },   "merchantReference" : "8fb2da48-36c6-4c3f-9e49-b94deec55849"}
I do not see this returned in Make Payment Response, here are the full request, response from commercetools payment:
"makePaymentRequest": "{"channel":"Web","recurringProcessingModel":"CardOnFile","shopperInteraction":"Ecommerce","additionalData":{"allow3DS2":"true"},"amount":{"currency":"GBP","value":0},"applicationInfo":{"adyenLibrary":{"name":"adyen-dotnet-api-library","version":"9.2.0"}},"billingAddress":{"city":"London","country":"GB","houseNumberOrName":"221 B","postalCode":"NW1 6XE","street":"Baker Street"},"deliveryAddress":{"city":"London","country":"GB","houseNumberOrName":"221 B","postalCode":"NW1 6XE","street":"Baker Street"},"lineItems":[{"amountIncludingTax":400,"description":"Trainers","id":"Item 1","quantity":1}],"merchantAccount":"S0016_FA_Web","metadata":{"orderNumber":"T011521999787878787878"},"paymentMethod":{"type":"scheme","encryptedCardNumber":"test_4444333322221111","encryptedExpiryMonth":"test_03","encryptedExpiryYear":"test_2030","encryptedSecurityCode":"test_737","holderName":"Sherlock Holmes"},"origin":"https://your-company.com","reference":"8fb2da48-36c6-4c3f-9e49-b94deec55849","returnUrl":"https://your-company.com/api/handleShopperRedirect?paymentId=8fb2da48-36c6-4c3f-9e49-b94deec55849\",\"shopperEmail\":\"sherlock.holmes@famouspeople.com\",\"shopperIP\":\"::1\",\"shopperName\":{\"firstName\":\"Sherlock\",\"lastName\":\"Holmes\"},\"shopperReference\":\"T011521999787878787878\",\"storePaymentMethod\":true,\"telephoneNumber\":\"+44 20 7224 3688"}"
"makePaymentResponse": "{"pspReference":"P9D55X558DQ2WN82","resultCode":"Authorised","amount":{"currency":"GBP","value":0},"merchantReference":"8fb2da48-36c6-4c3f-9e49-b94deec55849"}"
Can someone please look at this?I do believe there is an issue here with not returning the data.

extension/src/service/web-component-service.js
Lines 219 - 221 might be the problem:
// strip away sensitive data from the adyen response.
    request.headers['X-Api-Key'] = '***'
    if (removeSensitiveData && responseBody) {
      delete responseBody.additionalData
    }

I just need to set the config as required.


[improve]update doc and prestodb properties

What's changed?
fix #2234
Checklist

[x]  I have read the Contributing Guide
[x]  I have written the necessary doc or comment.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 19.88%. Comparing base (da05b6a) to head (23f445b).
Report is 6 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2243      +/-   ##
============================================
+ Coverage     19.55%   19.88%   +0.32%
- Complexity     1063     1086      +23
============================================
  Files           402      404       +2
  Lines         17016    17149     +133
  Branches       2253     2267      +14
============================================
+ Hits           3328     3410      +82
- Misses        13327    13368      +41
- Partials        361      371      +10

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


some problem with the library not sure what

the below one is a base64 conversion by library:
eyJldmVudCI6IlVzZXIgUmF0aW5nIiwicHJvcGVydGllcyI6eyJkaXN0aW5jdF9pZCI6IjEzNzkzIiwidG9rZW4iOiJjZDVjOTVlMzZjZTFkZmJjMzE2Mjk1MDFmODQzYTYyNSIsIkRldmljZSI6IjMyMSIsIk1vdmllSUQiOiIzMjEiLCJSYXRpbmciOiIzMjEifX0A
and this one is online based conversion:
eyJldmVudCI6IlVzZXIgUmF0aW5nIiwicHJvcGVydGllcyI6eyJkaXN0aW5jdF9pZCI6IjEzNzkzIiwidG9rZW4iOiJjZDVjOTVlMzZjZTFkZmJjMzE2Mjk1MDFmODQzYTYyNSIsIkRldmljZSI6IjMyMSIsIk1vdmllSUQiOiIzMjEiLCJSYXRpbmciOiIzMjEifX0=
both have one minute difference and that is at the end. I am using this string to upload data to an online service called Mixpanel although both fails but I want to make sure this library is making proper convesion.

does the library introduce newline character at the end?

Hi Shirish,
I took a look at the base64 library you are using and it would appear a character is being appended at the end of the Base64 encoded payload.
Take a look at this line: https://github.com/adamvr/arduino-base64/blob/master/Base64.cpp#L46.
On that line, the character '\0' is appended to the end of the Base64 payload -- from my perspective this does not make sense as the payload does not require this character.
Do you mind and checking if I am reading this correctly? Is there something I am missing here in regards to the behavior I am reading from this code?
I see you opened an issue against this lib on Github -- feel free to read what I sent and see if this information should be added to your issue.
Happy to assist further here in any way possible -- just let me know how I can be of assistance!
Thanks,
Ryan
As Ryan Suggested I commented the line 46 in base64 but I don't know how the length has to be changed. but anyways when I print I get a correct converted string but with the input string also printed after that?? why is that??
I think that is because the last '\0' is removed and that encoded string lies above the input string so when println prints it does not stop until a \0 in the input string.

Hi,
I met the same issue as @shirish47 described.
Any hint by now?

I have not yet solved the problem but you can get into the code and put go to line no 64 where they add a \0 character... if you cange that character you will not be able to print ...because print requires \0 char .. if you remove that and put something else ..it prints a complete decoded string but gets into memory of ther variable...

Hi @shirish47
In your ino file, try to get your input length by strlen(input).

hey buddy pls how could I resolve this issue?
@e-lin did you solved it?

@shirish47 I've fixed it. I would rather say this is not the issue of this library but the string length of your input parameter is maybe not correct.

I also run into some issue with this library because of the last assingment output[decLen] = '\0'; in the encode and decode functions. If you move the whole print function after the encode, then the input string will not print any more because the first char was overwritten with /0.
//  Serial.print(input); Serial.print(" = "); // moved to after encode function

  // note input is consumed in this step: it will be empty afterwards
  base64_encode(encoded, input, inputLen);

  Serial.print(input); Serial.print(" = "); // moved here from before encode function
  Serial.println(encoded);

Then teh output result looks like this:
Base64 example
 = SGVsbG8gd29ybGQA
Zm9vYmFy = foobar

As you can see, the first string doesn't print any more.
To me it seems that the calculation of the encode length is wrong because it doesn’t consider this extra /0. If this is correct understanding, fixed BASE64.cpp code would
int base64_enc_len(int plainLen) {
	int n = plainLen;
	return (n + 2 - ((n + 2) % 3)) / 3 * 4 + 1;  // add +1 for the /0 at the end of the string
}

I just sent a pull request https://github.com/adamvr/arduino-base64/pull/23 for a corrected example code.


Adding a Installation and Setup Guide.

I've noticed your project lacks a Installation and Setup Guide, crucial for sharing essential project details and fostering collaboration. As a GSSoC 2024 participant, I'm keen on contributing meaningfully.
I'm dedicated to crafting a thorough README for the project's benefit. Thanks for considering. Eagerly awaiting your response.
I've done a readme file for another project, you can check my profile, i always give my best.
Can you assign me this task?
Thank u @ashutoshgithubs

hey @ashutoshgithubs , assign this to me
I have worked on such doc.md file earlier.
Assign this to me.


feat: Added Table.group_by to group a table by a given key

Closes #160.
Summary of Changes
Added a group_by method for the table class that requires a lambda function which computes the grouping keys. The method returns a dictionary with the computed keys as keys and the grouped rows as new Tables as values.

🦙 MegaLinter status: ✅ SUCCESS

Descriptor
Linter
Files
Fixed
Errors
Elapsed time

✅ PYTHON
black
2
2
0
1.3s

✅ PYTHON
mypy
2

0
1.73s

✅ PYTHON
ruff
2
2
0
0.03s

✅ REPOSITORY
git_diff
yes

no
0.01s

See detailed report in MegaLinter reports
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff
MegaLinter is graciously provided by

:tada: This PR is included in version 0.14.0 :tada:
The release is available on:

v0.14.0
GitHub release

Your semantic-release bot :package::rocket:


Fix blender cask.

Pull #14495 broke the blender cask.
It is ridiculous and rude that @scribblemaniac would submit something that was not tested.
It was irresponsible of @vitorgalvao to merge something that was not tested.

It is ridiculous and rude that @scribblemaniac would submit something that was not tested.
It was irresponsible of @vitorgalvao to merge something that was not tested.

Strong accusations, there.
Though we had our disagreements in certain areas, @scribblemaniac has submitted nothing but good work and was a regular here (good to see him again, occasionally). Similarly, I’m here everyday reviewing pull requests and handling issues, trying to move the project forward. What significant contributions have you done to the project, I ask.
Do you even have the faintest idea how many contributions homebrew-cask’s small team goes through  daily? This issue is at worst a minor inconvenience, and nothing major happened, or could have happened. Downloading and opening every submission to check for directory structure changes is a ridiculous proposition. Things are tested according to their importance.
It’s people like you that make open-source maintainers burn out. It is also not funny at all how in most of these cases, the people making the bold accusations have such a small record of open-source contributions.
Thank you for the contribution. It will be merged and you will be credited to it, as you should. Your attitude, however, is not welcome at all, and I personally do not appreciate your disproportionate, unreasonable, and unfounded remarks into a community that tries to be inclusive of all. We do not hold grudges and will not deny future contributions due to this incident, but you must check your tone as you post.
I ask that next time you decide to deride the work of volunteers from a project you benefit from but contribute very little to, and on a Sunday, even, reconsider.

Strong accusations, there.

I would disagree. Just about every open source project requires that basic tests be preformed before pushing code.

@scribblemaniac has submitted nothing but good work

I do not consider breaking blender to be good work.

Similarly, I’m here everyday reviewing pull requests and handling issues, trying to move the project forward. What significant contributions have you done to the project, I ask.

Broken code was merged; the amount that anyone contributed is irrelevant.

Do you even have the faintest idea how many contributions homebrew-cask’s small team goes through daily?

Yes, I do.

This issue is at worst a minor inconvenience, and nothing major happened, or could have happened.

But not testing code could lead to a future incident which could be major.

Downloading and opening every submission to check for directory structure changes is a ridiculous proposition.

Is that not what you have Travis for?

It’s people like you that make open-source maintainers burn out.

If an open source maintainer has gotten to the point where they push code without testing it, then they are already burnt out.

Things are tested according to their importance.

Everything is important therefore everything should be tested.

Your attitude, however, is not welcome at all

I can't criticize someone for breaking something that previously worked?

I ask that next time you decide to deride the work of volunteers

If a volunteer is working to break things, then I have the right and am justified to complain.

project you benefit from

I do not benefit from things that do not work.

but contribute very little to

If I did not contribute in this case, then blender would still be broken.

We do not hold grudges and will not deny future contributions due to this incident

How is this an incident? You are taking my comments personally when that is not my intention. I just want you to properly test everything before it is committed. That way this issue, and many others, will never occur in the future. You should not be offended by constructive criticism. Please do not see this as an attack but rather user feedback and an opportunity to improve.

I do not consider breaking blender to be good work.

A human made a small mistake that caused you nothing else than a minor inconvenience.

Broken code was merged; the amount that anyone contributed is irrelevant.

It means the person is trustworthy.

Yes, I do.

You don’t respect it, then.

But not testing code could lead to a future incident which could be major.
(…)
Everything is important therefore everything should be tested.

No, wrong. Like I said, “nothing major happened, or could have happened”. It’s one of the reasons interpolation is so used in casks. The change at most could have broken the cask (which is what it did), there is no way it could’ve led to a bigger issue unless blender’s server had been compromised as well (in which case there’d be nothing we could’ve done anyway).
You think this minor issue means nothing is checked? Than you have very little consideration for the work done here, and I’m not sure why you even use the project.
Like I said, things are tested according to their importance. Things that could present a security issue (like changing urls) are throughly tested by hand (because that is the only way to do it). A simple version bump does not need the same amount of rigour.
Unlike you, most contributors are reasonable and understand what kind of work that means, and what kind of delay it would mean to hold up everything due to checking minute, non-security important changes. These changes cause minor inconvenience if missed but would cause great delays if checked with every PR. Things have different degrees of importance.
I do look forward to you upping your contributions and checking every pull request for these small problems.

Is that not what you have Travis for?

Good point. Feel free to submit said improvements to the tests. They don’t write themselves. If this is that important to you, help fix it.

I can't criticize someone for breaking something that previously worked?

You know what most of our contributors can also do? Criticise respectfully. Point out errors helpfully instead of calling names.

If a volunteer is working to break things, then I have the right and am justified to complain.

You know what’s better than complaining? Actually fixing things. Do you think the break was made to personally annoy you? A mistake was made, what do you believe name calling accomplishes?
You believe you have the right to complain. What you have is the right to leave. This project and its contributors owe you nothing. You do not contribute to it in any significant way and you do not pay for it. You do not have the right to demand people’s free time to work on what you desire, for nothing. Make no mistake, that is what you’re doing here.

I do not benefit from things that do not work.

And homebrew-cask is pre-alpha. If you have such a big issue with broken things, leave and don’t come back until it’s stable. And even then some things might be broken, because that is the nature of humans developing software.

If I did not contribute in this case, then blender would still be broken.

Because every cask that broke was left broken until you came around, right? If you hadn’t done it, someone else would have, like they always do. Thankfully, we have many contributors, and they catch a very great deal of things.

You are taking my comments personally when that is not my intention.

You made them personal by specifically calling me (and @scribblemaniac) irresponsible. Are you fuzzy on the meaning of the word “personal”?

You should not be offended by constructive criticism. Please do not see this as an attack but rather user feedback and an opportunity to improve.

I’ve been with this project for a long while. We’ve received a lot of constructive feedback. Yours was not it.
Let me make it very clear for you: your sense of entitlement to other people’s free time is frankly disrespectful. See an issue? Fix it, report it, just be mindful of how you do it. Your tone and attitude are the issue here, and no, you are not in the right. Many people here find mistakes and have disagreements, and they are able to do so through civilised discourse. Your comment is not an example of that.

As such, this conversation is no longer fruitful and I’m locking it. The point was made. Respect for the other members of the project is not negotiable, and you greatly (otherwise the conversation would’ve been different) broke my interpretation of what it means to be respectful. I’ve explained my reasoning throughly and gave an example of what pointing mistakes while being courteous (a situation where everyone benefits) is like. There are numerous other examples in the other 14499 issues.

This is constructive criticism. Cordiality in telling you what is wrong and suggesting an alternative. Notice how you weren’t called “ridiculous and rude” for submitting a PR that wasn’t sufficiently well constructed.


Broken link for "license scan" shield on README.md

When I click on  in README.md, I get a "404 Project not found" page.

Can I work on this?