Commit graph

1448 commits

Author SHA1 Message Date
Kenneth Loeffler
b7a1f82f56
Fix cli clippy lints (#681)
The second in a series of PRs that aim to get CI passing
2023-06-30 11:03:37 -07:00
Kenneth Loeffler
2507e096b7
Fix change processor clippy lints (#680)
Bear with me here...

The first in a series of PRs that aim to get CI passing
2023-06-30 11:03:09 -07:00
boatbomber
b303b0a99c
Add PRs 674 and 675 to changelog (#693)
Forgot to update changelog in those PRs, this remedies that
2023-06-30 11:02:14 -07:00
Filip Tibell
342fb57d14
Fix compilation target in release workflow (#701)
Fixes macOS aarch64 builds not actually outputting x86 binaries by
specifying the `--target` flag during compilation in the release
workflow. These are the same changes as [this PR in
Aftman](https://github.com/LPGhatguy/aftman/pull/34), which had the same
issue, and uses the same workflow.
2023-06-30 10:53:19 -07:00
Boegie19
a9ca77e27f
Change gitmodules from ssh to https (#696)
Why if you want to use ssh you need todo more setup aka add a ssh key
into github while with https you don't have to do the extra work aka
makes rojo easier to contribute to.
2023-06-16 11:41:30 -07:00
boatbomber
b68b89bf78 Update changelog 2023-06-04 10:36:33 -07:00
boatbomber
6542304340
Fix the diff visualizer of connected sessions (#674)
Clicking on the "X changes X ago" message opens up a handy diff
visualizer to see what those changes were. However, it had quite a few
issues that needed fixing.

- Disconnecting a session with it expanded caused an error as it tried
to read the serveSession that no longer exists during the page fade
transition. (#671)
- Resolved by converting to stateful component and holding the
serveSession during the lifetime to ensure it can render the last known
changes during the fade transition
- Leaving it open while new changes are synced did not update the
visualizer
- The patch data was piggybacking on an existing binding, which meant
that new patches did not trigger rerender.
    - Resolved by converting to state
    - Also made some improvements to that old binding
- Moved from app to connected page for better organization and
separation of duties
      - No more useless updates causing rerenders with no real change
- Scroll window child component wouldn't actually display the updated
visuals
    - Resolved by making major improvements to VirtualScroller
      - Made more robust against edge case states
      - Made smarter about knowing when it needs to refresh

As you can see in this slow motion GIF, it works now.

![slowedDemo](https://github.com/rojo-rbx/rojo/assets/40185666/c9fc8489-72a9-47be-ae45-9c420e1535d4)
2023-06-03 22:46:16 -07:00
boatbomber
6b0f7f94b6
Fix disconnected session activity (#675)
When a session is disconnected, the apiContext long-polling for messages
continues until resolved/rejected. This means that even after a session
is disconnected, a message can be received and handled.

This leads to bad behavior, as the session was already cleaned up and
the message cannot be handled correctly. The instance map was cleaned up
upon disconnect, so it will warn about unapplied changes to unknown
instances. (Like #512)

It's very easy to repro:
Connect a session, disconnect it, then save a change.


https://github.com/rojo-rbx/rojo/assets/40185666/846a7269-7043-4727-9f9c-b3ac55a18a3a

-----------

This PR fixes that neatly by tracking all active requests in a map, and
cancelling their promises when we disconnect.
2023-06-01 08:18:04 -07:00
boatbomber
ba634d4778 Merge branch 'master' of https://github.com/boatbomber/rojo into headless-api 2023-05-31 14:40:39 -04:00
Kenneth Loeffler
d87c76a23e
Switch plugin packages back to git submodules (#678)
Alright, so I hate to be the one to do this, but #584 broke crates.io
publishing and also caused librojo to be unusable. I see that there was
some discussion on Discord shortly after the problem was realized, but
there was no action taken.

I think keeping librojo and publishing working far, far outweigh any
convenience added by Wally.

I've kept the same `Packages` naming convention to keep the diff
minimal.
2023-05-26 10:26:21 -07:00
Filip Tibell
305423b856
Sourcemap performance improvements (#668)
This PR brings two performance improvements to the `rojo sourcemap`
command:

- Use `rayon` with a small threadpool to parallelize sourcemap
generation while still keeping startup cost very low
- Remove conversions to owned strings and use lifetimes tied to the dom
instead, which mostly improves performance with the
`--include-non-scripts` flag enabled

From my personal testing on an M1 mac this decreases the sourcemap
generation time of our games by 2x or more, from ~20ms to ~8ms on one
project and ~30ms to ~15ms on another. Generation is pretty fast to
begin with but since sourcemaps are heavily used in interactive tools
(like luau-lsp) a difference of a couple frames can be great for ux.
2023-05-06 01:01:15 -07:00
Miizzuu
4b62190aff
Fix wrong version of Rojo displaying in studio. (#669) 2023-05-06 01:00:45 -07:00
Lucien Greathouse
e17771a6a5 Release v7.3.0 2023-04-22 16:07:39 -04:00
Lucien Greathouse
bac30ae78b Update MSRV to try to fix CI workflow 2023-04-22 15:58:14 -04:00
Lucien Greathouse
c0219922b2 Update dependencies 2023-04-22 15:44:49 -04:00
boatbomber
36ec55de52
Merge branch 'master' into headless-api 2023-04-02 02:59:26 -04:00
boatbomber
b5ed952d5c
Add visual diffs to syncing (#603)
* Add user confirmation to initial sync

* Use "Accept" instead of "Confirm"

* Draw tree alphabetically for determinism

* Add diff table dropdown

* Add diff table to newly added objects

* Unblock keybind workflow

* Only show reject button when two way is enabled

* Try to patch back to the files when changes are rejected

* Improve text spacing of the prop diff table

* Skip user confirmation of perfect syncs

* Give instances names for debugging UI

* Optimize tree building

* Efficiency: dynamic virtual scrolling & lazy rendering

* Simplify virtual scroller logic and avoid wasteful rerenders

* Remove debug print

* Consistent naming

* Move new patch applied callback into accept

* Pcall archivable

* Keybinds open popup diff window

* Theme rows in diff

* Remove relic of prototype

* Color value visuals and better component name

* changeBatcher is not needed when no sync is active

* Simplify popup roact entrypoint

* Alphabetical prop lists and refactor

* Add a stroke to color blot for contrast

* Make color blots animate transparency with the rest of the page

* StyLua formatting on newly added files

* Remove wasteful table

* Fix diffing custom properties

* Display tables more meaningfully

* Allow children in the button components

* Create a rough tooltip component

* Add tooltips to buttons

* Use provider+trigger schema to avoid tooltip ZIndex issues

* Add triangle point to tooltip

* Tooltip underneath instead of covering

* Cancel hovers when unmounting

* Allow multiple canvases from one provider

* Display above or below depending on available space

* Move patch equality to PatchSet.isEqual

* Use Container

* Remove old submodules

* Reduce false positives in diff

* Add debug log

* Fuzzy equals CFrame in diffs to avoid floating point in

* Fix decodeValue usage

* Support the .changedName patches

* Fix content overlapping border

* Fix tooltip tail alignment

* Fix tooltip text fit

* Whoops, fix it properly

* Move PatchVisualizer to Components

* Provide Connected info with full patch data

* Avoid implicit nil return

* Add patch visualizer to connected page

* Make Current column invisible when visualizing applied patches

* Avoid floating point diffs in a numbers and vectors
2023-04-01 23:17:23 -04:00
boatbomber
8a8ee80043 Move api descs to top 2023-01-09 11:39:11 -05:00
boatbomber
5cf9a7de42 Handle nil APIs 2023-01-09 11:24:51 -05:00
boatbomber
9d412a3273 Merge branch 'master' of https://github.com/rojo-rbx/rojo into headless-api 2023-01-05 13:34:47 -05:00
boatbomber
d83543e3cc Handle falsy API values 2023-01-05 11:28:37 -05:00
boatbomber
9cf195691c Don't scroll the navbar 2023-01-05 11:11:36 -05:00
boatbomber
e24657ca4d Better light theme support 2023-01-05 11:07:03 -05:00
boatbomber
3b1aca2958 Clearer button UX 2023-01-05 10:58:26 -05:00
boatbomber
cf5e13f5a0 Add api conflict popup 2023-01-04 19:37:37 -05:00
boatbomber
6fddcc5ceb Generic popup titles 2023-01-04 19:13:31 -05:00
boatbomber
d158ccb2eb Simplify popup handling 2023-01-04 18:59:53 -05:00
boatbomber
de33cf0e55 Genericize popup state 2023-01-04 18:51:55 -05:00
boatbomber
7c1afd5aa9 Add permission management listings 2023-01-04 18:20:57 -05:00
boatbomber
4275783ba4 Add permissions page 2023-01-04 17:28:06 -05:00
ok-nick
7994bc4909
Update setup-aftman (#648) 2022-11-18 03:32:13 -05:00
boatbomber
ebdffb0088 Sanitiza requested APIs 2022-10-08 10:25:42 -04:00
boatbomber
7c0a67ba86 Merge branch 'master' of boatbomber/rojo into headless-api 2022-10-08 09:49:01 -04:00
boatbomber
b88d34c639
Add tooltips to buttons (#637)
* Add tooltips

* Fix whitespace

* Avoid overloaded word canvas

* Clean render function

* Switch folder to fragment
2022-10-07 19:31:14 -04:00
boatbomber
7e7583bcfc
Merge branch 'master' into headless-api 2022-09-30 17:13:38 -07:00
fox
96cb1ee3fd
Support explicitly specifying http or https protocol in plugin (#642)
* Support explicitly specifying http or https protocol in plugin

* Fix incorrect format string

Port is not a number
2022-09-30 17:59:09 -04:00
boatbomber
2a8cb118d5 Clearer names and titles 2022-09-30 16:56:27 -04:00
boatbomber
6a5876c287 Include source in Test output for debugging 2022-09-30 16:50:06 -04:00
boatbomber
471215fa7b Add rate limiting 2022-09-30 16:44:06 -04:00
boatbomber
ea08d28885 Add assertions 2022-09-30 16:22:43 -04:00
boatbomber
e0c7b51dc7 Support cloud plugins that have no folder 2022-09-30 15:38:36 -04:00
boatbomber
e3a8152575 Handle plugin state prior to headless 2022-09-30 14:14:28 -04:00
boatbomber
d7cee5c5be Add api permissions 2022-09-28 17:01:17 -04:00
boatbomber
6284d83ed7 Use full caller as key to avoid conflicts 2022-09-27 23:27:33 -04:00
boatbomber
17b2752b38 Add Changed event 2022-09-27 22:21:23 -04:00
boatbomber
2a25193941 Add CreateApiContext and more caller info 2022-09-27 01:59:48 -04:00
boatbomber
f3de0c35ef Nicer notification formatting and info 2022-09-25 17:22:59 -04:00
boatbomber
be89259bbd Add Address and ProjectName when connected 2022-09-25 17:10:30 -04:00
boatbomber
4832035a18 Add headless API 2022-09-25 16:43:02 -04:00
boatbomber
003abe86bb
Save host and port by placeId (#613)
* Save host and port by placeId

* Bump to 5 months before clearing

* Fix indentation
2022-09-22 23:03:09 -04:00