Skip to content

Latest commit

 

History

History
623 lines (351 loc) · 46.6 KB

CHANGELOG.md

File metadata and controls

623 lines (351 loc) · 46.6 KB

Changelog

Features

Auto drop registered roots #daemon ....

Now clients won't have to handle on client exit event

Apply eslint fixes #gen
Show live progress of xbase setup/build/run #statusline
Connect and register client #typescript
Handle server messages #typescript
Accept and process messages #typescript
Support building/running/watching #typescript
Multi-workspace support #vscode
Toggle logger #vscode
Xclog syntax highlighting #vscode
Append errors from build log to problems #vscode
Integrate sourcekit-lsp #vscode
Generate typescript types #general
Generate constants for lua and typescript #general

Bug Fixes

Deeply nested encode error #nvim
Missing messages #vscode
Logger toggle #vscode
Incorrect watch key format #general

Refactor

Enums -> {tag, content} #core
Src => xbase #vscode

🎉 v0.3.0 - 2022-07-09

Features

Use vim.notify #editor
Support xcworkspace (#101) #general ....
  • When xcworkspace exists, use it instead of xcodeproj when compiling and recompiling projects.
  • When xcworkspace exists, build target are passed with -scheme flag, so targets and scheme need to have the same name.
  • speed up tuist setup through compiling the Manifest scheme instead of each target
Support multiple projects within a single instance #general

Bug Fixes

Remove old logging interface #nvim ....

This errors when the users add no longer supported or invalid configuration key

Sometimes log level is not set #nvim

Refactor

Move out nvim specific logic (#103) #daemon ....
  • init

  • chore(deps): update xclog and process-stream + refactor

  • ref: setup shared logger

  • ref: remove nvim-rs

  • feat: broadcast server

  • fix(editor): receiving multiple messages at the same time

This just a hack because I couldn't pinpoint why is the client is receiving a bulk of message separated by newline

  • ref(editor): rename BroadcastMessage to Broadcast

  • feat(nvim): setup logger

  • fix: run/build commands

  • ref: logs

  • ref: remove log macros

  • ref: remove log_request

  • ref: remove client type, use root only

  • fix: status line updates

  • ref: rename editor to client

  • fix: watch status

  • feat(nvim): support custom notify

  • feat: respect user log level

  • enh(logger): format

  • fix(tuist): generate compile commands

  • ref: rename neovim to nvim

  • chore: cleanup

  • ref: move make try_register part of register

  • ref(client): register return bool

  • ref: move logging functionality to lua

  • ref: clean up

  • fix: open logger on error

  • feat: append generation logs on error only

  • ref(nvim): move logger buffer mappings to setup

  • fix(nvim): change log buffer change position if already opened

  • feat(nvim): add custom configurations for log_buffer

  • chore: add icon to error messages

  • feat(messages): success level

  • feat: update lsp server on compile files reloaded

Use weak references + rework internal state #daemon
Use vim.log.levels to set xbase.log_level #nvim
Switch to tarpc framework #general
Rename lualib to editor-lib #general
Relay on json transport only (#115) #general ....
  • ref: switch to JSON-based socket

  • feat(api): get all runners

  • feat(api): get watchlist and targets with one api call

  • chore(api): operation instead of ops

  • feat(nvim): setup nvim as daemon socket client

  • chore: re-setup tracing for sourcekit-helper

  • fix(nvim): drop command sending roots as nil

  • ref(nvim): just use server.request

  • style(rustfmt)

  • chore(nvim): use table for commands

  • fix(nvim): dropping roots

  • ref: relocate bin files

  • feat(daemon): graceful shutdown

  • fix(nvim): Auto-start daemon

  • fix(nvim): missing out some messages

  • fix(nvim): update statusline

  • ref: general refactor

  • doc: update

Enhancement

Formatting, display and readability #logger

🎉 v0.2.0 - 2022-06-22

Features

Always allow provisioning updates #build ....

Hot fix for an issues I had where I needed to open xcode for updating my signature

Faster build #cargo
Generate compile commands without signing #compile ....

Finally, this will ensure no more errors with regards to provisioning profile or singing, at least for auto complaining

Respect gitignore #daemon ....

previously it was required to set custom paths to ignore in project.yml, now extra ignored path reads from gitignore instead.

Update status variable when watch is running #nvim
Reload sourcekit server on compile #nvim
Clear state on .compile change #sourcekit ....

Doesn't seem critical now that the sourcekit lsp server is reloaded on compile.

Init dependabot #general
Make xcodeproj source of truth (#80) #general ....
  • feat(daemon): switch to reading from xcodeproj only
  • ref(daemon): remove xcodegen project types
  • ref: remove xcodegen.rs
  • feat(lua): identity xcodeproj on setup
  • fix(compile): error while removing non-existing cache
  • chore(readme): requirements
  • ref: use platform target method instead of sdkroots
  • ref: use xcodeproj new api
  • chore(deps): bump wax dependency
  • chore: update readme
Support tuist (#91) #general ....
  • feat(tuist): support regeneration
  • feat(project): support generating xcodeproj when absent
  • feat(compile): append xcodeproj generation logs
  • ref(compile): check for xcodeproj before trying to generate it
  • feat(tuist): generate both project and manifest xcodeproj
  • feat(tuist): generate compile commands for both project and manifest
  • feat(nvim): update status variable when watch is running
  • ref(project): decompose and specialize
  • feat(tuist): lsp support for tuist files
  • chore(readme): update
  • ref: make main binary named xbase
  • feat(tuist): recompile on config files change
  • fix(xcodegen): ignoring existing xcodeproj
  • fix(compile): on file rename
Support swift projects (#97) #general ....
  • feat(swift): initial support closes #66
  • ref(daemon): abstract run logic
  • feat(swift): run project
  • fix(swift): logger
  • chore(readme): update
  • chore(ci): update ci command
  • feat(swift): ignore tests target for build and run

Bug Fixes

Error while removing non-existing cache #compile
Incorrect paths to binaries #daemon ....

CARGO_MANIFEST_DIR unfortunately points to package root instead of workspace root

Crashing on multiline message nvim print #daemon ....

only print the first line and the rest redirect to log buffer

Avoid adding extra `/` #gitignore
Avoid duplicating ** #gitignore
Fix simulator latency #logging
Xclog is not defined #lua
Xcodegen binary not found #general

Refactor

Abstract build logic into ProjectBuild #daemon
Update logging and compile commands (xclog) (#70) #general ....
  • switch to new xclog api and refractor duplicated code.
  • remove xcode.rs module
  • Fix #69.
Separate concerns + contribution guidelines (#76) #general ....
  • ref: extract tracing setup to lib/tracing
  • ref: extract build server to sourcekit crate
  • ref: extract lib and daemon
  • ref(daemon): use xbase_proto
  • ref: flatten structure
  • feat: contributing guidelines
  • chore: update readme
Remove crossbeam-channel crate #general
Move project/device module to root #general
Rename tracing package to log #general ....

conflicts with running cargo check and test

Ci

Build, install and format #general

🎉 v0.1.2 - 2022-06-11

Features

Work on stable rust channel #general ....

closes #68

Bug Fixes

Wrong version of xcodebuild + more unstable code removal #general

🎉 v0.1.1 - 2022-05-30

Features

Different indicator for running process #logger

Bug Fixes

Incorrect title for build once requests #logger
Force scroll #logger

Refactor

Append logger title to all msgs #logger
Print exit code #logger

Enhancement

Output readability and traceability #logger

🎉 v0.1.0 - 2022-05-26

Features

Pretty print #build
Generate compile flags for files #compile
Use xcodebuild crate #compile
Panic when compiled commands is empty #compile
Support custom ignore patterns #config
Setup watcher #core
Ignore more directories from watcher #core
Support watching renames and fix duplicated events #core
Regenerate .xcodeproj on directory change #core
Ignore files/directories in .gitignore #core
Watcher ignore buildServer.json #core
Generate compile commands on dir change #core
Abstract everything in core #core ....

Feels right todo it this way. more feature guard needs to be added though.

Customize root based on target and configuration #core
Build configuration #daemon
List devices and pick device to run #daemon
Auto-close old processes #daemon
Ensure new projects server support #daemon
Support server errors #error
Setup installation with make install #install
Log generating compile database on nvim #nvim
Get project info #nvim
Auto update state project #nvim
Build and append log to nvim buffer #nvim
Control what direction to open log buf #nvim
More descriptive serialize error #nvim
Basic highlighting of xcodebuild logs #nvim
Log buffer auto-scroll and keep focus #nvim
Command_plate #nvim
Multi picker #nvim
Support picker buffer direction #nvim
Only present device runners for given platform only #nvim
Try to minimize effect on startup #nvim
Mappings configuration #nvim
Toggle log buffer #nvim
Run project from neovim #run
Macos app and in buffer logging #run
Run and watch for changes #run
Log simctl app outputs like print #runner
Ensure Simulator app is running #runner
Setup #server
Handle errors #server
Rebuild project on file modification #watch
Stop watch build/run service for dropped client #watch
Update statusline + feline provider #watch
Auto generate .compile when absent #workspace
Unregister client on nvim exist + drop workspace #general
Retry xcodegen at least three times. #general ....

Getting errors from objc NS side with Xcodegen being already created or it can't be overwritten.

Make code a bit more safe (no unwraps) #general
Multi target watcher #general

Bug Fixes

Remove pseudocode #build
Stream some time doesn't produce Build success #build ....

Depending instead on exit code

On project.yml write, xcodegen errors #core ....

"“XcodeGen” couldn’t be copied to “wordle” because an item with the same name already exists." UserInfo={NSSourceFilePathErrorKey=/var/folders/lm/jgnf6c7941qbrz4r6j5qscx00000gn/T/20E766F9-95D6-42FE-BF73-F5C20430739A-36915-00000DFC9FAEE17B/XcodeGen, NSUserStringVariant=(Copy), NSDestinationFilePath=/Users/tami5/repos/test.xcodeproj, NSFilePath=/var/folders/lm/jgnf6c7941qbrz4r6j5qscx00000gn/T/20E766F9-95D6-42FE-BF73-F5C20430739A-36915-00000DFC9FAEE17B/XcodeGen, NSUnderlyingError=0x600003a9aac0 {Error Domain=NSPOSIXErrorDomain Code=17 "File exists"}}

XcodeGen couldn’t be copied to “demo” #core ....

This issue started happening out of no where so delaying processing temporarily until I find a proper solution

Project update clear project root #daemon
Auto-start #daemon
Redundant window open #logger
Daemon commands #nvim
Not skipping file modifications #recompile
Running wrong correct output #run
Stop watch service #run
Simctl runner #runner
Sourcekit panic from swift-frontend compiled command #server
Ignoring build failure #xcodebuild
Recognize project.yml update #general

Refactor

Include watch option instead of special request #build
Use Pathbuf instead of String #compile
Move tracing install to util #core
Rename server to daemon #core
Use const for command string name #core
Use try_into instead of new #core
Extract code to xcodegen module #core
Clean up #core
No objects for stateless functions #core
Restructure #core
Move state to daemon module #daemon
Organization #daemon
Resuse serde and lua for serialization #daemon
Point to project nvim script method #daemon
Remove project_info request #daemon
Nvim logger #daemon
Improve nvim.logger interface #daemon
Always include address in Client #daemon
Move runner related code to new module #daemon
Switch to process-stream #daemon
Abstract some logic in Client struct #daemon
Remove debug code #drop
Log and trace at the same time #logger
Don't require win to be passed around #logger
Initialization arguments #logger
Echo instead of log for success #nvim
Make config optional #project
Merge into one file #runner
Rewrite and update simctl runner and log format #runner
Simplify api #runner
Better architecture #runner
Docs + readability #server
Move build types to it's own file #types
Create pid and fmt module #util
Custom error type to control watch service state #watch
Rework watching logic #watch
Improve code readability #watcher
Move shared to core as lib #general
Re-structure codebase #general
Nest directories based on use context #general
Constrain modules with feature flags + custom bin/lib paths #general
Compilation module #general
Make tracing to stdout optional #general
Rename daemon command to requests #general
Support multiple target watch #general
Rename project to xbase #general

Enhancement

Custom result and error type #error
Simplify #logger
Add highlight to error #nvim
Features guards #watcher
Add event debounce #watcher
Types #xcodegen

Documentation

Update compile module #general
Add missing doc strings #general

Core

Initial setup #general

Deps

Point to remote packages #general

Dev

Add lua types #lua
Auto convert todo comments @alstr #general
Watch commands #general

Revert

Using gitignore.rs #general ....

Breaking .. will revisit the issue later