Releases: RaiolaNetworks/atlas
Release list
3.0.2
Major release (3.x). Breaking: drops Laravel 11.
ℹ️ Install this one:
composer require raiolanetworks/atlas:^3.0.2. Tags 3.0.0/3.0.1 are early duplicates of the same v3 merge; 3.0.2 is the complete release (adds the upgrade guide).
Removed (breaking)
- Laravel 11 support. It reached end of security life (2026-03-12); every 11.x release now carries unpatched advisories and is no longer installable via Composer. Requires
laravel/framework ^12.60 || ^13.10.
Added
- Laravel 13 support (testbench 11, Pest 4). CI covers Laravel 12 & 13 on PHP 8.3/8.4.
- State hierarchy:
admin_level&parent_idcolumns,State::parent()/children()relationships andtopLevel()/adminLevel()scopes.parent_idpopulated for 10 countries (340 divisions: ES, FR, IT, BE, IE, LK, FJ, BA, GQ, KN). - Ceuta & Melilla added as city entries.
Changed
- Country
nativeis now required (non-null), with a migration that backfills existing nulls fromname.
Fixed
- Security (GHSA-5vg9-5847-vvmq): framework floor raised so no CRLF-vulnerable Laravel version can be resolved.
- Whitespace normalized across 874 country/state/city name fields; Côte d'Ivoire
native; Belgium "Flanders" type.
Upgrading
See UPGRADE.md (two upgrade paths + foreign-key safety) and the CHANGELOG.
⚠️ Getting the new data needs a re-seed (php artisan atlas:states/atlas:cities/atlas:countries) — destructive (empties & re-inserts, preserves primary keys), run in a maintenance window.
v2.0.0
Atlas v2.0.0
Major release con mejoras de rendimiento, correcciones de relaciones Eloquent y modernización general del paquete.
Requisitos: PHP 8.3+ · Laravel 11+
Ruta de actualización: consulta
UPGRADE.mdpara los pasos detallados y cambios de ruptura.
Novedades
- Nuevo comando
atlas:update— re-seed de entidades habilitadas con los datos JSON más recientes, respetando la configuración deconfig('atlas.entities'). - Parser JSON en streaming — se reemplazó la carga completa en memoria por
halaxa/json-machine, eliminando picos de consumo en datasets grandes. - Índices de base de datos — nuevos índices en
iso2,iso3,region_id,subregion_id,currency_code,state_code,country_id,name(cities) y unique constraint en el pivotcountry_timezone. Ver migración de upgrade. - Validación de dependencias entre entidades —
atlas:installyatlas:updateahora verifican que las dependencias requeridas estén habilitadas y abortan si la configuración es inválida. - Nueva relación
Subregion::region()—BelongsTohaciaRegion, antes ausente. - Traducciones activas — la carga y publicación de traducciones (
atlas-translations) está ahora habilitada.
Mejoras
- Seeders envueltos en transacciones con desactivación correcta de FK constraints — se evitan estados parciales de datos.
- Inserción masiva (bulk insert) en
CountriesSeedery construcción de índice previo enTimezonesSeederpara inserciones de pivot más rápidas. - Se eliminó el override
ini_set('memory_limit', -1). - Todos los modelos usan
$fillableexplícito en lugar de$guarded = []. - Claves primarias string declaradas correctamente en
Currency(code),Timezone(zone_name) yLanguage(code). Country::$translationsahora cast aarray(consistente conRegionySubregion).- Migraciones convertidas a clases anónimas (estándar Laravel 9+).
- Compatibilidad PHPStan nivel 9 con larastan v3.
- Suite de tests comprehensiva (relaciones, schema, seeders, comandos, parsing JSON).
Correcciones
Country::currency()cambiado deHasOneaBelongsTo— la FK vive ahora encountries.currency_code.Currency::countries()cambiado deBelongsToaHasMany— una moneda puede pertenecer a múltiples países.Country::region()/subregion()renombrados a singular siguiendo convenciones Laravel.- Columnas
region→region_name,subregion→subregion_nameen la tablacountries— resuelve el conflicto entre columnas y métodos de relación. - Typo de config corregido:
country_timezon_pivot_tablename→country_timezone_pivot_tablename. - Ruta de overrides JSON corregida:
resources/json/→resources/vendor/atlas/json/(la ruta anterior nunca funcionó por colisión con el directorio del paquete). - Typo de método corregido:
getOverridedClientProjectResourcesPath()→getOverriddenClientProjectResourcesPath(). region_idycurrency_codeahoraNULLABLEpara coincidir con sus constraintsON DELETE SET NULL.- FKs hijas cambiadas de
RESTRICTaCASCADEensubregions,states,citiesy pivotcountry_timezone.
Eliminado
- Facade
Raiolanetworks\Atlas\Facades\Atlasy clase duplicadaRaiolanetworks\Atlas\Atlas. - Dependencia
spatie/laravel-package-tools. - Dependencia explícita de
illuminate/contracts(ya provista porlaravel/framework). Currency::$thousands_separatoreliminado de$fillable(nunca se pobló desde JSON).- Soporte para Laravel 10.
Migración automática
La migración de upgrade incluida maneja automáticamente: renombrado de columnas, nullable de FKs, cambio a cascade, nuevos índices y deduplicación de pivots. Solo ejecuta php artisan migrate tras actualizar.
Consulta UPGRADE.md para la guía de migración completa paso a paso.
v1.0.7
v1.0.6
Updated compatibility for Laravel 12 support and package improvements.
This release adds support for Laravel 12, ensuring compatibility with Laravel versions 10, 11, and 12. The package has been updated to accommodate any breaking changes and improvements in the latest Laravel version. Please test thoroughly with your environment and report any issues.
v1.0.5
Added new features and improvements.
- Added regions and subregions.
- If the user has disabled any entity in the configuration file, it is now taken into account when migrating and seeding.
- Improved the logic of the commands for seeding entity content.
- Added new currencies and updated their corresponding country.
- The publishing path for JSON files has been changed to 'resources/vendor/atlas...'
v1.0.4
v1.0.3
v1.0.2
Updated composer dependencies and fixed larastan errors.
The composer dependencies have been updated to enhance compatibility with new projects. Additionally, issues with Larastan have been resolved as a result of these updates to the package itself.