23 Commits

Author SHA1 Message Date
Ethan Roseman 36edf529ca Try to fix the overabundance of profiles (#1370)
* Try to fix the overabundance of profiles

and dep updates

* thanksh, stubs

* stop using deleted password generation method in tests

* Fix silly test stuff

* fix filtering
2024-10-27 22:40:03 +09:00
Ethan Roseman 90b1b88543 Update backend deps, try to fix bug, remove CompilerConfig (#1256)
* Update backend deps, try to fix bug, remove CompilerConfig

* Upgrade Poetry in Docker to 1.8.3, fix ordering of fields list
2024-05-27 01:52:00 +09:00
Mark Street ed910d70a6 Fix editing of scratches on /admin endpoint (#960)
* Fix editing of scratches on /admin endpoint

* hide claim_token from scratch edit admin page

* much better

* myfry

* pr feedback

* black
2024-02-11 03:22:24 +09:00
Luke Street 85c2e215d5 Use random token for claiming scratches (#945)
* Use random token for claiming scratches

* Fix migration dep

* Fix claim_token serialization & address PR comments

* Improve error handling

* Update backend tests

* reformat

* Update another test

* Minor update to ClaimableScratchSerializer
2024-01-19 16:02:05 +09:00
Luke Street 5369f81263 Support binary target_obj in scratch creation (#943)
* Support binary `target_obj` in scratch creation

Also support `--disassemble=` in `diff_flags`,
so the scratch can be limited to a single function
within the object.

Resolves https://github.com/decompme/decomp.me/issues/215

* Test fixes

* Validate uploaded file size & magic

Remove `-D` from `skip_flags_with_args`,
we want to keep defines.
2024-01-17 15:52:41 +09:00
Ethan Roseman c80abfaa05 Platform page & preset page (#906)
* Platform page & preset page

* Fix mypy

* improve styles

* move presetUrl to its own file and fix star import

* oops

* Show number of scratches on platform / preset page

* Remove url field stuff & leftovre ProjectFunction stuff

* Remove more projectfunction stuff

* black

* Attempting to remove most url and html_url

* oops

* mypy

* fixz

* suggz

---------

Co-authored-by: Alex Bates <alex@nanaian.town>
2023-11-13 22:23:12 +09:00
Ethan Roseman 8d7deedb12 Set blank=True on json fields (#905) 2023-10-31 07:23:59 +09:00
Ethan Roseman 4ae89872e2 Presets in the DB (#897)
* Organize tests, update settings, backend deps

* Remove project import code from backend

* Remove some frontent project code

* more progress, project cleanup

* more preset work

* .

* upd8z

* Admins can delete scratches & preset migration

* bye, source presets

* fixes & changes

* Preset in admin panel & rename migration

* mypy

* Fix perset viewset & tests

* Change compilers hash files

* test annotations so Windows doesn't run them

* Mark nits

* Preset auto ID field

* scratch as reference (1/?)

* backend fixes to preset (2/3)

* Use preset ID instead of name in frontend

* update frogger preset

* I broke one of the ten commandments of react

* finishing touches (3/3 lol)

* Update serializers.py
2023-10-27 23:40:59 +09:00
Robin Lambertz e33b5fb3cf Add libraries support to presets (#873)
* Add libraries support to presets

* Add directx 5 to lego island preset

* Move libraries to named globals

* Fix bug preventing changing the version of a library
2023-10-09 20:06:25 +01:00
Robin Lambertz fb69aceded Fix libraries migration (#876) 2023-10-04 18:57:16 +09:00
Robin Lambertz e1c33d47d3 Support libraries in decomp.me (#843)
* Add script to download libraries, and download directx

* Add libraries endpoint

* Allow compiling with a library

* Add new libraries tab in frontend

* Add libraries support in CI

* Better look for the libraries

* Give pretty names to libraries

* Move Libraries to live under CompilerOpts

* typechecking hackery

* Make libraries trigger autorecomp and set the unsaved flag

* Fix libraryVersions

* Add new libraries download script to CI, docker and docs

---------

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2023-09-30 14:54:40 +09:00
Ethan Roseman ebd520c536 Add a way to manually mark a scratch as matching (fixes #401) (#804) 2023-07-10 13:40:59 +09:00
Ethan Roseman b0c9160b33 Diff label max size increase (#715)
* Increase diff label limit

whyyyy

* Increase scratch name limit
2023-03-26 20:49:16 +09:00
Matt Kempster 963179a9bf Allow submitting PRs from scratches (#391)
* [scratch][projects] Allow submitting PRs from scratches

* Fix up mypy and test

* Move .exists() call to get_dir() in GitHubRepo

* Fix tests

* Minor cleanup

* Frontend lint

* WIP of project function

* Get tests working again

* Move PR stuff to its own viewset

* Reform commit and PR titles

* Fix mypy errors

* Remove breakpoint

* fix

* fix tests

* mypy

* remove suspense from UserAvatarList

* fix tests after mypy

* mypy

* wip pr scratch basket

* implement pr basket

* adjust basket scratch padding

* require public_repo scope

* don't allow function to be added to pr basket twice

* fix pr backend

* only allow matched funcs to be added to pr

* add margin between attempt scratchlist items

* fix mypy issues

* fix eslint issue

* possibly fix test

* pr comments

* fix tests

* remove double import

* fix stylelint

* mock GitHubRepo.get_sha()

Co-authored-by: Alex Bates <alex@nanaian.town>
2022-09-14 13:59:57 +01:00
Ethan Roseman f50b3c32b8 disallow_untyped_defs for mypy (#477)
* Make mypy happy

* failing tests

* working

* use consistent annotation format

* remove comments
2022-07-03 23:43:59 +09:00
Ethan Roseman 1e435c3ed3 More proper diff_label fix with a test (#475)
* More proper diff_label fix with a test

* 'fix' mypy

* suggestions

* fix type checking for lru_cache

* Return type annotation for Sandbox __enter__

* thanks comment

* remove unnecessary part of test

* remove test
2022-06-12 21:03:24 +09:00
alex 9b31c9ebb8 Add family page & diff label editor (#438)
* add 'parent' url to TerseScratchSerializer

* add family page

* link to family in AboutScratch

* bump react-laag

* ui to edit diff label

* use User-Agent Client Hints API if supported

* fix pwa icons

* use carets instead of slashes between breadcrumbs

* use breadcrumbs on project function page

* fix save problem

* allow diff_label on compile

* a

* change placeholder

* new diff flags fix

* diff flags stuff

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2022-04-13 23:21:40 +09:00
Anghelo Carvajal 231842b545 Allow specifying custom objdump flags (#427)
* Trying to add a new section

* objdump section is no longer borken

* objdump section is a bit more independent from the compilerargs one

* add objdump_flags to database

* Allow to save objdump flags on change

* Actually pass the objdump flags to objdump

* Allow adding objdump flags to presets

* add short description to compilers.json

* filter_objdump_flags

* Introduce GCCMIPSCompiler class

* Add -M gekko / broadway by default for gc/wii compilers

* format autogenerated file

* type annotation

* Disable enum trailing comma warnings on Majora's Mask

* wip

* flags as array, backend parsing, frontend cleanup

* style scratch options

* loose ends

* only show diff opts section if there are any options to show

* fix mypy

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
Co-authored-by: Alex Bates <alex@nanaian.town>
2022-04-05 22:19:04 +09:00
Ethan Roseman 8ea10ca286 CodeMirror & PresetSelect fix (#413)
* yarn upgrade

* update eslint no-multiple-empty-lines rule

* update Next.js & React

Resolves #358.

* use CodeMirror in scratch editor

* use codemirror on new page

* move extensions out of CodeMirror component

* grow scratch codemirror

* fix state bug

* initial theming

* fix scratch page SSR

* fix credits page rendering

* max width for AsyncButton error popup

* word wrap

* bye monaco

* cleanup

* style scrollbars everywhere

* tab stuff

* updates

* more

* update codemirror theme

* new react, backend deps, preset on scratch, bugfixes

* improve monospace areas

* store preset name on scratch

* stylelint

* mypy

* mypy 2

* monospace

* fix monospace

* add padding to editor

* fix saving

* fix selection colours

* Highlight assembly line on source selected line change (#416)

Co-authored-by: Alex Bates <hi@imalex.xyz>

* mypy & black

* font stuff

* remove courier new

* make diff style consistent with editor

* fix codemirror exception when editing eof

* attempt to reduce layout thrashing

* /new: store presetName in localStorage

* use react-window for diff

* link diff column scroll position

* hide double scrollbar

* increase overscan

* pointer-events:none on diff header

* fix diff header thing

* make diff columns non-draggable

* dont shrink tabs

* add draggable bar between diff columns

* remove log

* fix 2-col mode

* fix diff align

* DiffCell support cell=undefined

* drag better

* style .cm-search

* eth style changes

* reduce rerenders when dragging diff bar

Co-authored-by: Alex Bates <hi@imalex.xyz>
Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
Co-authored-by: Alex Bates <alex@nanaian.town>
2022-03-31 22:22:39 +09:00
Ethan Roseman 6b1ee90acd Compiler/platform refactor (#396)
* foyst

* clang & agbcc

* more

* wii/gc

* more

* fix

* more

* references

* fixes

* CI fix

* nabbed em

* gcc2.7.2kmc

* meowp

* Tweak Dockerfile + other bits (#398)

* Tweak Dockerfile + other bits

* Capitalise

* Enable/disable compiler downloads via Environment variables

* appease black

* migration

* flags / presets in Compiler

* fixed tests

* /compilers

* mypy cheese

* upd8s

* name

* frontend goodness

* i18n

* cleaners

Co-authored-by: Mark Street <22226349+mkst@users.noreply.github.com>
Co-authored-by: Mark Street <streetster@gmail.com>
2022-03-14 02:33:19 +09:00
Ethan Roseman eb7534be0d Black (#380)
* Initial format

* action

* git subrepo pull --force backend/asm_differ

subrepo:
  subdir:   "backend/asm_differ"
  merged:   "ee239a2b"
upstream:
  origin:   "https://github.com/simonlindholm/asm-differ"
  branch:   "main"
  commit:   "ee239a2b"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* git subrepo pull --force backend/mips_to_c

subrepo:
  subdir:   "backend/mips_to_c"
  merged:   "6704d61f"
upstream:
  origin:   "https://github.com/matt-kempster/mips_to_c"
  branch:   "master"
  commit:   "6704d61f"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* vscode

* fix

* .
2022-02-20 23:21:38 +09:00
Alex Bates 1968531ca4 Projects MVP (#292)
Co-authored-by: Matt Kempster <kidpixel@gmail.com>
Co-authored-by: Mark Street <streetster@gmail.com>
2022-02-18 17:48:51 +00:00
Alex Bates e764bfcebd split models.py into submodules (#359) 2022-02-18 03:47:04 +09:00