이 문서는 소나큐브 버전 업그레이드 시 알아야 할 주요 변경 사항과 주의 사항을 공유하기 위해 작성되었습니다.
Release 10.6
빌드 래퍼(Build Wrapper) 속성 대체
- sonar.cfamily.build-wrapper-output은 더 이상 사용되지 않으며, SonarQube 11.0 이상부터는 제거됩니다.
- sonar.cfamily.compile-commands 속성을 대신 사용하여 compile_commands.json파일 경로를 지정해야 합니다.
이전 방식 | 새로운 방식 |
---|---|
sonar.cfamily.build-wrapper-output 속성 사용 | sonar.cfamily.compile-commands 속성 사용 |
build-wrapper-dump.json 파일 활용 | compile_commands.json 파일 활용 |
Release 10.5
Javascript 및 Typescript에 대한 인지 복잡도(cognitive complexity) 계산 변경
- 중첩 함수의 복잡도(nested function complexity)가 부모에 더 이상 추가되지 않습니다. 이 변경 사항은 일부 사용자에게 복잡도 감소로 나타날 수 있습니다.
Node.js 16 지원 종료
- Node.js 16은 더 이상 지원되지 않습니다. 최신 LTS 버전(현재 v20)을 사용하는 것이 권장됩니다.
커스텀 플러그인 업데이트 필요
- 분석 속도 향상을 위해 SonarQube는 기본값으로 분석기 로딩을 최적화합니다.
- 커스텀 플러그인의 경우 종속성 오류를 방지하기 위해 플러그인 구성을 확인하고 필요한 경우 업데이트해야 합니다.
- 타사 플러그인을 사용하는 경우 분석기 로딩 최적화 기능과 호환되는 최신 플러그인을 사용해야 합니다.
Release 10.4
프로젝트 개요 업데이트
- 프로젝트 전체 코드에 대한 이슈 개수가 Clean Code 소프트웨어 품질 기반으로 표시됩니다.
- 업그레이드 후 프로젝트를 재 분석 해야 새 기준으로 데이터가 표시됩니다.
JavaScript/TypeScript/CSS 구성
- 최소 4GB 메모리가 권장됩니다.
- 메모리 문제가 발생 시, sonar.javascript.node.maxspace를 사용합니다.
- 파일 인코딩 오류로 분석이 실패하는 경우 sonar.sourceEncoding=UTF-8를 사용합니다
Node.js 및 Java 환경 변경
- 아키텍처가 Linux x64, Windows x64 또는 Apple ARM64인 경우 Node.js 설치가 필요하지 않습니다.
- Node.js 14 는 더 이상 스캐너 런타임 환경으로 지원되지 않습니다 . 최신 LTS 버전(현재 v20)을 사용하는 것이 권장됩니다.
- Java 11은 더 이상 스캐너 런타임 환경으로 지원되지 않습니다. 최소 필수 버전은 Java 17입니다.
SonarScanner for .NET 호환성
- SonarQube 10.4부터 .NET 프로젝트를 분석하려면 SonarScanner for .NET 5.14 이상이 필요합니다 .
MSBuild 14 지원 종료
- MSBuild 14는 더 이상 .NET 코드 스캔을 지원하지 않습니다. 최소 버전으로 MSBuild 16을 사용하는 것이 권장됩니다.
Release 10.3
품질 게이트 조건 업데이트
- Clean as You Code 조건이 진화되어 "Sonar way" 품질 게이트는 이제 새 코드에서 "0" 이슈 조건을 사용합니다.
- 기존 "Sonar way"는 "Sonar way (legacy)"로 유지됩니다.
Release 10.2
새 코드 정의 자동 조정
- 기존 프로젝트에서 새 코드 정의 기간이 90일을 초과하는 경우, SonarQube는 이를 90일로 자동 변경합니다.
- 이에 따라 일부 이슈가 새 코드에서 제외될 수 있습니다.
GitHub 자동 프로비저닝 업데이트
- 프로젝트 권한 동기화가 추가되었습니다.
- 업그레이드 후 인증 설정에서 프로비저닝 방법을 확인하고 승인해야 자동 프로비저닝이 재개됩니다.
- 자세한 내용은 GitHub 인증 페이지를 참조하세요.
Clean Code 업데이트
- 이슈 유형은 더 이상 사용되지 않으며, 이슈와 규칙이 Clean Code 속성 및 소프트웨어 품질 기준에 따라 분류됩니다.
- 이슈의 심각도가 소프트웨어 품질에 미치는 영향을 기반으로 결정됩니다.
Release 10.1
.NET Framework 4.6.2 미만 지원 종료
- .NET Framework 4.6.2 이상의 버전만 지원됩니다.
새 코드 정의 옵션 업데이트
- 새 코드 정의 기간은 최대 90일로 제한됩니다.
- 특정 분석(S) 설정은 Web API를 통해서만 사용할 수 있습니다.
Release 10.0
SCIM 프로비저닝 업데이트
- SCIM 프로비저닝 기능이 업데이트되어 사용자 및 그룹의 동기화를 더 엄격하게 처리합니다.
- 이를 통해 사용자 및 그룹 정보가 SonarQube와 IdP 간에 일관되도록 유지됩니다.
페이지 확장에 대한 보안 정책 강화
- 플러그인이 UI에 추가하는 페이지는 인라인 스크립트를 포함할 수 없습니다.
- 자세한 내용은 웹앱에 페이지 추가를 참조하세요.
모듈 지원 중단
- 모듈의 개념은 7.6버전에서 제거되었습니다. SonarQube 10.0에서는 모듈 기반의 프로젝트 구조를 더 이상 지원하지 않습니다.
- 모듈을 표시하는 프로젝트는 10.x로 업그레이드 하기 전에 7.7~9.9 사이의 버전으로 분석되어야 합니다.
Pull Request 설정 제거
- DevOps 플랫폼 통합 설정은 더 이상 스캐너 분석 매개변수에서 유추되지 않습니다.
- 풀리퀘스트 데코레이션이 실패되지 않도록 하려면, 프로젝트 설정 > DevOps Platform Integration에서 각 프로젝트의 설정을 구성해야 합니다.
- 이는 이전에 Azure DevOps용 확장 기능을 사용하여 이러한 속성을 전달했던 Azure DevOps와 통합하는 사용자에게 특히 영향을 미칩니다 .
리눅스 커널에 seccomp 필터 필요
- Elasticsearch 업데이트로 인해 seccomp 필터가 활성화된 커널이 필요합니다.
[LTA]Release 9.9
데이터베이스 지원 업데이트
- SonarQube는 더 이상 Oracle 버전 12C 및 18C를 지원하지 않습니다.
- Oracle 버전 21C가 이제 지원됩니다.
- 이제 SQL Server 2022가 지원됩니다.
SonarQube 서버 Java 17 필요
- SonarQube 서버에는 Java 11 사용은 더 이상 지원되지 않습니다. Java 17이 필요합니다.
SonarScanner for .NET 호환성
- SonarQube에서 C#/VB.NET의 증분 분석에는 SonarScanner for .NET 5.11+가 필요합니다.
Community, Developer, Enterprise Edition을 위한 단일 Helm차트 도입
- 기존의 sonarqube-lts helm차트는 더 이상 유지되지 않으므로 SonarQube 9.9 LTS Community, Developer, Enterprise Edition을 설치하려면 sonarqube helm차트를 사용합니다.
- 데이터 센터 버전은 sonarqube-dce helm차트와 함께 사용 가능합니다.
Docker 이미지 업데이트
- 권장되는 Docker 엔진 버전은 20.10 이상입니다.
- Self-signed 인증서를 사용하는 경우, Docker 구성을 조정해야 할 수 있습니다 : 자바 설치경로가 /opt/java/openjdk/ 로 변경되었습니다.
- SONARQUBE_JDBC_USERNAME, SONARQUBE_JDBC_PASSWORD, SONARQUBE_JDBC_URL 환경 변수는 더 이상 지원되지 않으며 제거되었습니다.
- Docker 이미지에서
lts
태그는 새로운 LTS 릴리스로 대체되었습니다. 자동으로 주요 업그레이드가 이루어지는 것을 방지하려면,lts-<edition>
대신9.9-<edition>
태그를 사용하는 것을 권장합니다.
Release 9.8
새로운 메인 브랜치 이름이 "main"으로 변경됨
- 이전에는 새로 생성된 프로젝트와 어플리케이션에서 기본 브랜치 이름이 "master" 였으나, 9.8부터 "main"으로 변경되었습니다.
- 필요에 따라 Administration > General > Default main branch name에서 기본 브랜치 이름을 수정할 수 있습니다.
- 추가 정보는 브랜치 분석 문서를 확인하세요.
데이터베이스 지원 업데이트
- Postgresql 11버전 미만은 더 이상 지원되지 않습니다.
- 현재 지원되는 버전은 11에서 15까지입니다.
Java 17 지원
- SonarQube 서버는 Java17을 지원합니다.
Release 9.7
데이터베이스 연결 풀 업데이트
- 데이터베이스 연결 풀(Database Connection Pool)이 성능 향상을 위해 새롭게 교체되었습니다.
- 기존에 사용되던 다음 설정들은 더 이상 적용되지 않으며, 설정 파일에서 제거해야 합니다:
sonar.jdbc.maxIdle
sonar.jdbc.minEvictableIdleTimeMillis
sonar.jdbc.timeBetweenEvictionRunsMillis
- 데이터베이스 연결 풀을 모니터링하기 위한 JMX 정보도 변경되었습니다.
- 자세한 내용은 모니터링 설명서를 참조하세요
JavaScript, TypeScript 및 CSS 분석을 위한 Node.js 요구 사항
- JavaScript, TypeScript, CSS 코드를 분석하려면 Node.js 14.17 이상이 필요합니다.
- Node.js가 설치되어 있지 않거나 버전이 요구사항에 미치지 못하면 분석이 실패할 수 있습니다.
Release 9.6
Microsoft SQL Server 구성 및 통합 인증 업데이트
- Microsoft SQL Server가 암호화를 지원하지 않을 경우, JDBC URL 연결 문자열에 encrypt=false을 추가해야 합니다.
- SQL Server가 암호화를 요구하지만 SonarQube에서 인증서를 검증하지 않도록 설정하려면, JDBC URL 연결 문자열에 trustServerCertificate=true을 추가해야 합니다.
- Microsoft SQL Server와 통합 인증(Integrated Authentication)을 사용하는 경우, mssql-jdbc_auth dll 파일을 Microsoft SQL JDBC Auth 10.2.1 패키지의 mssql-jdbc_auth-10.2.1.x64.dll 파일로 교체 후 PATH 경로에 올바르게 배치해야 합니다.
토큰 만료 설정
- 새로운 토큰 생성 시 만료일(Optional Expiration Date)을 설정할 수 있습니다.
- 만료된 토큰은 더 이상 사용할 수 없으며, 새로 업데이트해야 합니다.
Enterprise Edition 이상에서 시스템 관리자는 새 토큰에 대해 최대 수명(Maximum Lifetime)을 설정할 수 있습니다.
Windows 서비스로 SonarQube 실행 및 Java 버전 선택
- SonarQube를 Windows 서비스로 설치하려면 아래 명령을 사용해야 합니다. 자세한 내용은 서버 구성 및 운영 및 업그레이드 가이드를 참조하세요.
%SONAR_HOME%\bin\windows-x86-64\SonarService.bat install
- 서버에 여러 버전의 Java가 설치된 경우, 특정 Java 버전을 선택하려면 환경 변수 SONAR_JAVA_PATH를 설정해야 합니다.
Release 9.5
프로젝트 분석 토큰(Project Analysis Token)
- 다양한 유형의 토큰을 생성할 수 있습니다.
- 각 프로젝트에서 별도의 분석 토큰을 생성할 수 있으며, 이를 통해 프로젝트별로 독립적인 토큰 관리를 할 수 있습니다.
Release 9.4
오래된 비활성 계정의 비밀번호 재설정 필요
- SHA 해싱 알고리즘 지원이 제거되었습니다.
- SonarQube 7.2 버전 이후부터 더 강력한 해싱 알고리즘으로 대체되었으며, 이번 업데이트로 SHA1 비밀번호를 사용하는 계정이 더 이상 지원되지 않습니다.
- SonarQube 7.2 이후로 로그인하지 않은 로컬 계정(Local Account)은 관리자가 비밀번호를 재설정하도록 강제됩니다.
- SAML, LDAP, GitHub 인증 등과 같은 외부 인증을 사용하는 계정은 영향을 받지 않습니다.
- 영향을 받았을 수 있는 계정에 대한 정보는 업그레이드 중에 로그에 나타납니다.
Release 9.3
포트폴리오 개요 업데이트
- 포트폴리오 개요는 이제 New Code와 Overall Code에 대한 평가를 모두 표시합니다.
- 신규 코드 평가는 신뢰성, 보안 취약성, 보안 검토 및 유지 관리 가능성에 대해 표시됩니다.
- New Code에서 이러한 평가를 보려면 9.3으로 업그레이드한 후 포트폴리오를 다시 계산해야 합니다.
Microsoft SQL Server 및 통합 인증 업데이트
- 통합 인증과 함께 Microsoft SQL Server를 사용하는 경우 Microsoft SQL JDBC Driver 9.4.1 패키지 에서 파일을 교체해야 합니다.
Release 9.2
Bitbucket Cloud 인증 내장 지원
- SonarQube는 이제 Bitbucket Cloud 인증을 내장 기능으로 지원합니다.
- 이전에 Bitbucket Cloud 인증 플러그인을 사용하고 있었다면, 업그레이드 전에 플러그인을 SonarQube에서 제거해야 합니다.
- Teams 제한은 Workspaces 제한으로 변경되었으며, 업그레이드 과정에서 자동으로 변환됩니다.
Release 9.1
웹 서비스 및 스캐너에서 보안 설정 지원 중단
- 보안 설정(Secured Settings)은 더 이상 웹 서비스(Web Services)와 스캐너(Scanner) 측에서 사용할 수 없습니다.
- 이 변경사항은 SVN 프로젝트 분석과 일부 타사 플러그인에 영향을 미칠 수 있습니다.
- 분석에 필요한 보안 설정은 이제 스캐너 실행 시 매개변수로 전달해야 합니다.
사용자 정의 측정(Custom Measures) 기능 제거
- 이전 버전에서 사용 중단(deprecated) 상태였던 Custom Measures(사용자 정의 측정) 기능이 이번 릴리스에서 완전히 제거되었습니다.
- 7.X 릴리스 주기 동안 사용 중단(deprecated) 상태였던 WebAPI 엔드포인트와 매개변수가 이번 릴리스에서 삭제되었습니다.
- 삭제된 엔드포인트 및 매개변수의 전체 목록은 SONAR-15313을 참조하세요 .
Release 9.0
스캐너의 Java 11 요구 사항
- Java 11은 SonarQube 스캐너 실행을 위한 필수 요구 사항이 되었습니다.Java 8은 더 이상 지원되지 않습니다.
Internet Explorer 11 지원 중단
- Internet Explorer 11 및 기타 레거시 브라우저에 대한 지원이 중단되었습니다.
GitHub 브랜치에서 품질 게이트 상태 보고를 위한 추가 권한 필요
- GitHub 비공개 리포지토리(Private Repository)를 사용하는 경우, SonarQube 통합에 필요한 GitHub 애플리케이션에 "Contents" 권한(읽기 전용)을 추가로 부여해야 합니다.
JavaScript 사용자 정의 규칙 API 제거
- 이전에 사용 중단(deprecated) 상태였던 JavaScript 사용자 정의 규칙 API가 이번 릴리스에서 완전히 제거되었습니다.
- 플러그인은 더 이상 이 API를 사용하여 JavaScript 사용자 정의 규칙을 구현할 수 없습니다.
사용 중단된 플러그인 Java API 제거
- SonarQube 7.0 이전에 사용 중단(deprecated)된 일부 플러그인 Java API가 이번 릴리스에서 삭제되었습니다.
[LTA]Release 8.9
GitHub Enterprise 호환성
- GitHub Enterprise에서 Pull Request 데코레이션을 지원하는 최소 버전이 2.15에서 2.21로 변경되었습니다.
- GitHub Enterprise 2.21 이상을 사용해야 Pull Request 데코레이션 기능을 사용할 수 있습니다.
플러그인 설치 시 위험 동의 요구
- 업그레이드 시 플러그인을 사용하는 경우, SonarQube 관리자가 플러그인 설치와 관련된 위험에 대해 동의해야 합니다.
데이터베이스 지원 업데이트
SonarQube 8.9에서 지원되는 데이터베이스 버전은 다음과 같습니다:
- PostgreSQL: 9.6 ~ 13 지원 (9.6 미만 버전은 지원 종료)
- MSSQL Server: 2014, 2016, 2017, 2019 지원
- Oracle: XE, 12C, 18C, 19C 지원 (Oracle 11G는 더 이상 지원되지 않음)
웹훅(Webhooks) 보안 강화
- 보안을 강화하기 위해, 기본적으로 웹훅이 SonarQube 서버를 대상으로 요청을 보내는 것이 허용되지 않습니다.
- 필요에 따라 SonarQube 구성에서 이 동작을 변경할 수 있습니다.